漫谈云计算与OpenStack的前世今生

如今,大家天天听到媒体说云计算、OpenStack,它们到底是什么呢?

云计算(Cloud Computing):一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。

漫谈云计算与OpenStack的前世今生

也可以这样理解:云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(ParallelComputing)、效用计算(UtilityComputing) 、网络存储(Network Storage Technologies)、虚拟化(Virtualization) 、负载均衡(Load Balanc)等传统计算机技术和网络技术发展融合的产物。

个人理解:把一堆功能小的设备,整合成一大个功能强大设备,再把这个强大的设备划分成小设备,然后按你的需要卖给你。

云计算类型:公用云(Public Cloud)、私有云(Private Cloud)、混合云(Hybrid Cloud)。

云计算解决方案:启迪云、VMware vSphere、微软云计算解决方案、亚马逊AWS、OpenStack等等。

云计算的服务形式

IaaS(Infrastructure-as-a- Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。

PaaS(Platform-as-a- Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。

SaaS(Software-as-a- Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。

云计算的特点

云计算是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。

好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。

云计算的特点:超大规模、虚拟化、高可靠性、通用性、高可扩展性、按需服务、极其廉价。

OpenStack

近几年,OpenStack这个词开始频繁出现,引起了越来越多人的关注。那么,什么又是OpenStack呢,它和云计算是什么关系呢?

我们先来说说OpenStack的起源。

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

漫谈云计算与OpenStack的前世今生

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

后来,到了2006年,亚马逊又推出了弹性计算云(Elastic Compute Cloud),也称EC2 。同样是2006年,8月9日,Google首席执行官埃里克·施密特在搜索引擎大会上首次提出“云计算”(Cloud Computing)的概念。从此,云计算进入了高速发展阶段。

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

和他们一起开放源代码的,还有一个家伙,就是——美国国家航空航天局(NASA)。又是一个“不务正业”的家伙。NASA之前在云计算方面投入了大量的资金,但是后来发现这玩意好像是个无底洞,太烧钱了。而且,他们也似乎意识到这不是他们该干的事。所以,NASA和Rackspace一起,选择开放源代码。

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

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

OpenStack的版本

开源社区这帮搞技术的宅男腐女,不管年龄大小,内心仍然是一群孩子。他们平时在公司上班比较“木鸡”,在社区这种自由环境里是一个比一个“皮”。从哪可以看出来?就在“取名”上——他们竟然给每个版本都单独取了一个名字,而非商业软件一样按数字序号命名。

漫谈云计算与OpenStack的前世今生

不知道大家看出来没有,这些名字都是有“玄机”的!

版本号的第一个字母,从A开始,然后B、C、D……每个名字都是从当次设计峰会所在城市中选一个地名,作为该版本的名字。例如,第一个版本Austin,就是根据Rackspace公司所在地(也是第一次峰会所在地)——美国德克萨斯州的首府“奥斯丁”确定的。还有第9个版本Icehouse,当时峰会是在香港举办的,用的“雪厂街”这个名字。

漫谈云计算与OpenStack的前世今生

OpenStack的架构

前面说了,OpenStack从一开始,就是为了云计算服务的。简单来说,它就是一个操作系统,一套软件,一套IaaS软件。什么是IaaS?这个前面的云计算介绍过了,这里就不再讲了。

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

漫谈云计算与OpenStack的前世今生

学习OpenStack,最痛苦的事情,莫过于看它的架构。OpenStack拥有众多的组件,通过组件之间协同进行工作,所以看上去架构非常复杂。

我还是用一个简单的图吧,看得更明白些。如下:

漫谈云计算与OpenStack的前世今生

这个图里面的彩色方块,就是OpenStack最核心的组件。

这些组件里,我挑几个再介绍一下:

计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。

身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。

网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。

块存储(Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。

对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。

镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。

UI 界面(Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。

部署编排(Orchestration):Heat。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。

测量(Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。

OpenStack的组件都有自己的功能定位。其实,每个组件都可以算是独立的一个程序(Software)。Open为开放之意,Stack则是堆砌,也就是许多Open的Softwares进行集合和堆砌。

OpenStack的发展

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

漫谈云计算与OpenStack的前世今生

按官网最新数据,现在有180多个国家,677家企业,87426名社区会员通过各种方式支撑着这个项目。项目的代码也已经超过了2000万行。全球一半以上的500强企业,都采用了OpenStack技术。而且,根据调查,有75%以上的企业打算今后使用这项技术。

学习OpenStack

说了这么多,OpenStack这么牛掰,到底该如何学习它呢?它看上去那么复杂,会不会很难学会呢?其实,虽然前面看到的架构很复杂,但是真心要学习OpenStack的话,并没有想象得那么困难。因为OpenStack是开源的项目,所以互联网上相关的学习资料非常丰富。无论是官方文档还是非官方资料,都数不胜数。如何需要更多、更深入的了解,请持续关注启迪云。

漫谈云计算与OpenStack的前世今生

不过,OpenStack入门虽然很容易,但是精通就很难了。需要长时间不断地钻研和积累,还需要进行大量的实践部署,才有可能成为专家。古话说:路漫漫其修远兮,吾将上下而求索。还是得脚踏实地啊!


分享到:


相關文章: