查看原文
其他

我跟OpenStack 1-8年,从ABC到HI、到KO

CSDN云计算 2018-10-26

图片来源:网络


作者

 张文剑


来源

云技术实践


原创作品,如有转载,请联系公众号授权。

我跟OpenStack从ABC、HI到KO


2010年底,因电信级支撑平台和业务对虚拟化的需要,我在ZTE开始了从嵌入式Linux向云计算的转型。


当时的OpenStack版本还处于A、B、C阶段,与端庄有型的CloudStack,简洁明快的OpenNebula,高端大气的Eucalyptus相比,可以合称IaaS初生年代的四小龙。其中的Eucalyptus在学术圈被高谈阔论,中国移动的大云用上了OpenNebula,CloudStack被Citrix给收了,OpenStack却还在蹒跚学步。转眼八年过去了, 如今的那三位或淡出江湖,或销声匿迹,只有OpenStack独霸高处,至少在开源界是四顾无人敌,所以一时难免心生唏嘘。


由于当年这四个开源IaaS项目的前景未明,难分上下,所以我们都尝试做了编译部署和源码级预研,代码看得最多的是OpenNebula,一是因其简单易懂的轻量级架构,二是因其采用C++实现,对于嵌入式C开发出身的团队比较容易上手,毕竟那些年Python还没火起来。最后集众家之所长,我们从零起步开发了一个电信级的虚拟化管理平台TECS,底层先是采用了Xen,后来才支持了KVM,发布之后就用在了ZTE的GoTa系统、核心网等通信业务场景中。


TECS平台的通用支撑层中就有基于Qpid的AMQP消息队列,利用了OpenNebula的方案,并进一步改造成了支持多线程、多进程、多节点、层次更丰富的通信模式,并利用该机制实现了一个有向无环图的操作事务系统,支持异常事务的多个并行化步骤的集体操作回滚。当然作为支撑层,除了通信,还有Shell、定时器、序列化、数据库、异常处理等通用组件,记得当时光是针对这个支撑层的设计方案文档就写了100多页。


到了2013年,OpenStack相继发布了Havana、IceHouse版本,仿佛暗示着该从入门ABC到了说Hi的时候了。由于电信运营商重视NFV,需要一个开放的虚拟化平台提供支撑,演化出一个更广阔的技术生态链。所以当时的团队只能忍痛放弃了自己打造了三年的虚拟化平台,转向了维护OpenStack的I版本。起初总归是有些心理排斥感,看到OpenStack的什么功能都是自己曾经玩过的,而且它对细节稳定性的要求跟电信级平台没法比。但是随着业务新功能的二次开发,对OpenStack的统一服务网关入口,高度灵活的实现层动态插件化机制,单线程多协程的服务框架,颇具微服务形态的扩展思路,以及Python语言的快速实现叹为观止,感觉它是在用一种高屋建瓴、大开大合的理念,如同玩乐高积木一样把无数既有的开源项目机动性地拼装成一个达到商用级要求的庞大平台,经过两年的研发与维护投入,从中汲取到了丰富的架构设计经验。


再后来,和OpenStack的缘分继续延伸到了如今的云桌面领域。从初创时的Kilo,到2.0版本的Ocata,OpenStack已经把其它的开源IaaS项目给彻底KO了,自身也到了守江山稳社稷的阶段。OpenStack代码中最核心的五大件,keystone、nova、glance、cinder、neutron,已经牢固成型,不同版本之间主要是在实现层进行细节微调,可用性早已不是问题了。很多云平台的实际使用者也已经很少去关注这些代码级变化,更加关注的是自身的应用场景。


相对甘守寂寞的Linux内核圈,作为上层管理平台级开源项目的OpenStack,操作流程性的代码让新人上手的速度很快,又赶上了如日中天的云计算技术高速发展期,很容易让开发者们浮想联翩,集体爆发,所以核心组件刚站稳脚跟,从sahara,heat开始的各种大帐篷项目便层出不穷,整体架构上的技术杠杆伸得有点长了。其实这种统一的基础平台性的东西,不像微信小程序、手机APP那样的互联网应用,它更需要丰富的现实运维经验加上对底层实现机制的精通,匆忙赶制出来的项目,其稳定性与生产环境的可用性值得商榷。当然,这样的形势并不能否认其开源性质的优势,既然是做一个普适性的大平台,就意味着要兼收并蓄,有容乃大。它能让无数的组件、插件、技术点来来往往,应时顺势,甚至自生自灭,但是那个核心的框架一直存在,就像帕特农神庙一样永远矗立着,本身就是很了不起的事。就像波普尔在《开放社会及其敌人》里面说的那样,好的社会是开放的,开放社会就意味着会有形形色色相互矛盾的观念。正是这种相互矛盾,让社会具有多种选择,多种可能,越变越好。相反,封闭的社会,是一元的、单纯的,但因为这种社会失去了矛盾的对峙,失去选择,就会一错到底,走向倒退。


在桌面上谈谈OpenStack


再来说说云桌面和OpenStack的事。OpenStack本身是个管理平台,给用户带来实际价值的是对其场景化的利用,毕竟搭台的不如唱戏的抢眼,云桌面就是在云平台上唱遍大街小巷的一出好戏。电脑桌面这个整日里相看两不厌的应用,无论是庙堂之高,江湖之远,各行各业都离不开,场景化千差万别。距离人那么近的应用,便携性、易用性,安全性、体验感都是绕不过去的话题,在IaaS日渐推广的今天,桌面上云也成了当仁不让的选择。


但是谈IaaS的场合却似乎少提桌面云,因为桌面虚拟化是先于云计算出现的,在OpenStack之前,已经有形形色色的桌面虚拟化管理系统了,直到现在也是只见多不见少,因为自己开发一个几台电脑的管理系统并不是什么复杂的事,所以云桌面的名字里面也带个云字,但是和IaaS常常是花开两朵各表一枝。其实自己开发的小型化虚拟机管理系统在几根螺丝就能拧死了的小场合,小规模的用一下可以,一旦大规模地铺开建设,除了桌面体验,整个管理平台的高可用性、灵活性,热迁移、存储备份、二次开发便捉襟见肘起来,就像自留地种的小菜一样,虽然口味有机些,但是要常规批量供应大客户就紧缺了。


云桌面的管理平台可以只用到OpenStack中的keystone、nova、glance、cinder、neutron这最成熟的五大件,背靠大树好乘凉。而且目前的桌面操作系统还没法跑在容器里,对K8S之类的容器平台也不感冒。我们目前对OpenStack这个平台已经不用投入太多精力去开发,它在桌面虚拟化应用场景的稳定成熟度已经能让维护人员无需整天提心吊胆了。


更进一步考虑,VDI桌面核心内容是虚拟化,完全可以不依赖于平台管理层,比如我们目前的云桌面平台3.0版已经做到能够以虚拟机镜像,容器镜像的形式安装到任意一个现成的IaaS平台、超融合环境中去,成为真正的DaaS,从而让私有云厂家无须重复开发,私有云用户无须重复建设。坚持使用OpenStack云平台来运行我们的桌面系统,就是看中它有一个开放的标准化的接口体系,能够为我们的桌面应用提供更多的管理功能入口,从云平台这一层来讲,我们的云桌面是把OpenStack这个开源项目做到了最恰如其分的场景化利用。


经过八年的磨砺,OpenStack已经从炙手可热、从者如云到了大隐隐于市的阶段。基本功能的日益成熟,渐趋稳定,版本差异化变小,必然会让它淡出视野。凡事成为过往,就会有许多责之深、爱之切的声音不断发出。不如让它踏踏实实做好自己的平台角色,在一个个项目、产品领域发挥台柱的功力,将会是对这么多年积累下来的开源技术价值最好的印证。


作者介绍:

张文剑,南京机敏科技首席架构师,主攻OpenStack VDI,参与编写中国开源云联盟桌面云标准,主持机敏云平台1.0、2.0版本的研发。


OpenStack是一个开源的具有高可用性及扩展性的云计算平台。支持管理大部分主流的hypervisors,如KVM,Xen Server,VMware,Oracle VM,Xen等。 同时OpenStack是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用OpenStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。让IT管理人员使用计算资源像使用电力水利那样,按需随时获得,并对使用量进行付费,完全颠覆了传统数据中心建设和运维模式。通过上面的简单介绍,我们知道OpenStack可以建立私有云、公有云以及混合云,是一个提供IAAS层服务的基础设施云计算管理平台。OpenStack本身是由多个功能组件组成,来共同完成以上功能。由于OpenStack处于社区维护,各个组件功能也在各大企业和社区的支持下不断的完善,新的功能组件也在不断的涌现。

在云计算生态系统中,有两种类型的用户需要使用云计算资源:传统型(Traditional IT applications)和在互联网大潮下逐渐崛起云计算应用型(Cloud-aware applications)。国外广为流传的一个比喻是:在传统服务模式下,可以想象服务器就是IT的宠物(Pets),给他们取名字,精心抚养长大,当他们生病了,你得修复他们;在新形态的应用服务模型中,虚拟机被看做是农场中的公牛(Cattle),名字通常都是编号,当他们生病了,你就杀掉他,用一头新牛代替。VMWare和OpenStack的云计算Vision、功能、特点对比正式这个战争或者说趋势的一个生动写照。未来的应用架构应该像对待农场中的公牛一样:VMware的“保养”、保护虚拟机的各种功能比较云计算型应用模式可能会逐渐变得越来越不那么重要。

OpenStack与VMware,谁是云的王者?欢迎讨论。。。


推荐阅读:

Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码

牛!这三个原因让Python火爆!

百度区块链白皮书全解析:这8大重点你应该知道



01

 微 信 群  


添加小编微信:tangguoyemeng,备注“进群”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


成为群成员,或拉人进群,

还有机会参与红包抽奖,获得免费赠书哦~~


02

 征 稿 


CSDN作为国内专业的云计算服务平台,目前提供云计算、大数据、虚拟化、数据中心、OpenStack、CloudStack、机器学习、智能算法等相关云计算观点、技术、平台、实践、云产业咨询等服务。CSDN 公众号也一直坚持「与千万技术人共成长」的理念,深度解读行业内热门技术与场景应用,致力于让所有开发者保持敏锐的技术嗅觉、对行业趋势与技术获得更广阔的认知。

文章题材

  • 首先你需要关注我们的公众号“CSDN云计算”,这样你会更准确了解我们需要的文章风格;

  • 侧重于云计算领域相关的文章,可以是技术、运维、趋势等方面的务实内容;

  • 原创,要求文章有鲜明观点和看法。

投稿须知

  •  稿费:根据原创性、实用性和时效性等方面进行审核,通过的文章会发布在本微信平台。一经采用,我们将支付作者酬劳。酬劳可能不多,这代表的是一个心意,更多是因为爱好,是有识之士抒发胸怀的一种方式;

  • 字数要求:稿件字数以2K-8K为宜,少于2K或多于8K都会一定程度降低阅读愉悦感;

  • 投稿邮箱:lijy@csdn.net。或者添加微信表明来意,微信号:tangguoyemeng。请备注投稿+姓名+公司职位


如果咱们的合作稳定又愉快,还可以签订合同长期合作哦!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存