当前位置:首页 期刊杂志

云智能时代,开源软件的演进历程

时间:2024-05-20

耿航航

近年来,国内众多IT厂商在积极拥抱开源,中国已然成为OpenStack、Ceph、Kubernetes等开源技术大放光彩的乐土。

云计算,一次伟大的计算机科技革新。回首云计算发展,已然走过十余年,从当初AWS高举云计算口号,到家喻户晓、如火如荼。目前来看,云计算正向云智能时代迈进:一方面,2018年开始各大云厂商纷纷改名为“云智能”;另一方面,政策发布、产业引导,标志着云计算、大数据、人工智能等新兴技术将会加速与产业的融合。

再回首开源,二十余年时光荏苒,风雨兼程,从当初的极少数逐渐变为了大多数。最典型的例子就是微软公司,从开源的死对头到现在极力地拥抱开源;Red Hat、SUSE等公司也因开源实现了企业价值。开源软件发展至今已经深入人心,开源不只是表面流行的一个理念,它给全球的互联网以及各个行业增加了强大软件动力,改变了软件技术与产业的发展方向。近年来,国内众多IT厂商在积极拥抱开源,中国已然成为OpenStack、Ceph、Kubernetes等开源技术大放光彩的乐土。

本文试图从一个开源技术实践者的视角来回顾云计算的发展演进。因篇幅有限,所讨论的范畴以IaaS与PaaS的开源技术演进为主。

如图1所示,笔者认为云计算时代以来,主要分为启蒙、快速发展及云+智能时代三个阶段。每个阶段都孕育了众多云相关的开源项目和软件,并因云计算的发展而得到长足的发展。以下试分阶段阐述:

2010-2014年

云计算启蒙期:云计算1.0

首先说下云计算的开始,大家一般都是以业界标杆AWS为主的,而国内云计算的开始较晚于国外,我国云计算业界标杆阿里云从2008年开始筹办和起步,也就是说我国从2008年开始,云计算的时代大幕才逐步拉开。

在云计算启蒙期,大家的需求以创建虚拟机为主,当时大家普遍认为提云计算很虚,甚至还会出现一些“骗子”。在当时盛行的是虚拟化,开源代表则是Xen、KVM。提到虚拟化就绕不开一些关键时髦的名词,比如半虚拟化、全虚拟化、GPU虚拟化等。

虚拟化的出现解决了物理机使用效率低、成本高等缺点,但也带来了新的挑战:虚拟化管理。如何合理地进行虚拟化的监控和扩容、高效利用虚拟化等,为了解决这些问题,推出了新的技术体系—云计算。

这里为什么要提虚拟化呢?因为很长一段时间内,大家对虚拟化和云计算的概念总是混淆不清,而虚拟化与云计算的最大区别在于云计算更加注重用户需求、按需索取、弹性扩展,同时也改变了用户的服务交付方式,企业无需购买软硬件、建设机房等,只需根据需求付费购买服务即可。

与此同时,开源界也出现了演进,以Eucalyptus、CloudStack为代表的开源云系统横空出世,拉近了中国与世界云计算发展的距离。其中Eucalyptus以可最佳兼容AWS而一时间大火,很多国内公司早期都是基于Eucalyptus来进行构建,同时CloudStack良好的社区生态在2013年也名噪一时,国内一些公司也是基于CloudStack来构建。两者都是轻量级、易用的优秀开源云计算软件,究其没落原因还是在于生态运营,笔者有幸参与了基于两款开源软件的共享云建设。此时还有一款开源云系统OpenStack在默默发力,也在国内布道推广,至于为什么后来成为了业界标准,请继续往下看。

2014-2018年

云计算快速发展期:云计算2.0

云计算2.0时代用户需求则以实现云资源调度、弹性扩展为主。云计算可以理解为有个资源池,理论上池子里有无穷无尽的各种计算、存储和网络资源,使用者只需告诉云平台想要达到什么样的目的,云平台便会从资源池里按需创建、调度给使用者。云计算按照使用服务的类型可分为IaaS、PaaS、SaaS三层,下面我们来逐步分析。

云计算2.0是一个非常有意思的时期,这段时期可以叫做云计算快速发展期,也可以叫做群雄混战期,各种原因促使了云计算的快速发展,随之而来的就是雨后春笋般大大小小的云计算公司(如运营商、IDC、创业公司等)。前面讲到了,开源软件让中国云计算厂商与世界云计算一流厂商站在了同一起跑线上。

最典型的例子,如建成开源云IaaS标准的OpenStack,在2014年名噪一时,一路突飞猛进,斩杀无数开源云软件,前面提到的Eucalyptus、CloudStack,由于生态、运营等因素均被斩于马下,那会儿觉得不做OpenStack都跟不上时代潮流。同时国内也兴起了一波以OpenStack为基础构建云的提供商以及企业用户,其中不乏有金融、政府、教育、运营商等行业用户。

当然用户的需求是无止境的,很快Docker、LXC便出现在了人们的视野中。以快速构建、快速发布为主的新需求使得容器技术大火,代表性的有建成开源云PaaS标准的Kubernetes。跟此前OpenStack的情景类似,国内也兴起了一波以Kubernetes为基础构建云的提供商以及企业用户,其中不乏金融、政府、教育、运营商等行业用户。笔者认为Docker终究还是个工具,不太適合创业,门槛太低。

分析了开源计算,我们再来谈谈开源存储领域发生过的事情。Ceph在2012年搭上了OpenStack的快速列车,名声大振,一路高歌猛进,在今天已然成为开源分布式存储领域的事实标准。

其统一存储的方式颠覆了以往的使用习惯,但也存在很多问题,比如入门难、运维难、调优难等一系列问题困扰着很多初学者,SDS不是说仅仅把硬件做加法就可以达到很高的性能,还需调整操作系统、网卡等相应参数来达到需求。因为存储的门槛很高,也是个“高危”的领域,所以没有出现很多基于Ceph的创业型公司。

2018年+

云+智能时代

目前,大家都在谈数字化转型,似乎这是一个不谈就会落伍的概念,数字化转型时代的热词包括上云、混合云、工业互联网、两化融合、边缘计算、智能制造等。

笔者认为未来需求场景将会以数据智能、技术产业场景协同为主。从去年下半年开始,阿里云、百度云纷纷更名为阿里云智能、百度智能云,其目的是让云更加适应数字化转型时代行业场景的协同,更加注重云与产业场景的结合落地。

随之而来的是几大趋势:创新(AI、GPU、Edge等)、垂直(视频云、工业云等)、混合(CMP、MSP)、生态(技术、开发者)等。

两化融合、工业物联网、智能制造、企业上云等政策的发布,将会促进云计算与产业场景的结合。

笔者预测:

1.未来云计算将会下沉至行业,真正实现云与产业的相结合,从而加速云、边、端协同,打通云计算落地的“最后一公里”,目前云计算巨头在这方面均已有进展,如阿里云LinkEdge、AWS IoT Greengrass、Azure IOT Edge、华为IEF等。

2.未来云计算形态将会呈现出公有云、私有云、混合云形态,无论是出于风险决策也好,还是企业内部原因也好,都会催生出很多新需求,比如“MSP+CMP”的出现,因为随着云的日益高度复杂化和差异化,企业会愈发需要面向云端各个层面的解读、判断与帮助,除了原厂支持团队的助力之外,独立的云计算咨询与托管服务会成为新的需求热点。

跟前面说到的一样,国内也出现了一些以MSP为主的创业公司(新钛云服、ChinaMSP等),笔者觉得任重而道远,毕竟这个以咨询为主,要求还是很高的,行业壁垒也很高。

3.未来技术场景将会以云为基,无论是人工智能还是边缘计算。

4.发展至今,云计算市场已然成为持久战,所谓得用户者得天下,所以未来一定是生态制胜。

一方面是产品生态,不可能一家独大,所以各方势力都在打造产业生态。另一方面就是刚才说到的用户—开发者生态,笔者认为开发者生态在一定程度上属于开源战略的一种体现,利用企业自身的技术输出来增加用户的黏度,毕竟最终使用产品的是技术开发者。近年来国内很多企业都开始了开发者生态战略,如腾讯云TVP、阿里云MVP、华为云MVP等纷纷推出了自己的MVP最具价值专家,以及相应的开发者技术活动等。

云智能大势  着眼未来布局技术

开源领域的技术演进是与时俱进的,下面我们来讲述下云智能时代,开源云从业者该如何布局未来技术。前面笔者从开源技术实践者的视角回顾云计算的发展演进历程,也大胆做出了未来云计算发展的预测,其中描绘了被5G加持的边缘计算将会得到快速发展的场景。

什么是边缘计算?边缘计算作为一个新兴概念,不同的参与方均有不同的定义。根据欧洲电信标准协会(ETSI)的定义,多接入边缘是指在靠近人、物或数据源头的网络边缘侧,通过融合网络、计算、存储、应用等核心能力的开放平台,就近提供边缘智能服务,满足行业数字化的需求。

除此之外,ARM以及ECC等企业/机构也给出了边缘计算的解释,基本上是一致的。通俗来讲边缘计算就是更靠近用户侧和业务端的计算方式。

而边缘计算作为新兴的技术系统,在智慧城市、智慧家居、智慧医院、在线直播到智能泊车、自动驾驶、无人机、智能制造、虚拟现实以及增强现实等场景下,都得到了广泛应用。那么为什么边缘计算会在诞生以后快速发展,迅速占据市场呢?首先,它具备一系列特点:

1.提升数据处理效率

边缘计算距离用户更近,可以在边缘节点处就实现对数据的过滤和分析,不需要等待数据传输。由于靠近数据接收源头,所以能够实时地获取数据并进行分析处理,更好地支撑本地业务的实时智能化处理与执行。

2.增强数据安全性

边缘计算在接收到数据之后,可以对数据加密再进行传输,提升了数据的安全性。

3.缓解云端压力

边缘计算在进行云端传输时通过边缘节点进行一部分简单数据处理,当面对大量数据时,可以采用一定的压缩算法,提取到有用信息之后再进行传输,能够大量减少数据带宽的消耗。

其次,它解决了一系列问题:

1.空间有限

边缘站点的资源往往是有限的,这是因为空间或电源的限制导致不能随意往站点里面添加更多的资源。

2.环境复杂

边缘站点由于靠近用户侧,一般是处于远端并且可能无法被操纵,因此边缘站点必须能够被远程管理,远程管理工具必须能够支持通过不可靠网络来访问边缘站点。

3.需标准化

采用边缘计算技术的设备由于会广泛分布在各数据节点,可能会出现不同的处理算法,需要标准来规范输出的数据格式,否则不利于云端数据再处理。

最后,我们来看看边缘计算的内涵、边缘计算与云计算的关系以及边缘计算在开源领域的发展,了解如何把握云智能大势,提前布局开源边缘计算相关的技术体系,赢得市场先机。

《State of the Edge 2018》中定义了两种边缘,分为运营商视角的“Infrastructure Edge”和最终用户视角的“Device Edge”。Device Edge(设备边缘)是指网络终端或设备侧的边缘计算资源,例如智能信号灯、环境传感器、智能汽车等,通常他们没什么计算能力,被用于解决最后“一公里”接入的问题。一个典型的例子就是智能路由器,一端通过红外信号控制家中电器,另一端通過网络和云数据中心相连。由于设备边缘网络稳定性较差,因此必须考虑它们会较长时间离线的情况(例如火车过隧道)。

相较于Device Edge,Infrastructure Edge(基础设施边缘)的计算和存储能力都更强,其主要构建的模块是边缘数据中心,通常通过骨干网与数据中心连接,因此具有更大的网络带宽和更加可靠的网络连接,例如CDN、游戏服务器等。基础设施边缘除了能运行容器外,有些甚至还有足够资源运行完整的 Kubernetes。

对边缘节点进行分类的意义在于,不同层级的边缘需要有针对性的部署模型,并且平台要为边缘节点提供通信能力。由于应用场景不同、需求的不同,导致处理方式以及计算资源分布也有所不同。

综上所述,两者虽然同属于边缘计算范畴,但两者的定义、关注点、核心能力方面差异还是很大的,两者都可以理解为云端能力的一种补充,甚至是扩展。

云计算与边缘计算的关系-云边协同 未来趋势

需要说明一点,边缘计算是无法单独存在的,它必须和远端数据中心或云端打通。以IoT为例,边缘设备除了通过传感器收集周边环境的数据外,还要从云端接收控制指令。边缘设备与云连接一般有两种模式:直接连接和通过中继边缘节点连接。

前面提到过,在未来云计算将会下沉至行业,真正实现云与产业的结合,从而加速云、边、端协同打通云计算落地的“最后一公里”。目前,云计算巨头在这方面均已有进展,如阿里云LinkEdge、AWS IoT Greengrass、Azure IOT Edge、华为IEF等。

边缘计算和云计算不是两种互斥的技术,它们是相辅相成的关系。通俗地讲,可以把云计算看做是中心计算,把边缘计算看做是云计算的一种补充。

适应场景如下:

车联网。目前中国联通已经在重庆开启了V2X现网试点,实现的应用验证包括基于关联模型的交通信息推送应用、基于MEC边缘云平台的车辆队列行驶应用开发、智能交通调度以及大数据分析。

智慧酒店。通过Edge系统实现智能设备/系统的管理、调度、应用,以边缘智能为核心,组成一体化的智能酒店系统。

AI云上训练,边缘执行。即充分发挥云计算海量资源的优势,将AI模型的训练放在云端,而AI的执行则贴近设备侧。

加速边缘软件开发周期。将微服务、DevOps等引入边缘将会显著加速嵌入式设备、机器人等IoT软件的迭代周期,提升部署和运维效率。

数据备份转储。例如,海量的工业数据(加密后)存储在云端。

看产业发展  布局未来开源技术储备

分析了产业发展以及一些概念之后,我们聊聊开源软件是如何适应产业发展的。首先是以OpenStack基金会为主的边缘云计算&工业物联网—StarlingX。很多人可以通过网络获取关于StarlingX的资料,但往往很难看懂,接下来对其进行全面分析。

需要澄清一点,StarlingX源于OpenStack但不同于OpenStack,为什么这么说,前面说到了边缘计算场景的现状,比如环境复杂、运维人力少、升级周期长、网络差等。所以针对边缘计算所需的场景特点,Starling X在平台告警和HA、硬件管理、服务升级等方面做了强化,同时边缘侧也有一些特殊需求,比如对异构硬件的统一管理、统一告警和日志服务、中心和边缘云服务同步、中心-边缘云协同等。

目前部署方式支持单节点、双节点或者标准化部署模式。

据了解,Starling X容器化部署工作一直在进行中,未来将全面支持容器化部署(Kubernetes Helm)。一个典型案例是中国联通边缘云平台,感兴趣的可以看看白皮书边缘计算案例研究。

前面提到过,Kubernetes已经成为云原生的标准,KubeEdge是首个基于Kubernetes扩展的,提供云边协同能力的开放式智能边缘平台,也是CNCF在智能边缘领域的首个正式项目。

KubeEdge主要解决了云边协同、资源异构、大规模、轻量化、一致的设备管理和接入体验等问题。通过图4,我们可以看到Kubernetes maser运行在云端,用户可以直接通过kubectl命令行在云端管理边缘节点、设备和应用,不过需要注意的是使用習惯与Kubernetes原生的完全一致,所以无需重新适应。

无论是开源、云计算还是产业发展,它们总是相互融合的。限于篇幅,本文仅对云计算发展过程中的开源与产业演进历程做了简单描述,意在为开源云从业者道明开源与产业的发展方向以及技术布局,希望能为大家带来帮助,文章无法覆盖更多的开源话题,还请读者见谅。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!