深入浅出数据中心里的OpenStack
OpenStack已不用作过多介绍,很多做数据中心技术的人都听过、玩过甚至用过。这是一个旨在为公共及私有云的建设与管理提供软件的开源项目,任何公司或个人都可以使用OpenStack搭建自己的云计算环境,OpenStack让人首先想到的就是Linux,同样是开源,同样是免费,同样拥有自己的开源社区,只不过两者应用的领域不同而已。“免费”两个字在任何时候都有吸引力,更何况是一种高精尖的技术对外开放,所以OpenStack自诞生之日起就在迅速增长,产生了巨大的影响力。OpenStack持续这样火热的原因与Linux一样有两个方面:一是开源,任何人都可以参与,完善OpenStack技术;二是企业和组织参与度高,有超过130家企业加入进来,其中不乏一些IT巨头企业,这些巨头企业的参与推动了OpenStack的高速成长。数据中心也成为了OpenStack唯一的落地点,由OpenStack实现的各种云产品最终都要在数据中心上运行,并跑起来,OpenStack也是实现云数据中心的软件精髓,本文就来深入浅出地谈一谈它。
OpenStack的发展得益于云计算的普及。五年前,云计算是众多IT厂商力推的新技术。一时间,各种各样的云层出不穷,开源云平台OpenStack借机作为云计算的Linux,迅速成为实现云计算的首选技术,很快成为了互联网公司、传统企业首选的开源云平台。传统数据中心由于云计算技术的高速发展,正面临新一轮变革和升级,使用开源云平台OpenStack是构建云计算数据中心最重要的一个选择。OpenStack得到广泛的应用和认可,来源于其自己的多个优点。首先,OpenStack具有天然的开放性,开源意味着不会被某个特定的厂商绑定和限制,而且模块化的设计能把遗留的和第三方的技术进行集成。想想杀毒软件360,就是靠免费开放起家的,这种模式的技术会得到最快速的成熟和普及,极具市场杀伤力,最容易得到绝大多数厂商的认可。OpenStack的开放性与数据中心原有的封闭性形成鲜明对比,引入OpenStack意味着要对数据中心进行变革,改变了现有数据中心的运营模式,让数据中心更加开放;其次,OpenStack灵活性高,不同用户可以根据自己的需要建立基础设施,也可以轻松地为自己的集群增加规模。OpenStack的代码将在极为宽松自由的Apache 2许可下发布,这意味着任何第三方都可以重新发布这些代码,在其基础上开发私有软件并按照新的许可发布,给众多的云计算企业留下了更大发展空间;第三,OpenStack内部模块之间松耦合,添加独立功能模块非常简单,模块配置也灵活,可以全部安装在一台物理机上,也可以分散到多个物理机上,甚至可以把所有结点都装在虚拟机中;最后,OpenStack很容易做二次开发,OpenStack发布的应用API都是统一的规范,便于其他厂商做二次开发,所以当OpenStack出现后,各种云计算厂商如雨后春笋般出现了,这些厂商不仅参与到OpenStack的发展和完善中来,还基于OpenStack做了很多二次开发,输出引用于不同场合的云产品。
正是OpenStack拥有这么多的优点,才迅速得到了广泛地应用。OpenStack的云操作系统,已被全球正在运营的大型公有云和私有云使用。即使这样,实质上OpenStack也存在不少自身问题。比如,OpenStack是开源和免费的,同样也带来了安全的问题,开源系统具有的漏洞将在所有的云系统中都存在,这样给云应用带来极大的安全隐患,云系统将和Linux/Windows这些操作系统一样具有潜在的安全风险。OpenStack也不是一个组件,其中包含了十多个组件,这些组件的成熟度各不相同。有些组件技术发展得比较好,而有些组件还处于理论讨论状态,离代码输出还有很长时间,这样大大限制了OpenStack的大规模普及应用,只有少数一些互联网巨头才有能力基于这样的OpenStack做二次开发,推出自己的云产品,这些巨头企业不仅要基于OpenStack做二次应用开发,还要不断找出OpenStack的缺陷 BUG,以便更好地为自己的应用业务服务。OpenStack开放源代码过早了,OpenStack还太年轻,到现在还不满五周岁,而且天生就不稳定,只有在最理想的场景下才能高效运行。这种通过建立一个包罗广泛的社区来不断完善技术的方式严重损害了技术的质量,而且这种开放社区缺乏管理,没人对项目质量进行监督和保障,也没人确保用户体验,所以这样的OpenStack开源技术几乎无法实际应用,需要做大量的修正工作,这直接导致OpenStack的实施和维护成本很高。Linux也是开源的系统,也有开源社区,不过Linux在成为开源代码之前基本有了几乎完好的版本,后来的开源只是进行部分的优化和修正,即便这样Linux直接拿来也无法立即用到实际的商业产品中,还是需要做一些底层的适配和内核修改工作。OpenStack做过的年头就更短了,自身的技术不成熟在一定程度上也限制其应用的普及。还有很多OpenStack的参与巨头厂商,主要关注的是与自己产品的兼容,这样OpenStack逐渐就可能变成了倾向于某个厂商的技术,正是由于OpenStack仍处于不断变化和发展之中,才会遇到这一系列的问题。
不可否认,OpenStack已经成为当下最为主流的云操作系统技术,虽然OpenStack技术仍有许多需要完善的地方,但并不阻碍云数据中心的使用。作为数据中心的技术人员,掌握OpenStack一些基本概念和使用技能非常必要,这就好比我们使用PC时,并不用关心PC操作系统的底层实现,但是操作系统基本的CPU/Memory/组件等信息还是要会查看的,对于OpenStack也一样。在云计算的时代,一切云的实现是在OpenStack的云操作系统之上实现的,掌握OpenStack技术是未来云数据中心技术人员的一项基本技能,只有深入浅出地掌握OpenStack技术要领,才能在未来的数据中心运行中把握方向,避免走入歧途。
欢迎加入本站公开兴趣群
软件开发技术群
兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流
QQ群:26931708
Hadoop源代码研究群
兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop
QQ群:288410967