OpenStack设计与实现(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-23 20:38:32

点击下载

作者:英特尔开源技术中心

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

OpenStack设计与实现(第2版)

OpenStack设计与实现(第2版)试读:

前言

至此落笔之际,OpenStack问世几近7年,7年的时间,对很多项目来说已经足够走过一个创建发展到没落的轮回,而对于OpenStack,7年的时间仍然远远不够让我们看到它最终所能够达到的高度。

从哲学的辩证角度:今天的必然正是由之前一系列的偶然所决定的。2010年的一个偶然,OpenStack由RackSpace和美国国家航空航天局合作发布,于是随后的时间里无数公司与个人偶然初识OpenStack并深陷其中,而正是这些偶然相联合,从而决定了会有今天这样一本书,会有现在写下的这些话。那么,当您偶然地拿起这本书,偶然地看到这段话,您是否会问自己:这样的偶然又会导致什么样的必然?

如果您依然决定继续这次的偶然之旅,还请您问自己一个问题:我在强迫自己学习OpenStack么?很希望您能回答不是,但希望与现实往往都有段不小的距离,因为很多时候,我们都是因为各种原因而强迫自己去喜欢的。或许,针对这个问题,最让人愉悦的回答是“说实话,我学习的热情从来都没有低落过。Just for Fun.”

其次,在您继续之前,面对OpenStack这样一个新生事物,让人最为惴惴不安的问题或许便是:我该如何更快更好的适应这个全新的世界?人工智能与机器学习领域里研究的一个很重要的问题是“为什么我们小时候有人牵一匹马告诉我们那是马,于是之后我们看到其他的马就知道那是马了?”。针对这个问题的一个结论是:我们头脑里形成了一个生物关系的拓扑,我们所认知的各种生物都会放进这个拓扑的结构里,而我们随着年纪不断成长的过程就是形成并完善各种各样或树形或环形等拓扑的过程,并以此来认知我们所面对的各种新事物。

由此可见,或许我们认知OpenStack最快也最为自然的方式就是努力在脑海里形成它的拓扑,并不断的进行细化。比如作为一个云计算的平台它包括了哪些功能分别对应哪些项目,各个项目又实现了哪些服务以及功能,这些功能又是以什么样的方式实现的,等等,对于我们感兴趣的项目或服务又可以更为细致的去勾勒它其中的脉络。就好似我们头脑里形成的有关一个城市的地图,它有哪些区,区里又有哪些标志建筑以及街道,对于我们熟悉的地方可以将它的周围进行放大细化,甚至于一个微不足道的角落。

而对于这个拓扑细化的过程能够起到有益辅助的是概念空间的勾勒。站在架构设计的角度,软件从需求进到架构出的全过程中,勾勒描绘概念空间是很重要的一个中间过程。这个阶段会形成所需要引入的各种新概念,比如操作系统中的进程、虚拟内存、系统调用等等,它们就类似一个拓扑中的标志建筑,而我们去认知研究这个软件的时候,描绘这个概念空间也就不可避免成为重中之重。

本书的组织形式

本书的内容组织正是为了尽一切能力帮助读者能够形成有关OpenStack以及各个重要项目与功能比较细致的拓扑。首先是前四章,这几章的内容希望能够帮助您对OpenStack有个全面的认识和了解,从而形成对OpenStack整体的拓扑。

第1章主要介绍了OpenStack的成长史以及它的体系结构和社区现状。

第2章详尽的介绍了OpenStack开发的基础流程以及如何去分析OpenStack的源码。

第3章介绍了OpenStack的底层基石——虚拟化技术。大多数OpenStack的使用者和开发者并不了解虚拟化的一些细节,有了这一章的介绍,我们能够对OpenStack有一个更好的认识。

第4章将OpenStack众多项目中所使用到的通用技术加以介绍,有了这一章,我们理解各个具体项目的设计与实现时,可以少去很多的阻碍。

然后第5~14章的内容对OpenStack主要组件及项目的实现进行介绍。按照认识的发展规律,通过前面几章的介绍我们已经对OpenStack有了全局的认识和了解,接下来就可以以兴趣或工作需要为导向,寻找一个组件或项目,对其实现进行深入的钻研和分析。这些章节的内容也是希望能够尽量帮助您形成对相应项目的比较细致的拓扑,并不求对所有实现细节的详尽分析。

第5章讨论计算组件也就是Nova项目。Nova为我们实现了OpenStack这个虚拟机世界的抽象,控制着一个个虚拟机的状态变迁与生老病死,管理着他们的资源分配。

第6章讨论存储相关的四个项目:Swift,Cinder,Glance以及Ceph。他们共同为这个虚拟机世界的主体——虚拟机提供了安身之本,负责为每个虚拟机本身的镜像以及它所产生的各种数据提供一个家,尽量的去做到“居者有其屋”。

第7章讨论网络组件也就是Neutron项目。没有网络,任何虚拟机都将只是这个虚拟机世界中的孤岛,不知道自己生存的价值。

安全是每个软件无法回避的问题,第8章便针对安全问题进行讨论,包括Keystone项目以及可信计算池的相关内容。

第9章的内容有关计量与监控的项目Ceilometer,计量与监控是公有云运营的一个重要环节。

第10章的内容与物理机管理有关,Ironic项目被应用于OpenStack中的裸机管理和部署。

第11章介绍了OpenStack的控制面板。提供一个简洁方便、用户友好的控制界面给最终的用户和开发者对OpenStack尤为重要。

随着容器技术的发展,容器与云基础架构的结合受到越来越多的关注,第12章便讨论了OpenStack对容器的支持。

第13章的内容与部署有关,但是这里讨论的并不是如何部署的详细步骤与过程,而只是与部署有关的几个主要项目。

第14章介绍了几个新兴的项目,包括Searchlight与Watcher等。

感谢

作为英特尔的开源技术中心,参与OpenStack的开发与推广是再为自然不过的事情。除了为OpenStack的完善与稳定贡献更多的思考和代码,我们也希望能通过这本书让更多的人更快捷的融入OpenStack的大家庭。

如果没有Imad Sousou(英特尔软件与服务事业部副总裁兼开源技术中心总经理)、Mauri Whalen(英特尔软件与服务事业部副总裁兼开源技术中心核心系统研发总监)、Hillarie Prestopine(英特尔软件与服务事业部副总裁兼开源技术中心云和网络系统研发总监)、David L Brown(英特尔开源技术中心云计算核心研发总监)、练丽萍(英特尔开源技术中心网络和存储研发总监)、Malini K Bhandaru(英特尔开源技术中心云计算主任工程师)、冯晓焰(英特尔开源技术中心中国安卓研发总监)、李少凡(英特尔开源技术中心虚拟化研发总监)、陈绪(英特尔开源技术中心中国云计算战略总监)的支持,这本书不可能完成,谨在此感谢他们对本书编写过程中的关怀与帮助。

也要感谢本书的编辑孙学瑛老师,从选题到最后的定稿,整个过程中,都给予我们无私的帮助和指导。

然后要感谢参与第一版与第二版各章内容编写的各位同事,他们是王庆、丁建峰、任桥伟、陆连浩、翟纲、徐贺杰、程盈心、李晓燕、臧锐、贺永立、郭瑞景、乔立勇、陈巍、杜永丰、杨林、张磊、冯少合、金运通、魏刚、田双太、汪亚雷、谭霖、辛晓慧,为了本书的顺利完成,他们付出了很多努力。他们不仅为英特尔开源技术中心做出了很多的贡献,而且长期活跃在中国的云计算技术生态系统中。

最后感谢所有对OpenStack抱有兴趣或从事OpenStack工作的人,没有你们的源码与大量技术资料,本书便会成为无源之水。

轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。

· 提交勘误:您对书中内容的修改意见可在【提交勘误】处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。

· 与作者交流:在页面下方【读者评论】处留下您的疑问或观点,与作者和其他读者一同学习交流。

页面入口:http://www.broadview.com.cn/31199第1章初识OpenStack如果你尚未与OpenStack亲密接触过,那么希望这里的内容可以成为你初识OpenStack的见证。如果你已经是OpenStack达人,那么就选个安静的早晨,抑或下午,一起缅怀与OpenStack一起走过的青葱岁月吧。1.1 从虚拟化到OpenStack

至此落笔之际,OpenStack已经成长了4年多,云计算被提出了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年代

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

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

4.20世纪80年代与90年代

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

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

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

5.21世纪

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

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

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

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

此后数年,AMD、Oracle、Redhat、Novell、Citrix、思科、惠普等先后进军虚拟化市场。1.1.2 云计算

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

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

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

当然,事后,Steve在其Google+作了一些解释,大意是自己喝多了,又是凌晨,头脑不清,Google对他很好,等等。但是这篇文章本身却堪称云计算架构的入门教材,中文翻译可见酷壳网(http://coolshell.cn/)上陈皓的一篇文章,这里着重提一下文中提到的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年,误差应该是在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.

除此之外没有其他形式的通信方式:不能直接链接程序、不能直接读取其他团队的数据库、不能使用共享内存、不能使用别人模块的后门,等等,唯一允许的通信方式只能调用Service Interface。

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.

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

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 aws.amazon.com 查得到的一堆Services这些服务是某些相当成功的公司的后台架构,比如,我个人喜欢的 reddit 是这一堆成功公司的其中一个。

亚马逊之后,Google、IBM、雅虎、Intel、惠普等各大公司开始蜂拥进入云计算领域,并于2010年7月,美国国家航空航天局(NASA)与Rackspace、Intel、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这两个项目,分别来自RaceSpace云文件平台和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软件。Red Hat也宣布集成Essex并发布OpenStack的第一个预览版。

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

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

同一时期,OpenStack基金会成立,主席由SUSE开源部门总监兼Linux基金会董事Alan Clark担任。基金会最初拥有24名成员,获得了1000万美元的赞助基金,RackSpace的Jonathan Bryce担任常务董事。此后,OpenStack项目纳入OpenStack基金会管理。9月8日,Intel成为OpenStack基金会金牌会员。

4.2013年

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

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

5.2014年

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

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

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

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

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

6.2015年

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

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

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

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

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

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

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

7.2016年

2016年2月,在社区会员投票中,王庆以第三名的成绩成功继任OpenStack基金会个人独立董事。

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

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

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

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

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

10月,Newton发行版正式发布。1.2 OpenStack基金会以及管理模式

2012年9月,OpenStack发行了第六个版本Folsom。也就是在这段时期,非营利组织OpenStack基金会成立,由SUSE的行业计划、新兴标准和开源部门总监兼Linux基金会董事Alan Clark担任基金会主席。

OpenStack基金会(http://www.openstack.org/foundation/)最初拥有24名成员,共获得了1000万美元的赞助基金,由RackSpace的Jonathan Bryce担任常务董事。OpenStack社区决定从此以后OpenStack项目都由OpenStack基金会管理。

OpenStack基金会的职责为推进OpenStack的开发、发布和作为云操作系统被采纳,并服务于来自全球的所有28000名个人会员。

OpenStack基金会的目标是为OpenStack开发者、用户和整个生态系统提供服务,并通过资源共享,推进OpenStack公有云和私有云的发展,辅助技术提供商在OpenStack中集成最新技术,帮助开发者开发出最好的云计算软件。

简单地说,OpenStack基金会是一非营利组织,由各公司资助会费,共同管理OpenStack项目,帮助推广OpenStack的开发、发行和应用。基金会会员有个人会员以及企业会员,个人会员是免费的、开放的,基金会鼓励个人会员参与技术贡献、代码贡献和社区建设。而针对公司会员,依据公司的决策及缴纳会费的多少,分为白金会员(Platinum Member)、黄金会员(Gold Member)、企业赞助会员(Corporate Sponsor)和支持组织(Supporting Organization)几种。

关于会员数量,OpenStack基金会只允许最多8家白金会员资格和24家黄金会员资格,目前已有AT&T、Canonical、惠普、IBM、Intel、Rackspace、红帽和SUSE这8家白金会员,以及Aptira、CCAT台湾云端运算产业协会、思科、戴尔、DreamHost、EMC、爱立信、富士通、日立、华为、inwinStack、Juniper、Mirantis、NEC、NetApp、Odin、赛门铁克和雅虎等黄金会员。1.2.1 董事会

按照OpenStack基金会成立规则,所有8家白金会员和24家黄金会员中的8家是可以在董事会占有席位的,并由此具备各种事务的投票权。席位在基金会董事会里,是可以影响OpenStack发展和建设方向的,这也是企业们对会员级别和董事会席位趋之若鹜的原因。

所有黄金会员需要通过投票竞争才能获得那8个黄金会员席位,投票由24个黄金会员们在一天内完成,不对外部社区公开。

最后,个人独立董事的8个席位,是由千万社区个人会员经过一周投票决定产生。所有这些24个席位构成了基金会董事会,如图1-1所示。图1-1 OpenStack基金会董事会

董事会对OpenStack项目的管理、发展以及各项决策都有十分重要的决定权。比如,曾经所有被集成在OpenStack发行版中的项目都被称为核心项目,包括Nova、Swift、Glance、Cinder、Neutron、Horizon和Keystone。但是在2013年,“核心”这个词变成了OpenStack基金会董事会能在OpenStack发行版里对某个项目进行标签的特有名词,“核心”的使用也就被限制了,于是此后被集成的项目被称为集成项目,再后来,子项目越来越多,OpenStack允许子项目自己决定自己的发布,经过一些流程审核通过且被选中的子项目,我们称之为大帐篷项目,这一系列决策都来自董事会。

一般来说,基金会会成立各种工作组(Working Group或WG),有计划、有目标地做一些推动OpenStack发展的事情。比如2014年亚特兰大峰会上,Intel代表提出发起建立企业就绪工作组(Win the Enterprise WG或Enterprise WG),其目的是为了推动OpenStack从公有云向私有云转化,为推动OpenStack企业就绪进行相应的工作。后来因为既要考虑企业就绪,又要考虑电信就绪等市场,干脆就成立了一个产品工作组(Product WG),显得更为专业。这个工作组的工作内容包括定义产品工作组的目标和工作方式、定义各时间段的Roadmap、交付时间表以及工作流程、定义用户委员会的介入方式,以及介绍PTL如何在工作组里收集反馈并把反馈转化成将来开发的功能,等等。

产品工作组定义有3个目标:

· 放大来自市场/用户/运维在OpenStack设计和开发工作流中的声音,即OpenStack设计和开发应该有效地尊重并考虑来自于市场/用户/运维的实际需求。

· 简化跨项目功能的定义、实现和跟踪。

· 发布OpenStack的Roadmap以帮助运维/用户/其他人可以事先规划好自己的部署。

董事们在董事会会议期间,需要听取各方报告,有时还需要投票批准相关文件。另外,每次在峰会的首日,基金会也会举行董事会,听取来自Jonathan Bryce的OpenStack基金会工作人员例行报告,了解OpenStack运维的健康状况。报告内容不仅包括工作总结,还包括峰会准备情况,以及财务收支情况等。1.2.2 技术委员会

OpenStack基金会在成立之初就设立了专门的技术委员会,来指导OpenStack技术相关的工作,如图1-2所示。对于技术问题讨论、某项技术决策和未来技术展望,技术委员会负责提供指导性建议和意见。除了技术指导之外,技术委员会还要确保OpenStack项目的公开性、透明性、普遍性、融合性和高质量。图1-2 OpenStack基金会技术委员会

一般情况下,OpenStack技术委员会由13位成员组成,这13位成员完全是OpenStack社区中有过代码贡献的开发者投票选举出来的,通常任职6个月后需要重选。有趣的是,其中的6位成员是在每年秋天选举产生,另外7位是在每年春季选举产生,通过时间错开保持了该委员会成员的稳定性和延续性。技术委员会成员候选人的唯一条件是该候选人必须是OpenStack基金会的个人成员,除此之外,不作其他要求。而且,技术委员会成员也可以同时在OpenStack基金会其他部门兼任职位。

技术委员会在选举产生之后,会提名13位中某一位担任技术委员会主席。如果有多位候选人被提名,则采取投票的方式和少数服从多数的原则决定。除非有特殊情况,例如法律规定禁止外,OpenStack基金会董事会有权利也会相应地批准最终技术委员会主席的任命。技术委员会主席负责组织定期会议,并及时与基金会董事会和整个社区沟通。1.2.3 用户委员会

随着越来越多的用户在生产环境中使用OpenStack,以及OpenStack生态圈里越来越多的合作伙伴在云中支持OpenStack,社区指导用户使用和产品发展的使命就变得越来越重要。鉴于此,OpenStack用户委员会应运而生,如图1-3所示。图1-3 OpenStack基金会用户委员会

OpenStack用户委员会的主要任务是:收集和归纳用户需求,并向董事会和技术委员会报告;以用户反馈的方式向开发团队提供指导;跟踪OpenStack部署和使用,并在用户中分享经验和案例;与各地OpenStack用户组一起在全球推广OpenStack。

OpenStack用户委员会由3位个人领导,并指导一系列工作组的工作。1.3 OpenStack体系结构“云计算”中所谓的“云”可以简单被理解为任何可以通过互联网访问的服务,那么根据所提供服务的类型,云计算就有3种落地方式。

· IaaS(基础架构即服务):通过互联网提供“基础的计算资源”,包括处理能力、存储空间、网络等,用户能从中申请到硬件或虚拟硬件,包括裸机(Bare Metal)或虚拟机,然后在上面安装操作系统或其他应用程序。

· PaaS(平台即服务):把计算环境、开发环境等平台作为一种服务通过互联网提供给用户。用户能从中申请到一个安装了操作系统以及支撑应用程序运行所需要的运行库等软件的物理机或虚拟机,然后在上面安装其他应用程序,但不能修改已经预装好的操作系统和运行环境。

· SaaS(软件即服务):通过互联网,为用户提供软件及应用程序的一种服务方式。应用软件安装在厂商或者服务供应商那里,用户可以通过网络以租赁的方式来使用这些软件,而不是购买。比较常见的模式是提供一组账号密码。

PaaS和SaaS并不一定需要底层有虚拟化技术的支持,但IaaS一般都是建立在虚拟化技术基础之上的。OpenStack以及它一直在跟随的榜样AWS都是属于IaaS的范畴。

本质上,IaaS系统其实就是一个用户层的软件系统,它包含多个服务和应用程序,这些服务或程序被部署到多台被管理的物理主机上,这些物理主机通过网络相连从而形成一个大的分布式系统。IaaS系统要解决的问题就是如何自动管理这些物理主机上虚拟出来的虚拟机,包括虚拟机的创建、迁移、关闭,虚拟存储的创建和维护,虚拟网络的管理,还包括监控计费、负载均衡、高可用性、安全等。这里不提供任何虚拟化服务的裸机(Bare Metal)也被视为虚拟机的一种特例,对它的管理也属于虚拟机管理的范畴。

在单个主机上,这些都可以通过简单的命令和操作完成,有些问题,比如高可用性或负载均衡等根本不存在。但是,如果在大规模网络上或数据中心里,将有成千上万台物理主机,仅仅靠运维人员来完成这些管理任务是不现实的,这时候就需要软件系统来自动辅助运维人员管理和维护系统的运行,给用户提供虚拟机服务。这就是IaaS系统产生的初衷,也是AWS和OpenStack,以及其他IaaS产品和开源项目要实现的功能。

1.OpenStack与AWS

无论是否情愿,我们都不得不承认,与亚马逊的AWS相比,OpenStack只是处于一个跟随者的位置。

Bezos颁布那份充满系统架构智慧的法令之后,到2006年,亚马逊推出了AWS产品,正式开启了云计算的新纪元。AWS由一系列服务组成,去实现IaaS系统所需要的功能。如图1-4所示,AWS架构由5层组成,自下而上分别是AWS全球基础架构、基础服务、应用平台服务、管理和用户应用程序。图1-4 AWS架构

而就服务类型本身而言,AWS主要提供6类服务:计算和网络、存储和内容分发、数据库、分析、部署管理和应用服务,如图1-5所示。

计算和网络服务中涵盖了负责虚拟机调度和管理的弾性计算云 EC2、用于计算资源自动扩容缩容的Auto Scaling服务、负载均衡服务ELB、虚拟桌面管理服务WorkSpaces、保证企业在公有云上搭建安全私有云的虚拟私有云服务VPC、高可靠且可扩展的域名系统Web服务Route 53以及为企业定制的专属网络连接Direct Connect等。

在存储和内容转发服务中涵盖了简单存储服务S3、Amazon Glacier、块存储EBS、AWS存储网关、AWS导入导出以及Amazon云前端。其中S3提供AWS永久存储服务,而EBS提供的是块存储服务。

在数据库服务里,包括关系数据库服务RDS、NoSQL数据库服务DynamoDB、缓存和数据仓库服务RedShift。

在分析服务里,AWS包括用于大数据的弹性MapReduce(EMR)、用于大规模实时流数据处理的Kinesis和数据管道。图1-5 AWS的服务模块

在部署管理服务里,AWS包括验证访问管理IAM、日志管理CloudTrail、监控CloudWatch、用于轻松部署Web应用和服务的Beanstalk、建立和管理AWS资源的CloudInformation、为运维人员配备的应用管理服务OpsWorks和安全服务CloudHSM。

在应用服务里,AWS包括应用程序流(AppStream)、简单队列服务(SQS)、简单消息服务(SNS)、简单工作流服务(SWF)、简单邮件服务(SES)、用于云搜索的CloudSearch,以及用于流媒体转码的Transcoder。

如上所述,AWS的功能十分强大,而且目前还在不断发展之中,OpenStack从诞生之初就一直向AWS模仿和学习,同时,OpenStack也提供开放接口去兼容各种AWS服务。

比如,AWS中最为核心的EC2模块,负责计算资源的管理,以及虚拟机的调度和管理,在OpenStack中对应的就是Nova项目;AWS中的简单存储服务S3,在OpenStack中有Swift项目与其功能相近;AWS中的块存储模块EBS,对应OpenStack的Cinder项目;AWS的验证访问管理服务IAM,对应OpenStack的KeyStone项目;AWS的监控服务CloudWatch,对应OpenStack的Ceilometer项目;AWS有CloudInformation,OpenStack则有Heat项目;AWS支持关系数据库RDS和NoSQL数据库DynamoDB,OpenStack也支持mySQL、postgre和NoSQL数据库MongoDB。

目前来看,OpenStack远没有AWS完善,但是相比来说,OpenStack是开源项目,并没有版权费用,这一点吸引了众多的企业IT人员、开源爱好者和开发人员、学术界人士、云服务提供商、运维人员等加入到OpenStack社区,并贡献代码和分享经验。

2.OpenStack体系结构

作为一个IaaS范畴的云平台,完整的OpenStack系统首先要具有如图1-6所示的基本视图,它向我们传递了这样的信息——OpenStack通过网络将用户和网络背后丰富的硬件资源分离开。图1-6 OpenStack基本视图

OpenStack一方面负责与运行在物理节点上的Hypervisor进行交互,实现对各种硬件资源的管理与控制;另一方面为用户提供一个满足要求的虚拟机。

至于OpenStack内部,作为AWS的一个跟随着,它的体系结构里不可避免地体现着前面所介绍的AWS各个组件的痕迹。图1-7所示为OpenStack架构标准视图。

图1-7涵盖了OpenStack曾经的7个核心组件,分别是计算(Compute)、对象存储(Object Storage)、认证(Identity)、用户界面(Dashboard)、块存储(Block Storage)、网络(Network)和镜像服务(Image)。这7个核心组件除用户界面外,其余6个仍是目前的核心组件。每个组件都是多个服务的集合,一个服务意味着运行着的一个进程,根据部署Openstack的规模,决定了你是选择将所有服务运行在同一个机器上还是多个机器上。图1-7 OpenStack架构标准视图(1)Compute(Nova)

Compute的项目代号是Nova,它根据需求提供虚拟机服务,比如创建虚拟机或对虚拟机做热迁移等。从概念上看它对应于AWS的

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载