专栏名称: 马哥Linux运维
马哥linux致力于linux运维培训,连续多年排名第一,订阅者可免费获得学习机会和相关Linux独家实战资料!
目录
相关文章推荐
运维  ·  再见,CDN 巨头:Akamai 宣布 ... ·  3 天前  
51好读  ›  专栏  ›  马哥Linux运维

OpenStack关键技术系列: 最全OpenStack知识科普

马哥Linux运维  · 公众号  · 运维  · 2018-06-07 18:00

正文

来源:架构师技术联盟

ID:ICT_Architect


最近几年, OpenStack 这个词大家早都熟的不能再熟,越来越多人开始关注。



对于大部分人来说,这还是一个很陌生的词,不知道它到底是什么,从哪里来,有什么用,和自己的工作有什么关系。


有人可能知道,它和现在非常火的云计算有很大的关系。伴随它一起出现的,还有很多新词,例如NFV、Nova、Neutron、Horizon等,更加让人云里雾里。


为了消除大家的疑惑,今天我们就来一个“大揭秘”——通过这篇通俗易懂的科普文,帮助大家轻松入门 OpenStack



OpenStack的起源

这玩意到底是从哪冒出来的?


我们先来说说OpenStack的起源吧。


2002年,美国著名的电商公司 亚马逊(Amazon) 干了一件“不务正业”的事。他们向客户推出了一项全新的业务——包括存储空间、计算能力等资源服务的Web Service。这就是大名鼎鼎的 AWS(Amazon Web Service)


说白了,这个Web Service服务,就是为大家提供“远程电脑”。你可以远程控制它,有硬盘,有CPU,有内存啥的。你在上面配置你的各种服务,然后给你的用户使用,例如网站、FTP等。 这个就是云计算的一种早期形式。


后来,到了2006年,亚马逊又推出了 弹性计算云(Elastic Compute Cloud) ,也称 EC2 EC2配置界面更简单,使用起来更方便,关键一点,它开始有了“ 弹性 ”!



什么是“弹性”?别急哈,等会我们再解释。


同样是2006年,8月9日,Google首席执行官 埃里克·施密特 在搜索引擎大会上首次提出 “云计算”(Cloud Computing) 的概念。从此,云计算进入了高速发展阶段。


云计算


到了2010年,当时有一家名叫 Rackspace 的公司,他们一直在做和亚马逊一样的云主机和云储存服务,但是始终都干不过亚马逊,排名第二。他们一气之下,干脆就把它们的云储存服务给开源了。


啥叫 开源(Open Source) ?开源就是开放源代码,把程序的代码公开了,给所有人免费查看和使用。 和他们一起开放源代码的,还有一个家伙,就是—— NASA


好吧,又是一个“ 不务正业 ”的家伙。


NASA之前在云计算方面投入了大量的资金,但是后来发现这玩意好像是个无底洞,太烧钱了。而且,他们也似乎意识到这不是他们该干的事。所以,NASA和Rackspace一起,选择开放源代码。


其实还有一个原因:以前NASA是使用Eucalyptus云计算管理平台,不过这个平台分成两个版本,一个开源的版本,一个收费的版本。这就导致NASA很不爽,向Eucalyptus贡献代码,结果Eucalyptus认为这个代码和收费版本冲突,不接受。NASA给气得不行,所以选择了将代码开源。


Rackspace和NASA并不是简单地代码一丢完事,而是联手共同成立了一个开源项目。这个项目,就是 OpenStack



OpenStack的版本

开源后的OpenStack,到底经历了什么?


开源项目的玩法,和企业内部研发是完全不一样的。 开源项目中,地球上所有人都可以为这个项目贡献自己的力量,也可以使用这个项目的开发成果。也就是说, “人人为我,我为人人”


开源(Open Source)


但是,为了保证项目能规范、有序地推进下去,还是需要有人“牵头”和“打杂”的。OpenStack作为一个开源项目,它是由 开源社区 来负责推进和维护的。这个社区也并不是一盘散沙,它有自己的组织形态。


首先,有一个 OpenStack基金会 ,下面设立了董事会、技术委员会、用户委员会。基金会享有话语权,进行目标和发展的引导。

基金会成员有三种形式。首先是 独立个体 ,也就是以个人名义为OpenStack做出贡献。


其次是 铂金会员 。主要由对OpenStack作出重要承诺的公司组成,他们提供资金与资源。 目前,OpenStack基金会主要有 7 家铂金会员。


最后是金牌会员。同样由公司组成,他们赞助的资金与资源比铂金会员稍微少一些。目前,OpenStack基金会拥有 21 位金牌会员。



从2010年项目诞生之日起,OpenStack开源社区每年都会开两次 设计峰会(Design Summit) ,发布两个正式版本。迄今为止,一共已经出了17个版本。


OpenStack设计峰会


这里我要开启“ 吐槽 ”模式了。 开源社区这帮搞技术的宅男腐女,不管年龄大小,内心仍然是一群孩子。他们平时在公司上班比较“木鸡”,在社区这种自由环境里是一个比一个“皮”。


从哪可以看出来?就在“ 取名 ”上——他们竟然给每个版本都单独取了一个名字(而非 商业软件一样按数字序号命名)。 每个版本的名字如下:



不知道大家看出来没有,这些名字都是有“ 玄机 ”的! 首先,版本号的第一个字母,从A开始,然后B、C、D… 其次,每个名字都是从当次设计峰会所在城市中选一个地名,作为该版本的名字。


例如,第一个版本Austin,就是根据Rackspace公司所在地(也是第一次峰会所在地)——美国德克萨斯州的首府“ 奥斯丁 ”确定的。 还有第9个版本,当时峰会是在香港举办的,用的“ 雪厂街 ”这个名字。



这么做的直接后果就是,记忆和分辨起来真的很困难,容易看晕。


OpenStack的架构

它由哪些部分组成?是如何进行工作的?


接下来,我们看看OpenStack的架构。 前面说了, OpenStack 从一开始,就是为了云计算服务的。简单来说,它就是一个操作系统,一套软件,一套IaaS软件。


什么是IaaS? Infrastructure as a Service,基础设施即服务( 了解更多,看这里:“云计算”)。


云计算的三种服务模式:IaaS、PaaS、SaaS


管理“ 基础设施资源 ”,便于用户调用和使用,是OpenStack的首要任务。 基础设施资源,主要包括三个方面:计算、存储、网络。说通俗点,就是CPU,硬盘,网卡。



OpenStack对资源进行管理,并且以服务的形式提供给上层应用或者用户去使用。


例如前面我们所说的“弹性”。正是因为资源能够被灵活调用,所以用户使用资源时,这个云平台可以根据用户的需要,动态增加和删减资源,不用中断用户的使用,更无需全新申请。这就是“弹性”。


那么,它到底是如何实现的呢? 答案是——通过它的众多组件。


前方高能预警……


学习OpenStack,最痛苦的事情,莫过于看它的架构。不信?好,扔个图给你看:



OpenStack系统架构逻辑关系图


吓尿了吧。这还不算是最复杂的,再扔一个给你。



好了好了,不扔了,人都跑光了。 OpenStack拥有众多的组件,通过组件之间协同进行工作,所以看上去架构非常复杂。我还是用一个简单的图吧,看得更明白些,如下:

这个图里面的彩色方块,就是OpenStack最核心的组件。 说到这些组件的名字,我实在忍不住又要吐槽这帮程序猿了,简直就是“取名狂魔”!他们不仅给每个项目版本单独取名字,连openstack内部的组件也难逃他们的魔爪。


OpenStack关键组件及作用


这些组件里,我挑几个再介绍一下(看不懂也没关系,可以跳过):


  • Nova

Nova是整个Openstack里面最核心的组件。当初Rackspace和NASA贡献代码时,NASA贡献的那部分就是Nova最早的代码(Rackspace贡献的代码是Swift)。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,它负责管理整个云的计算资源、网络、授权及测度。


  • Keystone

Keystone为所有的OpenStack组件提供认证和访问策略服务,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。


  • Horizon

Horizon是一个用以管理、控制OpenStack服务的Web控制面板。用户可以通过这个界面对OpenStack状态进行查看和管理。


用Horizon管理OpenStack


也就是说,OpenStack的组件都有自己的功能定位。其实,每个组件都可以算是独立的一个程序( Software)


Open为开放之意,Stack则是堆砌

也就是许多Open的Softwares进行集合和堆砌。


关于技术细节,就先说这么多吧,再说下去估计人都跑光啦。


OpenStack的发展

现在的它,是一个什么规模和状态?


经过八年的努力,如今的OpenStack已经今非昔比。 很多企业和个人纷纷加入 Openstack开源社区 使之成为了目前仅次于LINUX的全球第二大开源社区。


按官网最新数据,现在有180多个国家,677家企业,87426名社区会员通过各种方式支撑着这个项目。项目的代码也已经超过了2000万行。



全球一半以上的500强企业,都采用了OpenStack技术。而且,根据调查,有75%以上的企业打算今后使用这项技术。








请到「今天看啥」查看全文