使用开源项目的正确姿势

注:这篇文档非原创,是一个UC同学写的。他说的每一点都很深刻,也是我们在实际工作中曾经遇到过的问题,有的问题甚至引发过巨大的损失。转载这篇文档,为我们今后在开源软件选型上提供参考和指导。

软件开发领域有一个流行的原则:DRY,Don’t repeat yourself,我们翻译过来更形象通俗:不要重复造轮子。开源项目主要目的是共享,其实就是为了让大家不要重复造轮子,尤其是在互联网这样一个快速发展的领域,引入开源项目,可以节省大量的人力和时间,大大加快业务的发展速度,何乐而不为呢?

然而现实往往没有那么美好,开源项目虽然节省了大量的人力和时间,但带来的问题也不少,相信绝大部分同学都踩过开源软件的坑,小的影响可能是宕机半小时,大的问题可能是丢失几十万数据,甚至灾难性的事故是全部数据都丢失。

除此以外,虽然DRY原则摆在那里,但实际上开源项目反而是最不遵守DRY原则的,重复的轮子好多,尤其是国外,一看哪个开源方案不爽,自己就吭哧吭哧搞一个差不多的:你有MySQL,我有PostgreSQL;你有MongoDB,我有Cassandra;你有Memcached,我有Redis;你有Gson,我有Jackson;你有Angular,我有React。总之放眼望去,其实相似的轮子很多!相似轮子太多,选择就是让人头疼的问题了。

怎么办?完全不用开源项目几乎是不可能的,我们需要更加聪明的去选择和使用开源项目。形象点说:不要重复发明轮子,但要找到合适的轮子!你开的是保时捷,可别找个拖拉机的轮子。

接下来我将根据加入UCWeb 5年与开源项目有关的经历,总结出一些“如何正确使用开源项目”的经验和教训。有的项目是我亲身经历,有的是我接触到的,有的是我观察的,其中部分描述细节可能并不完全准确,大家可以结合自己的经历一起探讨。

以下内容主要分3个部分进行描述,分别是选、用、改。

继续阅读

发表在 Common | 标签为 , | 使用开源项目的正确姿势已关闭评论

顶级域名启用泛记录的危害性

在邮件列表看到如下ccTLD配置了不同形式的泛记录:

  • *.FM mail is handled by 1 mail.h-email.net.
  • *.PH has address 45.79.222.138
  • *.SY has address 91.144.20.76
  • *.WS has address 64.70.19.202
  • *.WS mail is handled by 1 mail.hope-mail.com.
  • *.XN–FIQS8S has address 218.241.116.40
  • *.XN–FIQZ9S has address 218.241.116.40

继续阅读

发表在 Common | 标签为 , | 顶级域名启用泛记录的危害性已关闭评论

为什么我们逃离Openstack

YY游戏云平台第一版完全使用Openstack构建。计算服务使用Nova和KVM,网络服务使用Neutron和Provider Networking,没有使用分布式块存储服务。Cloud 1.0发生过一些问题,但也承载了数款游戏的运行,其中不乏峰值流量很高的游戏。促使我们远离Openstack的原因,主要还在于这个系统的不成熟、不稳定、扩展性差。

继续阅读

发表在 Common | 标签为 | 为什么我们逃离Openstack已关闭评论

云计算面临的12大安全威胁

Enterprises are no longer sitting on their hands, wondering if they should risk migrating applications and data to the cloud. They’re doing it — but security remains a serious concern.

The first step in minimizing risk in the cloud is to identify the top security threats.

As the RSA Conference last week, the CSA (Cloud Security Alliance) listed the “Treacherous 12,” the top 12 cloud computing threats organizations face in 2016. The CSA released the report to help both cloud customers and providers focus their defensive efforts.

The shared, on-demand nature of cloud computing introduces the possibility of new security breaches that can erase any gains made by the switch to cloud technology, the CSA warned. As noted in previous CSA reports, cloud services by nature enable users to bypass organization-wide security policies and set up their own accounts in the service of shadow IT projects. New controls must be put in place.

“The 2016 Top Threats release mirrors the shifting ramification of poor cloud computing decisions up through the managerial ranks,” said J.R. Santos, executive vice president of research for the CSA.

继续阅读

发表在 Common | 标签为 | 云计算面临的12大安全威胁已关闭评论

YY游戏Cloud 2.0网络设计分析

前言

YY游戏Cloud 2.0的开发背景请见InfoQ撰文。在Cloud 2.0里,虚拟网络的架构和实现是重中之重,本文主要谈及网络设计部分。网络设计一个核心功能是实现租户网络(VPC),我们采用VxLAN技术来构建VPC。考虑到性能和稳定性,使用带SDN功能的硬件交换机来完成VxLAN的offload和routing。同时,游戏运营有特殊的业务需求,例如云网关功能。处于同样的考虑,采用硬件防火墙来实现云网关,包括南北向的NAT和Floating IP。在这个方案里,还支持不同VPC对共享数据区域的访问,也就是东西向的访问,同样使用硬件防火墙的NAT来实现。

在由客户端vSwitch、接入交换机、核心交换机、防火墙组成的虚拟网络里,数据流程跟传统网络没有太大的差别,但是数据结构非常不同。比如为了支持VPC,接入交换机要设置VNI(VxLAN网络标识),核心交换机上要配置VRF(虚拟路由器),防火墙上要开启vSys(虚拟子系统),它们处理的数据包不同于传统网络。而它们处理包的方式、转发路径,则取决于控制器的实现。在本文里,将对虚拟网络架构、数据转发流程、以及SDN控制器进行一个较为详细的描述。

继续阅读

发表在 Common | 标签为 | YY游戏Cloud 2.0网络设计分析已关闭评论

春节 珠海 岁月静好

春节,海边小城,岁月一如既往的宁静,只是多了几份祥和。车流很少,人声也没那么嘈杂。年初三之前天气晴好,阳光明媚;海上碧波荡漾,白云袅袅。住在海边小村,每天看海鸟起落,云卷云舒,颇有避世的感觉。

继续阅读

发表在 Common | 标签为 , | 春节 珠海 岁月静好已关闭评论

下一代互联网运维平台VDC

当前互联网行业,内部IT基础资源云端化是主要趋势。云平台将资源管理抽象出来,比如云主机、云DB等,以服务的方式提供给用户,按需使用,从而带来更大的灵活性与经济性。YY游戏早已建立面向内部业务使用的云平台,例如升龙系统云DB游戏云等。

随着主机、DB、缓存、存储等独立服务抽象出来,那么必然有一个大的容器,将这些个体服务整合成一个整体。这个容器就是VDC,即虚拟数据中心。在传统IT环境里,主机、DB、缓存、存储服务器,都位于物理DC(数据中心)里。在云端化进一步发展后,物理DC也将抽象出来,形成VDC,在更高的层次上为用户提供基础服务能力。

VDC不是很新的概念,Amazon AWS很早就提出了VPC(虚拟私有网络)。VDC跟VPC没有本质的不同,VDC是建立在VPC之上。也就是说,只有VPC得以实现,VDC才能产生。在VDC里,网络由用户自己定义,包括二层网络、三层网络(子网)、路由、安全策略、负载均衡等,都是用户控制。比如张三在他的VDC里,自己声明了一个192.168.1.0/24地址段,所有主机都使用这个段的IP。李四也在他的VDC里,声明一个相同的、或不同的地址段,并分配IP地址给主机。

继续阅读

发表在 Common | 标签为 | 下一代互联网运维平台VDC已关闭评论

西风多少恨,吹不散眉弯

风哥是典型的纳兰迷,对容若的词过目不忘,日以诵之。不过这几天反复吟赏两首与纳兰无关的词,感同身受,竟不能释怀。一首是辛弃疾的《鹧鸪天》,原文如下:

晚日寒鸦一片愁,柳塘新绿却温柔。
若教眼底无离恨,不信人间有白头。
肠已断,泪难收,相思重上小红楼。
情知已被山遮断,频倚阑干不自由。

继续阅读

发表在 Common | 标签为 , | 西风多少恨,吹不散眉弯已关闭评论

我们需要什么样的云平台

注:本文的修订版已发布在InfoQ,请查看:http://www.infoq.com/cn/articles/yygame-cloudplatform

YY游戏早已在Cloud上运行,第一代云平台基于Openstack,已支撑了几十万同时在线的游戏用户。但是Openstack庞大复杂,以及扩展性的弱点,导致我们在云的可控性方面大为被动,从而产生了第二代云平台的需求。

那么我们需要一个什么样的云呢?首先,它是基于私有云。其次,这个私有云一定满足我们业务的特点,比如游戏行业与金融行业,业务特点截然不同。再次,这个云一定要可管理、可扩展、可控。对于一个平台服务,它存在性能短板、运行故障并不可怕,可怕的是出问题后用户无法跟踪和定位,从而失去可控性。

继续阅读

发表在 Common | 标签为 | 我们需要什么样的云平台已关闭评论

容器开发、云端数据、云Devops是2016年云计算三个热门

I get this a lot: People approach me at conferences and ask about the hottest cloud skills. Why? Because they want to learn more, declare their expertise, and get a new and higher-paying gig. I can’t blame them.

What will be hot in 2016? Here are the three hottest cloud job skills I see:

继续阅读

发表在 Common | 标签为 | 容器开发、云端数据、云Devops是2016年云计算三个热门已关闭评论