openstack是干嘛的_OpenStack系列之一:认识OpenStack

本人做openstack的项目也有一年多了,在这里想借这个机会整理整理,顺便与大家一起分享一下OpenStack的知识。由于单篇文章篇幅所限,我会尝试做成一系列的多篇文章。这是第一篇,跟大家一起了解一下什么是OpenStack。

OpenStack的历史

时间回到2010年,当时的云计算场景是这样的,亚马逊的AWS稳坐大当家的地位。其他几家IaaS的公司分别是:Cloudstack、Eucalyptus、Nebula(NASA的云平台)和Rackspace Cloud 。

当时NASA已经在云计算领域投入了大量的资金,使用了很多Eucalyptus的代码。他们在该平台上也进行了很多深度开发,但最后还是放弃了该平台。据说是NASA的工程师试图获取更多的Eucalyptus 代码,但是失败了。因为这个平台只是开放部分的源码。最初的问题仅仅是扩展性问题,后来Eucalyptu与NASA的裂痕发展到无法挽回的地步,是因为NASA发现Eucalyptus不愿向该项目提供解决扩展性问题的代码,即便是该项目并未与Eucalyptus Systems Inc(Eucalyptus幕后的实体公司)造成利益冲突。索性NASA的工程师就用Python开发了Nova,在2010年4月开始筹备OpenStack。2010年7月NASA贡献了自己的云计算管理平台Nova代码,并联合了当时第二大云计算厂商Rackspace(贡献了对象存储代码,也就是后来的Swift)发起了OpenStack开源项目。

从此开始便开启了OpenStack的开源进程。当时在OpenStack项目上约定了几个原则:

  1. 项目全部由Python语言开发;

  2. 虚拟机默认使用Kvm;

  3. 项目进行松耦合设计;

  4. 使用GitHub进行代码管理;

  5. 使用Launchpad进行项目管理;

  6.  3个月迭代一个版本(后来改为6个月);

  7.  举办开发峰会

  8. 产业链条设计(更多公司的加入,让开源项目更为蓬勃的发展)

Openstack开源社区

OpenStack是一个开源项目,它与企业内部的研发项目不同,世界上任何一个个人或者企业都可以为它的发展做出贡献,同时也可以无偿享有这个项目的发展成果。也就是说:人人为我,我为人人。

但是一个项目不能以一盘散沙的形式进行,需要有人出来领导整个项目的进展。这个领导者就是“开源社区”。OpenStack开源社区作为OpenStack的领导者也有自己的组织结构。首先,有一个OpenStack基金会,下面设立了董事会、技术委员会、用户委员会。基金会享有话语权,进行目标和发展的引导。

8bd9bac03658c1166e19e76d50978010.png

基金会成员有三种形式:独立个人铂金会员金牌会员

独立个人:顾名思义就是以个人名义加入基金会,并为OpenStack的发展做出贡献的人。

铂金会员:是指对OpenStack做出重要承诺并提供相对多的资金和资源的企业。比如咱们国家的华为公司就是OpenStack的铂金会员,还有华为在电信领域的主要竞争对手,爱立信,也是OpenStack的铂金会员。

金牌会员:与铂金会员类似,也是以公司的形式加入,只不过他们提供的资源和资金相对较少。

大家可以在他们的网站获取最官方最新鲜的OpenStack信息:https://www.openstack.org/

OpenStack的版本

从2010年OpenStack项目成立起,OpenStack开源社区每年都会举办两次峰会,每次峰会都会发布一个新的OpenStack版本。也就是说OpenStack基本是以每年两个版本的速率在不断更新迭代。

OpenStack的版本的名字长的像下面这样:

15a94e25f1679ffae4355781b59115f5.png

看起来很任性,但实际是有规律可循的,名字的首字母是按英文26个字母的顺序排列的,字母越大,表示发布时间越晚,版本越新。截至目前,OpenStack已经更新到了W(Wallaby)版本。

OpenStack是干嘛的

OpenStack是为云计算服务的,更确切地说,它是工作在IaaS这个层面的一套软件。

我们知道,IaaS全称是“基础设施及服务”,目的是为用户灵活的提供各种资源,从而满足客户的需求。所谓的基础设施,主要就是计算,存储和网络三类资源。那为什么需要OpenStack呢?

云计算的思想是将所有的资源“池”化,也即是说,不管你有多少台服务器,多少个硬盘,我先把它们做成池子,然后再灵活地分配给不同的用户。那么具体谁来做池子,做完池子以后怎么分配给用户,这就是OpenStack做的事情。它就好比电脑的操作系统,每个应用占用多少CPU,占用多少内存,由操作系统来分配。OpenStack就是云计算的操作系统。

OpenStack的组件

那么OpenStack是如何实现这些功能的呢?先来看个图:

a183405226a9622005bf2fbfd6000c76.png

图中每一个方块我们称之为OpenStack的一个组件。每个组件可以实现特定的功能。多个组件协同合作就可以实现OpenStack的诸多功能。这就是我上面为什么说OpenStack是一套软件而不是一个软件的原因了。从上面就能看出来OpenStack是一种模块化的架构,关于模块化,我们后面会在OpenStack的架构一文中详细分析。

上图中的组件并不是OpenStack全部的组件,在今年10月份发布的Victoria 版本中有超过40个组件。但这并不是一蹴而就的,而是慢慢发展,逐渐添加进来的。在最初的OpenStack版本Austin中只有Nova和Swift这两个组件。由于篇幅所限这里我们只简单介绍几个关键组件方便大家理解:

Nova:Nova是OpenStack最核心的组件,也是最早版本的OpenStack中就存在的两个组件之一。它之所以核心,是因为他负责OpenStack中所有虚拟机的生命周期管理。所谓生命周期管理也就是虚拟机的创建,修改,删除。而虚拟机就是OpenStack要提供给各个租户的最终极产品。其他的组件,都是围绕这个任务展开,要么为虚拟机提供资源,要么为虚拟机提供一些高级特性。比如下面要介绍的其他组件。

Neutron:管理OpenStack的网络资源。为虚机提供网络资源。是除Nova以外我们平时用的最多的组件。

Keystone:为所有的OpenStack组件提供认证和访问策略服务。它可以确保只有合适的人可以在自己合适的权限范围之内做合适的操作。为OpenStack的安全性保驾护航。

Horizon:  如果你不会用命令行,那么你Horizon就是你操作OpenStack的工具,它可以为你提供一个图形化界面,让你用可以用点点点的方式来操控一切。

先说这么几个组件吧,接下来我会写一系列文章逐个分析OpenStack的关键组件。

OpenStack的发展

经过十年的努力,如今的OpenStack已经今非昔比。很多企业和个人纷纷加入Openstack开源社区,使之成为了目前仅次于LINUX的全球第二大开源社区。OpenStack的功能也越来越完善,从最初的两个组件发展到了今天的四十多个组件。现在有近两百多个国家,近千家企业,数万名社区会员通过各种方式支撑着这个项目。项目的代码也已经超过了2000万行。

从应用上来说,OpenStack也不仅仅停留在一开始的IT领域,而是已经逐渐蔓延到了电信,金融,电商等许多其他领域。比如电信行业,当前火热的NFVI技术其实就是基于OpenStack来实现的,NFVI通过将传统电信网络核心网的网元全部虚拟化,从而彻底改变了我们的电信网络的部署和运营方式,也大大降低了电信运营商的成本。

好了,废话说了太多了,希望能帮大家先了解一下什么是OpenStack,接下来我们就要上干货了。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值