OpenStack设计与实现(第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 从虚拟化到OpenStack

至此落笔之际,OpenStack问世近10年,云计算被提出了20多年,虚拟化则发展了50多年,这些技术经历的风雨颇多,笔者也感慨颇多,谨以这些年来的点滴之事为献。

1.1.1 虚拟化

1.1959年

6月,一个并不属于万物萌芽的月份。在1959年国际信息处理大会上,Christopher Strachey(克里斯托弗)亲手为虚拟化埋下了种子,他在名为《大型高速计算机中的时间共享》的报告中,提出了“虚拟化”的概念,从此拉开了虚拟化发展的帷幕。

2.20世纪60年代

虚拟化在此期间,由概念孕育到雏形,并得到了进一步的发展。1964年,一种名为CP-40的新型操作系统首次实现了虚拟内存和虚拟机。随后,IBM推出了TSS(Time Sharing System,分时共享系统),允许多个用户远程共享同一台高性能计算设备的使用时间,这也被认为是最为原始的虚拟化技术。

3.20世纪70年代

1972年,IBM发布了用于创建灵活大型主机的虚拟机技术,可以根据用户动态的应用需求来调整和支配资源,使昂贵的大型机资源得到尽可能充分的利用。虚拟化由此进入了大型机时代。

这一时期的IBM System 370 系列通过一种叫作虚拟机监控器(Virtual Machine Monitor,VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机实例,从而使虚拟机开始流行起来。

4.20世纪80年代与90年代

随着大规模集成电路的出现和个人电脑的普及,计算机硬件变得越来越便宜,当初为了共享昂贵的大型计算机资源而设计的虚拟化技术也由此渐渐无人问津,只是在一些高档的服务器中存在,虚拟化进入了“冷藏期”,遭遇了“成长的烦恼”。

在这个阶段末期,随着x86技术的发展,x86平台处理能力与日俱增。随着英特尔于1998年推出专门针对服务器和工作站的Xeon(至强)处理器,人们开始考虑将虚拟化技术引入用户面更为广泛的x86平台。

同年,VMware公司成立,并随后于1999年在x86平台上推出了可以流畅运行的商业虚拟化软件,从此虚拟化技术终于走下大型机的“神坛”,进入了一个高速发展的阶段。

5.21世纪

VMware的亮相,开启了虚拟化的x86时代,虚拟化的发展进入了一个爆发期。

2003年,Xen面世。同年,微软因收购Connectix而获得虚拟化技术,进入桌面虚拟化领域,正式拉开了桌面虚拟化革命的序幕。

随后的2004年年底,微软宣布了其Virtual Server 2005计划,被认为象征着“虚拟化正在从一个小市场向主流市场转变”。

2005年,英特尔宣布其初步完成Vanderpool技术外部架构规范(EAS),并称该技术可帮助改进未来虚拟化解决方案。然后于同年11月,英特尔发布新的Xeon MP处理器系统7000系列,x86平台历史上第一个硬件辅助虚拟化技术――VT(Vanderpool Technology)技术也随之诞生。

此后数年,AMD、Oracle、红帽、Novell、Citrix、思科、惠普等公司先后进军虚拟化市场。

1.1.2 云计算

1983年,Sun提出“网络即计算机”(The Network is the Computer),这被认为是云计算的雏形,而随后计算机技术的迅猛发展及互联网行业的兴起,似乎都在向这个概念不断靠拢。

在这个不断靠拢的过程中,首先写上浓重一笔的是亚马逊。2006年3月,亚马逊推出弹性计算云(Elastic Compute Cloud,EC2),按用户使用的资源进行收费,开启了云计算商业化的元年。

每一个时代的开始都有它自己的故事,而对于云计算时代,要从一篇文章说起。Steve Yegge先后在亚马逊与Google公司工作,其于2011年在Google+上和Google同事讨论有关平台的一些内容时,不小心把自己写的一篇辛辣调侃亚马逊与Google的文章向全世界公开,引起了强烈的反应。

当然,事后,Steve Yegge在其Google+上进行了一些解释,大意是自己喝多了,又是凌晨,头脑不清,Google对他很好,等等。但是这篇文章本身却堪称云计算架构的入门教材,中文翻译可见酷壳网上陈皓的一篇文章,这里着重介绍一下文中提到的Jeff Bezos(亚马逊创始人)在2002年左右发布的一份命令。

So one day Jeff Bezos issued a mandate.He's doing that all the time,of course,and people scramble like ants being pounded with a rubber mallet whenever it happens.But on one occasion -- back around 2002 I think,plus or minus a year -- he issued a mandate that was so out there,so huge and eye-bulgingly ponderous,that it made all of his other mandates look like unsolicited peer bonuses.

有一天,Jeff Bezos发布了一份命令。当然,他总是这么干,这些命令对人们的影响来说就像用橡皮槌敲击蚂蚁一样。这份命令大概是在2002年发布的,误差应该在1年内。这份命令涉及的范围非常广,设想很大,让人大跌眼镜,就好像你突然收到公司给你的奖金一样让人惊讶。

His Big Mandate went something along these lines:

这份大命令大概有如下几个要点:

1) All teams will henceforth expose their data and functionality through service interfaces.

所有团队的程序模块都要以服务接口(Service Interface)方式将其数据与功能开放出来。

2) Teams must communicate with each other through these interfaces.

团队间的程序模块的信息通信,都要通过这些接口。

3) There will be no other form of interprocess communication allowed:no direct linking,no direct reads of another team's data store,no shared-memory model,no back-doors whatsoever.The only communication allowed is via service interface calls over the network.

除此之外,不允许其他形式的通信方式:不能直接连接程序、不能直接读取其他团队的数据库、不能使用共享内存、不能使用别人模块的后门,等等,唯一被允许的通信方式为调用服务接口。

4) It doesn't matter what technology they use.HTTP,Corba,Pubsub,custom protocols -- doesn't matter.Bezos doesn't care.

任何技术都可以使用。比如:HTTP、Corba、Pubsub、自定义的网络协议,等等。Bezos不在意这些。

5) All service interfaces,without exception,must be designed from the ground up to be externalizable.That is to say,the team must plan and design to be able to expose the interface to developers in the outside world.No exceptions.

所有的服务接口,毫无例外,必须从本质到表面都设计成能对外开放的。也就是说,团队必须做好规划与设计,以便未来把接口开放给全世界的开发者,没有任何例外。

6) Anyone who doesn't do this will be fired.

不这样做的人会被炒鱿鱼。

7) Thank you,have a nice day!

谢谢,祝你有个愉快的一天!

在这份命令之后的几年,亚马逊内部转变成面向服务架构(Service-Oriented Architecture,SOA),“一切以Service为第一”的系统架构成为该公司的企业文化。

You wouldn't really think that an online bookstore needs to be an extensible,programmable platform.Would you?

如果是你,你会想到要把一个在线卖书的网站设计成为一个有扩展性、可程序化的平台吗?你真的会这样想吗?

Well,the first big thing Bezos realized is that the infrastructure they'd built for selling and shipping books and sundry could be transformed an excellent repurposable computing platform.So now they have the Amazon Elastic Compute Cloud,and the Amazon Elastic MapReduce,and the Amazon Relational Database Service,and a whole passel' o' other services browsable at aws.amazon.com.These services host the backends for some pretty successful companies,reddit being my personal favorite of the bunch.

嗯,Bezos领悟到的第一件大事是,为了销售书籍和各种商品而建立的基础架构,可以被转变成为绝佳的计算平台(Computing Platform)。所以,现在他们有了Amazon Elastic Compute Cloud(亚马逊弹性计算云EC2),Amazon Elastic MapReduce,Amazon Relational Database Service(亚马逊关系数据库服务),以及其他可到aws.amazon.com查得到的大量服务。这些服务是某些相当成功的公司的后台架构,比如,我个人喜欢的reddit是这些成功公司的其中一个。

在亚马逊之后,Google、IBM、雅虎、英特尔、惠普等各大公司开始蜂拥进入云计算领域,并且在2010年7月,美国国家航空航天局(NASA)与Rackspace、英特尔、AMD、戴尔等共同宣布OpenStack开放源码计划,由此开启了属于OpenStack的时代。

1.1.3 OpenStack

1.2010年

2010年7月,Rackspace和美国国家航空航天局合作,分别贡献出Rackspace云文件平台代码和NASA Nebula平台代码,并以Apache许可证开源发布了OpenStack。OpenStack由此诞生。

OpenStack第一版代号为Austin,以Rackspace所在的美国得克萨斯州Texas首府命名,计划每隔几个月发布一个全新版本,并且以26个英文字母为首字母从A到Z顺序命名后面的版本代号。第一版Austin仅有Swift和Nova这两个项目,分别来自Rackspace云文件平台和NASA Nebula平台,目的是为云计算提供对象存储和计算平台。

2.2011年

2011年2月,OpenStack社区发布了Bexar版本。这是OpenStack的第二版,此版本新增了一个项目Glance来提供镜像服务。

4月,OpenStack社区发布了更加稳定的Cactus版本,但并没有新增任何项目。同时Ubuntu的开发者很快地将Bexar版本吸收到Ubuntu 11.04中,紧接着Ubuntu的母公司Canonical看到了其中的市场机会,并宣布Ubuntu将全面支持OpenStack。

9月,OpenStack发布了它的第四个版本Diablo。OpenStack在诞生之初,其发行节奏很没有规律,随后OpenStack社区逐步规范并计划发行节奏为每半年一次,分别是当年的春秋两季。Diablo是在该节奏规范形成后的第一个发行版本。

3.2012年

2012年4月,OpenStack又吸收了两个新的核心项目——用于用户界面操作的Horizon和认证的Keystone,并同时发布了第五个版本Essex。随后,Debian 7.0集成了Essex,使得Debian用户可以直接使用OpenStack软件。红帽公司也宣布集成Essex并发布了OpenStack的第一个预览版。

8月,英特尔、新浪、中标软件及上海交通大学在北京联合成立“中国开源云联盟”(China Open Source Cloud League,COSCL),旨在按照国际上OpenStack社区的工作方针,整合中国OpenStack开发者和中国公司的研发资源,深入参与OpenStack社区项目开发,加大中国开发者和公司在国际OpenStack社区中的贡献力度。当时的英特尔亚太研发有限公司总经理兼软件与服务事业部中国区总经理何京翔表示,“中国开源云联盟”将充分发挥英特尔最新芯片的顶尖特性,和合作伙伴合力打造高效的云端基础架构平台,同时完全遵循开源规则,积极向国际社区回馈代码。

9月,OpenStack社区将Nova项目中的网络模块和块存储模块剥离出来,成立了两个新的核心项目,分别是Quantum和Cinder,并发布了第六个版本Folsom。

同一时期,OpenStack基金会成立,由SUSE的行业计划、新兴标准和开源部门总监兼Linux基金会董事Alan Clark担任主席。基金会最初拥有24名会员,获得了大约1000万美元的赞助基金,由Rackspace的Jonathan Bryce担任常务董事。此后,OpenStack项目被纳入OpenStack基金会管理。9月8日,英特尔成为OpenStack基金会金牌会员。

4.2013年

2013年4月,OpenStack发布了第七个版本Grizzly,红帽公司也宣布在其商业发行版中对OpenStack提供全面的商业支持。

10月,OpenStack发布了第八个版本Havana。在Havana中,首次提出集成项目的概念,并集成了两个新的项目,分别是用于监控和计费的Ceilometer和用于编配(Orchestration)的Heat。

5.2014年

2014年4月,OpenStack发布了第九个版本Icehouse,并加入了一个新的项目Trove来提供数据库服务。

5月,在亚特兰大峰会上,OpenStack发布了Marketplace项目计划。

7月19日,IBM工程师Daisy在北京海淀区的车库咖啡发起了OpenStack第四个生日庆祝活动,并邀请了一些国内对社区有贡献的公司与个人。

10月,第十个版本Juno被发布。

11月,在巴黎举办的峰会上,OpenStack基金会白金会员Nebula退出,英特尔击败其他对手进入白金会员行列。

6.2015年

2015年4月,英特尔与华为联合推动,在OpenStack新版本发布前夕,成功地在上海紫竹科学园区举办了第一届OpenStack黑客松活动。在短短3天时间里,来自3家公司的16位开发者共修复了29个Bug,同月OpenStack发布了第十一个版本Kilo。

5月,OpenStack在加拿大温哥华举办Liberty峰会,并在该会上宣布了OpenStack互操作性测试认证,即OpenStack Powered认证。当时首批14家厂商通过了相关标准测试认证,并被允许在其产品上贴有统一的OpenStack Powered标志。UnitedStack是这些厂商中唯一的中国公司。

5月,OpenStack基金会、英特尔、红帽和计世传媒在北京成功举办OpenStack企业就绪论坛,讨论OpenStack在企业私有云的成熟性,以及推动OpenStack在企业的大规模应用。

7月,来自英特尔的王庆成功补选成为OpenStack基金会个人独立董事,成为继程辉和杜玉杰之后,第三位成功入选OpenStack基金会董事会的中国代表。19日,中国开源云联盟在北京发起并成功举办OpenStack五周年庆典。

8月,第二届OpenStack黑客松活动在西安举办。

10月,OpenStack发布了第十二个版本Liberty。Liberty的发布周期经历了开发模式的重大转变,即取消了集成项目的概念,启动了大帐篷(Big Tent)的发行模式。

11月,OpenStack东京峰会顺利举办。OpenStack基金会同时宣布启动OpenStack管理员培训认证(COA)计划,并发布了一项新的工具Project Navigator,旨在让用户更好地理解项目成熟度等相关信息,以帮助他们在如何使用软件方面做出明智的决策。

7.2016年

2016年3月,中国第三届OpenStack黑客松活动在成都举办,这也是OpenStack黑客松活动被第一次推广到全世界11个城市同步举办,包括纽约、悉尼、莫斯科、班加罗尔、圣安东尼奥等地区。

4月,在工信部信息化和软件服务业司(已更名为信息技术发展司)的直接领导和关怀下,中国开源云联盟正式移交给中国电子技术标准化研究院。

同月,OpenStack迎来了第十三个版本Mitaka的发布,并且OpenStack再次回到其诞生地美国奥斯汀举办Newton峰会。OpenStack基金会也对外正式宣布OpenStack管理员认证考试及全球首批COA认证培训机构。中国的九州云与其他十几家来自国外的企业一起成为首批COA认证培训机构。也就是在Newton峰会上,OpenStack基金会新增两家来自中国的黄金会员,即UnitedStack和EasyStack。

7月初,中国第四届OpenStack黑客松活动在杭州举办,并且在落幕时参加者们投票选择出第五届OpenStack黑客松活动的举办地为深圳。

来自英特尔、华为和UnitedStack的志愿者们经过3个月的筹备,于7月14日—15日成功地在北京国家会议中心举办OpenStack中国日,当时吸引了2000多人参会,成为OpenStack历史上人数规模最大的一次OpenStack日活动。

10月,Newton发行版被正式发布,同月OpenStack峰会在西班牙巴塞罗那举行。OpenStack基金会又新增两家来自中国的黄金会员,即中国移动和九州云。

11月,基金会又批准了3家来自中国的公司成为OpenStack基金会黄金会员,分别是中国电信、浪潮和中兴通讯,至此基金会黄金会员里有大约三分之一来自中国,这在相当程度上提升了中国企业的话语权。当月,按照约定,第五届OpenStack黑客松活动由英特尔、华为和中国电子技术标准化研究院在深圳联合举办,该活动所汇聚的顶级OpenStack开发者们再次聚焦中国开源技术实力,共同推进和改善OpenStack技术的成熟度。

8.2017年

2017年2月,Ocata发行版被正式发布。

3月,华为成功晋级为白金会员,成为亚洲首家OpenStack白金会员。与此同时,经董事会一致通过,新华三成为OpenStack基金会黄金会员。

5月,OpenStack峰会在美国的马萨诸塞州波士顿Hynes会议中心举办,Mark Collier现场连线“棱镜门”事件主角斯诺登并进行对话,强调开源社区追求技术卓越精神的重要性,强调开源、透明、公开精神对于保护隐私的重要性。在这届峰会里,OpenStack基金会又新增两家来自中国的黄金会员,即中国联通和烽火。另外,这届峰会还宣布,从下届开始代表技术讨论和代码设计的设计峰会(Design Summit)正式与OpenStack峰会分家,改名为PTG(Project Teams Gathering),其召开时间和地点与OpenStack峰会不再相同。

5月中旬,中国第六届OpenStack黑客松活动成功在苏州落下帷幕,这次的主办方新增了中国移动,从另一方面也说明中国社区活动的筹办吸引了越来越多的中国公司参与,同时中国公司希望在社区里发挥主导作用。

8月,OpenStack的第十六个发行版Pike如期而至。

11月,OpenStack峰会首次登陆南半球,在澳大利亚悉尼国际会议中心举行,并且边缘计算系列主题成为亮点。在这届峰会上,腾讯成为OpenStack基金会新进黄金会员,与此同时,超级用户大奖也被腾讯TStack团队一举摘得。当月下旬,中国第七届OpenStack黑客松活动在武汉烽火创新谷正式开幕,这也是该系列活动首次来到武汉,武汉烽火是这次活动的主要承办方,并且活动参与者不仅修改了Bug,还对刚刚召开的峰会见闻进行了分享。

9.2018年

2018年2月,Queens发行版被正式发布。

4月,OpenStack官方正式公布腾讯晋升为OpenStack基金会白金会员。

5月,OpenStack峰会回到位于加拿大的温哥华举办,并将此次峰会以北美西部的洛基山脉命名为Rocky,以OpenStack为代码基础的边缘计算项目StarlingX首次亮相。

6月,第八届OpenStack黑客松活动在北京举办,除中国电子化标准研究院、英特尔、华为公司作为主办单位一如既往地对该次活动给予了全力支持以外,腾讯首次强势加入了这次开源活动的筹办。而且,从这次起中国OpenStack黑客松活动提升为中国开源云黑客松活动,涉及的项目不再仅仅是OpenStack。

8月,Rocky版本被发布。但9月,eBay宣布正远离OpenStack,使用Kubernetes和Docker来重新平台化eBay数据中心基础设施,一时间闹得沸沸扬扬。

10月,OpenStack基金会在北京宣布任命李昊阳为中国社区经理,强调OpenStack在中国发展的重要性和紧迫性。OpenStack基金会通过中国社区经理职位架设了一座桥梁,方便中国社区与全球社区以高效透明的方式进行沟通。

11月,OpenStack峰会来到德国首都柏林,在CityCube会议中心举行。由于OpenStack基金会托管的项目除了OpenStack,还增加了Airship、StarlingX、Kata Container和Zuul共4个项目,OpenStack基金会也调整了策略来推进基础设施的开放。因此,在本次峰会中,OpenStack宣布将更名为Open Infrastructure Summit,这意味着未来OpenStack不仅面向开源云,而且会进化出更丰富的层次,涵盖CI/CD、容器、边缘计算、GPU、HPC、公有云/私有云等众多方面。

当月,OpenStack基金会任命当时在九州云任职的马振强为OpenStack中国区大使,他也是继叶璐之后的第二位OpenStack中国区大使。

10.2019年

2019年4月,中国开源云黑客松活动又回到了深圳举办,并把名称提升为开源黑客松而非开源云黑客松。因为随着该项活动影响力的增加,越来越多的开源项目,特别是一些以中国本土为主导的开源项目希望加入此次活动中,所以除了OpenStack、StarlingX、Ceph、OpenSDS(后改名为SODA)、容器和Kubernetes,还有Hadoop、Spark、Harbor等其他非云项目。当月,OpenStack的Stein版本被发布。

4月下旬至5月初,第一次更名为Open Infrastructure Summit的峰会在美国科罗拉多州丹佛举行。大会对OpenStack、Ceph、Docker、Kata Containers、Kubernetes、StarlingX等30余种开源技术和项目进行了技术交流和实践分享。

7月,中国社区的小伙伴们在上海紫竹科技园区为OpenStack庆祝九周岁生日。

9月,浪潮宣布旗下基于OpenStack Rocky版本的浪潮云海InCloud成功完成单一集群规模达500个节点的测试验证,这也是当时基于OpenStack Rocky进行的全球最大规模单一集群实践。

10月,Train发行版被发布。在两年前丹佛第一次举办PTG时,参加者们谈笑风生并提及酒店附近火车站的那些很有特色的火车,而Train这个名称的灵感正来源于那次不经意的谈论。

11月4日,第二届Open Infrastructure峰会在上海世博中心开幕,是OpenStack在中国开放基础设施的重要里程碑。峰会吸引了国内外来自开放基础设施领域的专业人士及用户等众多人士,包括中国移动、中国电信、中国联通三大运营商,以及英特尔、腾讯、华为、百度、字节跳动等厂商。百度也凭借其使用Kata Container实现企业内外安全云服务荣获超级用户大奖。在这届峰会上,位于天津的卓朗科技成为OpenStack黄金会员中的新成员,至此,中国企业在OpenStack基金会黄金会员里已经占据了“半壁江山”。

12月,第十届中国开源黑客松活动,在英特尔北京办公室环球贸易中心举办。由于在同年夏季,中国自主开发设计的开源许可证“木兰宽松许可证”正式上线,因此本次黑客松活动还呈现了木兰社区科技创新开源项目IoTDB、PostMan、DHL等。同时,本次黑客松活动还吸引了京东主导的ChubaoFS和腾讯主导的TKEStack项目参与。

11.2020年

2020年1月,OpenStack基金会社区会员进行了独立董事投票,来自英特尔的王庆连续第六年当选OpenStack基金会个人独立董事。

2月,OpenStack中国社区筹划召开这一年度的Open Infrastructure中国日,而此时新冠肺炎病毒正在中国乃至全世界广泛传播,使得全世界面临严峻的疫情考验,未来具有很大的不确定性,社区的各种计划能不能按期落实也犹未可知。