回首云计算的发展,已经走过十余年,从AWS高举云计算口号,到现在云算正向智代迈进,从阿里云为起步到现在的百度云,华为云等的兴起,各大厂开始进入“云智能”时代。
再回首开源,从当初的极少数变成大多数,微软公司就是及其鲜明的例子,从开源的死对头到开源的拥抱者,Red Hat、SUSE等公司也因开源实现了企业价值。它给全球的互联网以及各个行业增加了强大软件动力,改变了软件技术与产业的发展方向。近年来,国内众多IT厂商在积极拥抱开源,中国已然成为OpenStack、Ceph、Kubernetes等开源技术的乐园。
1.1云计算启蒙期:云计算1.0
云计算的开始,大家一般都是以业界标杆AWS为主的,而国内云计算的开始较晚于国外,我国云计算业界标杆阿里云从2008年开始筹办和起步,当年中国第一个获得自主知识产权的基础架构云(IaaS)产品 BingoCloudOS(品高云)发行 1.0 版,也就是说我国从2008年开始,云计算的时代大幕才逐步拉开。
在云计算启蒙时期,大家的需求以创建虚拟机为主,当时大家普遍对云计算的认知不高,对“云”心存疑虑。在当时。在当时盛行的是虚拟化,开源代表则是Xen、KVM。提到虚拟化我们知道虚拟化的出现解决了物理机使用效率低、成本高等缺点,但也带来了新的挑战:虚拟化管理。如何合理地进行虚拟化的监控和扩容、高效利用虚拟化等,为了解决这些问题,推出了新的技术体系—云计算。
与此同时,开源界也发生了改变,以Eucalyptus、CloudStack为代表的开源云系统陆续出现,拉近了中国与世界云计算发展的距离。其中Eucalyptus以可最佳兼容AWS而一时间大火,很多国内公司早期都是基于Eucalyptus来进行构建,同时CloudStack良好的社区生态在2013年也名噪一时,国内一些公司也是基于CloudStack来构建。这两者都是轻量级的优秀开源云计算软件,但由于生态运营,最终没落[1]。
1.2云计算快速发展期:云计算2.0
云计算2.0时期是云计算快速发展期,各种原因促使云计算的快速发展,随后大大小小的云计算公司开始出现。云计算按照使用服务的类型可分为IaaS、PaaS、SaaS三层,接下来我们将进行逐步分解。
建成开源云IaaS标准的OpenStack,在2014年名噪一时,一路突飞猛进,斩杀无数开源云软件,前面提到的Eucalyptus、CloudStack,由于生态、运营等因素均落寞了,同时国内也兴起了一波以OpenStack为基础构建云的提供商以及企业用户,其中不乏有金融、政府、教育、运营商等行业用户[2]。
紧随其后,Docker、LXC便出现在了人们的视野中。以快速构建、快速发布为主的新需求使得容器技术大火,代表性的有建成开源云PaaS标准的Kubernetes。跟此前OpenStack的情景类似,国内也兴起了一波以Kubernetes为基础构建云的提供商以及企业用户。
开源计算一路引吭高歌,开源存储也得意于开源计算的发展突飞猛进。Ceph在2012年使用OpenStack,快速发展,在今天已然成为开源分布式存储领域的事实标准。其统一存储的方式颠覆了以往的使用习惯,但也存在很多问题,比如入门难、运维难、调优难等一系列问题困扰着很多初学者,S D S不是说仅仅把硬件做加法就可以达到很高的性能,还需调整操作系统、网卡等相应参数来达到需求。因为存储的门槛很高,也是个“高危”的领域,所以没有出现很多基于Ceph的创业型公司[3]。
1.3云+智能时代
目前,大家都在谈数字化转型, 数字化时代的未来需求场景将会以数据智能、技术产业场景协同为主。在国内,阿里云、百度云纷纷更名为阿里云智能、百度智能云,其目的是让云更加适应数字化转型时代行业场景的协同,更加注重云与产业场景的结合落地。随之而来的是几大趋势:创新(AI、GPU、Edge等)、垂直(视频云、工业云等)、混合(CMP、MSP)、生态(技术、开发者)等。
两化融合、工业物联网、智能制造、企业上云等政策的发布,将会促进云计算与产业场景的结合。
云计算是一种新的计算资源使用模式,云服务提供商出租计算资源有3种模式,满足云服务消费者的不同需求,分别是IaaSPaaSSaaS,云服务提供商只负责出租层及以下各层的部署运维和管理,而租户自己负责更上层次的部署和管理,两者负责的“逻辑层”加起来刚好就是一个完整的四层IT系统,如图1所示
图1 云计算的3种服务模式
从用户角度看,这3种服务模型是相互独立的,面向不同类型的用户提供服务从技术角度看,这3种服务模型间又存在一定的联系,因为SaaS可以是基于PaaS部署或者直接部署于IaaS之上,PaaS可以构建于IaaS之上,也可以直接构建在物理资源之上[4]比较典型的IaaS类开源软件有EucalyptusOpenNebulaCloudStack和OpenStack,PaaS类开源软件有Open-ShiftCloudFoundry和Hadoop,SaaS类开源软件有OpenIdZimbraTeamLab和Funambol根据服务模型开源软件的体系结构,下面从平台使用角度对以上开源软件进行对比分析
2.1 IaaS开源软件对比分析
(1)Eucalyptus
Eucalytus[5]是加州大学圣芭芭拉分校计算机科学系RichWolski领导的项目组完成的开源软件项目,该项目开发和应用较早,目前占有最大的市场份额其组件无需修改即可使用,可以运行在没做修改的GNULinux内核上Eucalyptus提供了与Amazon云计算平台EC2和S3接口的兼容性,可以使客户应用方便地从私有云平台迁移到公共云平
(2) OpenStack
OpenStack[6]是美国国家航空航天局(NASA)和Rackspace合作研发的开源云计算平台项目,整合了NASA的NebulaPlatform和Rackspace的CloudFilesPlatform技术OpenStack得到了多个商业公司和开源组织的支持,被认为是未来开源云计算平台最具有潜力的技术,从Ubuntu11.04版本开始,已经把OpenStack作为内置集成的云计算技术
(3) CloudStack
CloudStack[7]起源于2008年成立的VMOps公司,2010年改名为http://Cloud.com,分为社区版本和商业版本2011年7月思杰系统(CitrixSystem)公司收购了http://Cloud.com,把以前维护的商业分支全部合并到了开源分支,并把该软件加入Apache软件基金会,成为了一个完全开源的项目目前全球已经有多个大规模应用实例,如ZyngaGoDaddy等
(4) OpenNebula
OpenNebula[8]起源于2005年IgnacioMLlorente和RubénSMontero创立的一个研究项目,于2008年7月发布了第一个公开版本OpenNebula是一个虚拟化企业数据中心和云基础设施建设和管理的行业开源解决方案,具有开放性模块化和可扩展的架构,目前已成为欧盟云计算项目RESERVOIR中虚拟执行环境管理器VEEM的核心组件
2.2PaaS开源软件对比分析
PaaS服务模型的云计算平台为用户提供开发运行和测试应用的环境,对PaaS开源软件的对比分析将从它们所提供的语言编程框架数据存储和对IaaS平台的适应能力4方面进行下面针对HadoopCloudFoundry和OpenShift这3款典型的PaaS开源软件进行对比分析
(1) 编程语言利用
Hadoop软件构建的云计算平台支持C++和Java编程语言的开发利用CloudFoundry软件构建的云计算平台支持Java和Ruby编程语言的开发利用OpenShift软件构建的云计算平台支持RubyPythonPerlPHP和Java编程语言的开发
(2) 编程框架利用
Hadoop软件构建的云计算平台支持大规模集群上的分布式并行编程框架MapReduce利用CloudFoundry软件构建的云计算平台支持Java的Spring编程框架Ruby语言编写的开源Web应用框架Rails和Groovy语言编写的快速Web应用开发框架Grails利用OpenShift软件构建的云计算平台支持JavaEE框架Rails框架和用PHP编程语言开发的Web框架SYmfony等多种框架
(3)数据存储利用Hadoop软件构建的云计算平台提供存储海量数据的分布式文件系统HDFS,该文件系统具有对数据读写的高吞吐率,有良好的兼容性利用CloudFoundry软件构建的云计算平台支持关系型数据库Mysql,同时也支持非关系型数据库MongoDB和Redis利用OpenShift构建的云计算平台支持关系型数据库Mysql和SQLite,以及非关系型数据库MongoDBMembase和Memcache
(3) 对IaaS平台的适应能力
PaaS平台可以直接部署在IaaS平台之上,而IaaS层面的工作节点可以动态伸缩,但每一次伸缩都会带来PaaS平台的又一次调整OpenShift使用了RedHat’s的DeltacloudAPI(一套统一的IaaS管理接口),因此,用OpenShift部署的云计算平台是唯一能随着IaaS工作节点的变化而动态伸缩的PaaS平台[9]
2.3SaaS开源软件对比分析
对建设者而言,使用SaaS类的平台软件主要关心这些软件所提供的具体应用因此针对SaaS开源软件的对比分析主要从应用的角度进行,下面对ZimbraOpenIdTeamLab和Funambol这4款典型的SaaS开源软件的功能进行分析[10]
(1)Zimbra是VMware开发的一款SaaS开源软件,主要用于邮件管理,利用Zimbra构建的云计算平台可以将用户的多个邮箱集中起来,同时它支持日历通讯录和Web文档管理
(2)OpenId是开源社区推出的一款SaaS开源软件,主要用于身份认证,目前很多大型企业都利用它来构建云计算平台,如GoogleFacebook和Yahoo!等都用OpenId对它们的用户登录进行认证
(3)TeamLab是一款用于商业协作和项目管理的SaaS开源软件,利用它构建的云计算平台的主要功能包括项目管理和任务图表处理等
(4)Funambol是业界领先的移动消息(Mobile2.0Messaging)提供者,该项目是开源的利用Funambol构建的云计算平台可在移动设备上与存储端同步数据,包含邮件日历行程视频及文件等,同时该平台支持对移动数据的备份和管理
基础的共享技术的开源, 有利于开放和共享成本, 开源技术给第三方合作提供多样性、个性化的业务, 同时吸引包括开发者、用户、系统集成商、技术提供方等多方构建生态[11]。作为一种一切皆服务的全新IT提供模式,开源已经与云计算愈发密不可分。开源不仅有助于打破技术垄断,同时也为企业提供了一个共同制定事实标准的平等机会。在与云计算相关的虚拟化、容器、微服务、分布式存储、自动化运维等方面,开源已经在同领域内形成技术主流,并深刻影响着云计算的发展方向。
近几年来,在开源技术的支持和推动下,云原生的理念不断丰富和落地,并迅速从以容器技术、容器编排技术为核心的生态,扩展至涵盖微服务、自动化运维、服务监测分析等领域。在十年的发展历程中,OpenStack已经与诸如电信、电力、石油、金融等行业紧密结合,占据了较大的市场份额。随着底层资源池化和上层应用微服务的交叉演进,OpenStack和Kubernets 等容器技术的整合,混合模式成为业界IaaS和PaaS搭配的组合之一。事实上,各个研究者也都认识到OpenStack的未来在于深耕行业,因为只有在行业云上,OpenStack才有不可比拟的优势,比如多租户、裸机管理、数据库服务、计量和计费、定制化等方面。
开源软件开发与商业软件开发的差别,使得开源开发活动的组织,管理和协同一直是热点议题,软件产业和开源社区普遍关注的问题有:在商业和开源2种开发方式进行融合的环境中,如何建立一个健康的开源软件生态系统?在开源项目贡献者遍布全球的情况下,如何有效的进行项目管理?特别地,是否可以度量开源软件生态系统的健康状态,从定量的角度提供决策支持?[12]研究者从生态系统的角度探讨并逐步形成软件生态系统理论体系。例如,Koch和Kerschbaum调研了在智能手机领域自由软件开发者选择参与到生态系统中的动机[13] ;Dittrich基于4个典型的软件生态系统探讨了软件生态系统的出现对管理和维护软件产品的传统观点带来的挑战[14] ;Jansen提出了一个可以帮助决策者判断是否加入一个软件生态系统的概念,叫做软件生态系统健康,并且分析了多个软件生态系统对这一概念进行发展和完善[15] 。
几乎所有开源软件公司都面临着巨大的商业化压力。尤其是在用户对于开源软件或服务使用需求越来越旺盛的趋势下,商业化效率最高的模式必然会成为用户的理想选择。在IT基础设施全面云化的浪潮下,以OpenStack为代表的开源云,和以AWS、微软和阿里云代表的自研云一直存在对峙关系,前者更多是硬件出身的云厂商,后者更多是软件为主的云厂商。自研云对于硬件云的质疑是,传统硬件模式架构下,如果用户需要更高的计算能力或者存储空间,务必会选用纵向扩充,更多的节点代表着更多的硬件,而硬件厂商就可以借此以硬件产品升级为由来增加利润,软件厂商则更希望以横向扩展模式,最大化单节点的能效来完成收益。如虚拟机对物理机的替代,OpenStack在很长一段时间内仍将保持旺盛的生命力,考虑到国内私有云场景的特殊要求,在国内市场OpenStack还有很大的市场盘,自研云与OpenStack开源云的主线竞争将持续。
随着云计算市场的发展壮大, 未来会有越来越多的开源项目生根发芽。开源项目是对国家提倡的信息技术和服务的自主安全可控的支撑, 因此未来无论是国外还是国内, 开源将持续发展[16]。在云计算步入寡头的时代背景下,将会有更多开源云计算企业与那些对社区反馈不足的云服务提供商们进行竞争。而那些拥有强大商业化能力的公司同样会积极寻求收购优质的开源软件公司,因为开源技术已经成为它们技术体系中不可或缺的部分。我们在理清思路的基础上, 可以借鉴已有的经验, 将中国的开源项目推向成功,未来的云计算市场注定将会更加精彩。
参考文献:
[1]浦靖珊. 开源软件的发展历史以及趋势分析[J]. 硅谷, 2014(09):20+50.
[2]邓志龙,曹侃.对开源发展现状及未来的探讨[J].电子世界,2013,(5):1-2.
[3]武倩聿. “相爱相杀”的开源与云计算[N]. 人民邮电,2019-11-28(006)
[4]陈康,郑纬民.云计算:系统实例与研究现状.软件学报,2009, 20(5):1337~1348
[5] Eucalyptus Systems. Eucalyptus cloud computing software. http:// http://www.eucalyptus.com/, 2012
[6]OpenStack. Open source software for building private and public clouds.http://openstack.org/,2012
[7] CloudStack. Open source cloud computing with cloud stack. http:// http://www.cloudstack.org/,2012
[8] OpenNebula. The cloud data center management solution. http:// http://opennebula.org/,2012
[9]VMware’sCloudFoundryand Red Hat’s OpenShift-Compare and Contrast[EB/OL]. http://www.virtualizationpractice.com/vmwares-cloudfoundry-and-red-hats-openshift-compare-and- contrast-10567/,2011
[10]王庆波,金祥,何乐,等.虚拟化与云计算[M].北京:电子工业出 版社,2010
[11]张海涛.站在潮头看开源:趋势已定,未来已来[J].软件和集成电路,2019(06):12-15.
[12]金芝,周明辉,张宇霞.开源软件与开源软件生态:现状与趋势[J].科技导报,2016,34(14):42-48.[13]Koch S,Kerschbaum M.Joining a smartphone ecosystem:Application developers'motivations and decision criteria[J].Information&Software Technology,2014,56(11):1423-1435.
[14]Dittrich Y.Software engineering beyond the project-Sustaining software ecosystems[J].Information&Software Technology,2014,56(11):1436-1456.
[15]Lucassen G,van Rooij K,Jansen S.Ecosystem health of cloud Paas providers[C]//International Conference of Software Business.Berlin Heidelberg:Springer,2013:183-194.
[16]张海涛.站在潮头看开源:趋势已定,未来已来[J].软件和集成电路,2019(06):12-15.
Cloudboxer专业软件开发商,官方网址:http://www.cloudboxer.cn,联系我们:cloudboxer@yeah.net