欢迎来到云栖网

免费注册

开源助力云计算十年:从基础设施,到云原生崛起!

云栖网 2022-09-30 09:37 来源:《新程序员》编辑部作者:王庆

云栖网从 20 世纪 90 年代互联网兴起开始,我们每个人就开始憧憬着计算资源有代价地进行共享。从 HTTP 到 Web 服务,再从网格计算到 P2P 计算,我们距离云技术始终有一步之遥。直到虚拟化技术的兴起,才正式迎来云计算的爆发。

本文回顾了 21 世纪初虚拟化技术发展孕育出云计算基础设施及相应开源项目 OpenStack。同时围绕云计算各条路线衍生以及后面萌发出来的云原生技术进行思考和总结。最后,展望未来开源云计算软件趋势和应用场景。

开源助力云计算十年:从基础设施,到云原生崛起!

王庆,Intel 云基础设施软件研发总监, 2015 年至今连续 8 年兼任开源基础设施基金会个人独立董事, Linux 基金会下 SODA 子基金会联盟委员会主席,  另外还兼   任木兰开源社区技术委员会成员和中国计算机学会开   源发展委员会常务委员。

虚拟化孕育出云计算基础设施

1959 年,在国际信息处理大会上,一篇名为《大型高速计算机中的时间共享》的报告首先提出了 " 虚拟化 " 的概念,从此虚拟化发展拉开帷幕。随后,IBM 推出了分时共享系统,它允许多个用户远程共享同一台高性能计算设备的使用时间,这也被认为最原始的虚拟化技术。

1972 年,IBM 发布了用于创建灵活大型主机的虚拟机(Virtual Machine,缩写为 VM)技术,它可以根据用户动态的应用需求来调整和支配资源,使昂贵的大型机资源得到尽可能的充分利用,虚拟化由此进入了大型机时代 IBM System 370 系列就通过一种叫虚拟机监控器(Virtual Machine Monitor,缩写为 VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机实例,从而使虚拟机开始流行起来。

1998 年,VMware 的亮相,开启了虚拟化的 x86 时代,虚拟化发展进入爆发期。2003 年,开源虚拟化管理软件 Xen 面世。2005 年 11 月,Intel 发布了新的 Xeon MP 处理器系统 7000 系列,x86 平台历史上第一个硬件辅助虚拟化技术— VT 技术也随之诞生。此后若干年,AMD、Oracle、RedHat、Novell、Citrix、Cisco、HP 等先后进军虚拟化市场。

虚拟化技术是云计算发展的基石,正是由于虚拟化技术的成熟和普及,为后面云计算的蓬勃发展创造了条件。2006 年 3 月,Amazon 推出弹性计算云 EC2,它根据用户使用的资源进行收费,开启了云计算商业化的元年。此后,Google、IBM、Yahoo、Intel、HP 等各大公司又蜂拥进入云计算领域。2010 年 7 月,美国国家航空航天局 NASA 与 Rackspace、Intel、AMD、Dell 等企业共同宣布 OpenStack 开放源码计划,由此开启了开源基础设施即服务(IaaS)的时代。

开源助力云计算十年:从基础设施,到云原生崛起!

注本文节选自《新程序员 · 005:开源深度指南 & 新金融背后的科技力量》,目前已开启预售,欢迎大家扫描上方二维码订阅!

开源基础设施先行者 OpenStack

在开源基础设施领域,OpenStack 是毋庸置疑的领导者。作为一个 IaaS 范畴的云平台,OpenStack 一方面负责与运行在物理节点上的 VMM 进行交互,实现对各种硬件资源的管理与控制;另一方面为用户提供满足要求的虚拟机。

在 OpenStack 内部,主要涵盖 6 个核心组件,分别是计算(Compute)、对象存储(Object Storage)、认证(Identity)、块存储(Block Storage)、网络(Network)和镜像服务(Image Service)。计算组件根据需求提供虚拟机服务,比如创建虚拟机或对虚拟机做热迁移等;对象存储组件允许存储或检索对象,也可以认为它允许存储或检索文件,它能以低成本的方式通过 RESTful API 管理大量无结构数据;认证组件为所有 OpenStack 服务提供身份验证和授权,跟踪用户以及他们的权限,提供一个可用服务以及 API 的列表;块存储组件,顾名思义,提供块存储服务;网络组件用于提供网络连接服务,允许用户创建自己的虚拟网络并连接各种网络设备接口;镜像服务组件主要提供一个虚拟机镜像的存储、查询和检索服务,通过提供一个虚拟磁盘映像的目录和存储库,为虚拟机提供镜像服务。

OpenStack 有一个紧密团结了众多使用者和开发者的 OpenStack 社区。这个社区共计包含来自 195 个国家和地区超过 10 万个社区会员,有近 700 家企业会员。在这个世界里,社区始终遵循开放源码、开放设计、开放开发和开放社区这四个开放原则。开发人员可以讨论什么样的设计是最优的,运维人员也可以提出使用 OpenStack 的反馈意见和需求建议。

在 OpenStack 社区里,开设各种渠道跟社区其他成员进行讨论,例如邮件列表、IRC 渠道或项目例会、定期举办的峰会和 PTG(Project Teams Gathering),以及各种不定期在各地举办的 Meetup 等等。经过了十二年多的发展,OpenStack 项目相对成立之初已经非常成熟了,现在社区更多是提升系统稳定性,增强现有功能以及迎合如数据处理器(DPU)、算力网络(CFN)等新场景新挑战设计解决方案。

云计算基础设施之网络与存储

基础设施主要围绕三块共享资源展开,即计算、网络与存储。网络与存储作为基础设施的三大重要组成部分之二,在云计算兴起之初,社区里就出现了软件定义网络(SDN)和软件定义存储(SDS)的概念,并涌现了不少业界瞩目的项目。

在网络技术里,SDN 技术早已是业界公认的未来方向。但是怎样统合各个厂商甚至学术界的标准,一直以来是个难题。在 2013 年,一大批传统的 IT 设备厂商联合几家软件公司,发起了 OpenDaylight(ODL)项目。该项目发展至今,已经成为开源 SDN 方案中最有影响力的项目之一。ODL 的每一个版本都是以化学元素周期表中某一元素来命名,充满了学术气息。

不仅如此,在技术上,ODL 项目也有其独到之处。首先,此项目是基于 Java 开发平台的,充分利用了 Java 平台上成熟的动态模块技术(OSGI),以微服务架构为基础,非常灵活高效地集成了各种插件来提供多家厂商设备的支持,以及各种高级网络服务。在北向 API 接口的设计上,ODL 不仅提供了 Restful 的 API,也提供了函数调用方式的 OSGI 接口,以应对不同方式的北向集成方案。在南向 API 接口的设计上,充分考虑了多协议支持和多厂商设备适配的便利。另外,OpenStack 中 Neutron 模块的集成,也一直是 ODL 项目的技术重点之一。

在存储技术里,SDS 存储方案的制定,也是无法绕过的要点。Ceph 项目是开源分布式存储方案的最主流选择,在和 OpenStack 配合部署的场景下更是如此。

Ceph 诞生于学术项目,2014 年在原作者依此创业的公司被 RedHat 收购之后,RedHat 成为 Ceph 项目的最主要贡献者和技术领导者。2015 年后,Ceph 正式开始社区化管理,社区委员会最初吸收了 8 家成员公司。直至 2018 年,Ceph 成立基金会,吸收了 Amihan、Canonical、中国移动、DigitalOcean、Intel、ProphetStor Data ServiCES、OVH、RedHat、SoftIron、SUSE、Western Digital、XSKY 和中兴通讯等公司。它接受 Linux 基金会的管理,并为 Ceph 社区的合作和成长提供一个中立的机构。Ceph 基金会董事会不对 Ceph 的技术治理负责,也没有任何直接控制权。开发和工程活动通过传统的开源流程进行管理,并由 Ceph 技术领导团队监督。

Ceph 项目提供了全方位的分布式存储接口,涵盖了对象存储、块存储和文件系统全部三种云环境使用场景。在 OpenStack 的云环境中,由于分布式块存储方案往往集成 Ceph 的 RDB 技术,所以在选用对象存储方案时,很多用户更倾向于同样适用 Ceph 的对象存储服务。

对于云计算客户生产环境的要求,纯社区版的 Ceph 还在性能上有一定的差距,所有国内外出现了很多基于 Ceph 社区版的商业定制化产品,从性能优化、稳定性、用户界面等方面都有大幅度的提升。

Docker 横空出世,云原生崛起之路

在开源基础设施发展的同时,我们再来看看另一条道路发展变化。2013 年,Docker 项目横空出世,并在此后的发展过程中对计算机业界产生了深远的影响。当然,在 Docker 诞生之前,云计算基础设施主要是围绕着虚拟机展开的,很少有人想着将容器这种技术应用在云计算场景。而且,不论在 Linux 还是 Solaris 亦或 FreeBSD 里,各种容器相关的基础技术已经成熟,但只有 Docker 真正抓住了痛点,进而设计出了直达用户期望的友好使用界面,对于软件开发者更是如此,所以 Docker 的流行首先是发生在 DevOps 领域,之后逐渐波及其他领域。

相比于虚拟化技术,以 Docker 为代表的容器技术在做到应用隔离的同时,也没有带来性能的损失,这是一个很明显的技术优势。所以在注重计算性能的云计算场景,部分用户更倾向于使用容器作为底层基础技术。当然,安全性是容器技术的短板,随后,很多安全隔离增进技术也层出不穷,从不同的角度来弥补可预期的安全隐患。

2014 年,Google 开源了容器编排项目 Kubernetes。Kubernetes 把自己定位为容器云环境的管理软件,从整体系统的设计上充分考虑了容器(主要指 Docker)技术的特点,这也是它和其主要竞争对手 Mesos 的不同点之一。

Kubernetes 在资源的定义上,以容器为基础元素,又引入了 "Pod" 的概念,把运行相同应用的多个容器实例看作一个管理和调度单元,即 Pod。而一个 Pod 需要运行在单个 Minion 之中,Minion 可以理解成一个主机(Host)。在集群中有多个 Minion,被中央控制节点 Master 统一管理。而在 Pod 的基础上,Kubernetes 又抽象出 Service 的概念,是多个 Pod 一起工作提供服务的抽象。

总而言之,Kubernetes 引入非常多的新抽象概念,而其集群管理中所要解决的调度、高可用、在线升级等问题,都是围绕此来进行设计。

2015 年,Google 发布了 Kubernetes1.0,并透露它的应用厂商包括 eBay、Samsung、Box 等知名公司。人们意识到,容器正在改变企业部署和管理应用的方式,但是业界仍处于云原生和微服务应用的初级阶段。7 月,Google 与 Linux 基金会以及行业合作伙伴 Docker、IBM、VMWare、Intel、Cisco、Joyent、CoreOS、Mesosphere、Univa、RedHat 等一起成立了云原生计算基金会(CNCF),一起推动基于容器的云计算发展。

CNCF 目的有两个,一是与开源社区和合作伙伴一起共同把控 Kubernetes 未来的发展,二是开发新的软件以让整个容器工具集更加健壮。Kubernetes 作为了 CNCF 成长的开始,其未来开源的发展由 CNCF 控制,以保证它在任何基础设施(公有云、私有云、裸机)上都能良好运行。CNCF 的技术委员会将会推动开源以及合作伙伴社区共同开发容器工具集。他们还将评估列入基金会的其他项目,以保证整个工具集齐头并进。

云原生的概念,各大厂商理解有所不同,不同社区对它的定义也会有稍许差异。考虑到 CNCF 基金会在云原生领域的地位,我们援引它的定义和理解,即云原生用一个开源软件栈解决如下三个问题:一、怎么把应用程序和服务切分成多个微服务;二、怎么把上述每个部分打包成容器;三、最后,怎么动态地编排这些容器以优化整个系统资源。

CNCF 基金会维护了一张云原生技术全景图,它囊括了大部分有影响力的云原生相关的开源项目。在全景图里,云原生以容器为核心技术,分为运行时和编排两层,运行时负责容器的计算、存储、网络;编排负责容器集群的调度、服务发现和资源管理。往下是基础设施和配置管理。容器可以运行在各种系统上,包括公 有云、私有云、物理机等,同时还依赖于自动化部署工具、容器镜像工具、安全工具等运维系统才能工作。往上是容器平台上的应用层,类似于手机的应用商店,分为数据库和数据分析、流处理、SCM 工具、CI/CD 和应用定义几类,每个公司根据业务需求会有不同的应用体系。

全景图还包含这两块内容:平台和观察分析。平台是指基于容器技术提供的平台级服务,比如常见的 PaaS 服务和 Serverless 服务。观察分析是容器平台的运维,从日志和监控方面给出容器集群当前的运行情况,方便分析和调试。

简单概括,云原生包含容器和微服务两大内容,涵盖 Kubernetes、containerd、CRI-O、Istio、Envoy、Helm、Prometheus 和 etcd 等项目,各大厂都可以自由且开放地围绕云原生项目在社区讨论技术和提交代码。例如 Intel 基于它的硬件芯片,针对计算、存储和网络资源,在 Kubernetes 里不仅加入了 CRI-RM、NFD 和 NPD、CSI 和 CNI 这些资源管理和硬件能力发现的功能,而且还加入了如 GPU、QAT 和 FPGA 等加速器设备的支持。在服务网格里,Intel 也围绕 Istio/Envoy 不断优化网格性能以及增强机密计算安全性。

作为一个开源社区,CNCF 社区也建立了各种如邮件列表和 Slack 渠道,成立了若干不同技术方向的特别兴趣小组(SIG)以及技术指导小组(TAG),以及举办各种项目技术例会,鼓励社区会员公开地透明地讨论技术问题和决定技术方案。而且,CNCF 社区还在北美、欧洲和中国有定期的 KubeCon 和 CloudNativeCon 大会,提供面对面的机会给社区成员以宣传先进技术方案、收集反馈信息以及更深入地交流技术。

未来开源云计算软件趋势

随着云基础设施、网络和存储等技术转移到以容器和微服务为代表的云原生技术,云计算的发展将在如下技术上呈现出新的趋势,同时也带来了新的机遇与挑战。

边缘计算:某种意义上,边缘计算可以认为是云计算的扩展和延伸。时至今日,构建分布式边缘计算基础设施工具和架构仍处于初级阶段,在边缘计算技术发展里,仍有问题亟待解决。譬如,针对边缘计算场景中的复杂网络环境、自动化部署困难等问题,中国厂商在 CNCF 社区发起了 KubeEdge、OpenYurt、SuperEdge 等开源项目,通过边缘自治、云边流量治理、边缘设备管理等功能来实现云边协同。相信未来随着 5G 技术和移动互联技术的普及,各大运营商和云服务提供商将会迅速在社会面普及边缘计算平台。

新型虚拟化和容器融合:随着各种场景需求的出现,虚拟化与容器技术不断融合不断推陈出新。譬如,现在微虚机(MicroVM)的应用比率在逐渐增加,微虚机在运行速度和安全隔离能力上做到鱼和熊掌兼得。虚拟化与容器技术的融合,已经成为未来云计算里重要趋势。OCI 通过标准定义不同技术采用统一的方式管理容器生命周期,在此标准下,我们已经看到有 Kata Containers、 Firecracker、gVisor 以及 Inclavare Containers 等各种容器的运行时形态。

另外,由于 Rust 的性能优点,很多项目都改用 Rust 来重写。在容器运行时里,RunK 采用 Rust 语言实现了一个标准的 OCI 容器运行时,可以直接在宿主机上创建和运行容器。这样,RunK 比普通 RunC 跑得更快,同时占用内存更少。

最后,WebAssembly 作为新一代可移植、轻量化、应用虚拟机,在物联网、边缘计算和区块链等场景里会有广泛的应用前景。WASM/WASI 将会成为一个跨平台容器实现技术,也必将成为不可忽视的一个发展趋势。

机密计算:众所周知,数据在存储态 [ 1 ] 和传输态 [ 2 ] 时都已经有相应的加密机制对其进行有效保护,保障了数据的机密性和完整性,而数据在使用态 [ 3 ] 时的保护正亟需新的技术填补空白。机密计算正是基于硬件的受信任执行环境中执行计算来保护正在使用的数据,它基于建立硬件的可信执行环境(TEE),如 Intel 的 SGX 和 TDX、ARM TrustZone、AMD SEV/SEV-ES/SEV-SNP、RISC-V Keystone 等技术,为数据在云原生环境中的安全使用提供保障。目前在 CNCF 社区中就有 Inclavare Containers 和 Confidential Containers 等开源机密计算项目,它们已成为云原生安全新趋势。

函数即服务(FaaS):Serverless 计算或简称 Serverless 允许用户在不需要考虑服务器的情况下运行应用和服务。它是一种执行模型,其中云服务提供商负责通过动态分配资源来执行一段代码,并且只对用于运行代码的资源量收费。代码通常在无状态容器中运行,可以由各种事件触发,包括 HTTP 请求、数据库事件、队列服务、监控警报、文件上传、计划事件等。发送到云端被执行的代码通常是以函数的形式。因此,Serverless 有时也被称为 FaaS。未来我们认为 FaaS 会越来越流行,尤其在人工智能、自动驾驶等领域,FaaS 无疑更适合这些场景使用。除了代码运行成本和可伸缩能力具备优越性外,FaaS 可以让开发人员更关注业务逻辑,而无需关心底层资源,提高了编程效率。

数据处理器(DPU):自 2015 年起,中央处理器 CPU 频率趋于稳定,数据中心提升算力的边际成本显著提高。然而,应用的激增使得当代数据中心中的网络流量急剧增长。为了适应这种巨大的流量增长,数据中心网络向高带宽和新型传输体系发展,数据中心算力提升遭遇瓶颈,难以匹配快速增长的网络传输速率,激发了 DPU 需求。另一方面,DPU 的出现也可以降低 CPU 负荷,让 CPU 更有效地处理业务数据。DPU 必将成为数据中心和云计算基础设施里的一支新生技术趋势。

结语

雄关漫道真如铁,而今迈步从头越。云计算经过了十多年的迅速发展,目前在各行各业都得到了广泛的普及,云计算成为了支撑大数据、物联网、元宇宙和人工智能等各领域的基础平台,也是真正意义上全面落地的热点技术之一。未来,随着新技术、新场景和新需求的涌现,云计算市场上不会只有一种声音,也不会有放之四海而皆准的一种方案。云必定会以多种路线形态、多种解决方案、多种衍生技术等方式支撑这些新业务,充分体现 " 百花齐放,百家争鸣 " 的态势。

[ 1 ] 存储态:数据静止地存在存储设备上的状态;

[ 2 ] 传输态:数据在网络中或者一台主机不同组件间传输的状态;

[ 3 ] 使用态:数据在被此时正在运行的应用调用的状态,例如此时数据被装载到内存里进行运算。

《新程序员 · 005:开源深度指南 & 新金融背后的科技力量》特别策划了 " 开源深度指南 " 和 " 新金融背后的科技力量 " 两大专题。邀请到当今开源世界的先锋人物,包括 Python 之父 Guido van Rossum,MySQL 之父 Michael "Monty" Widenius,Apache 之父、OpenSSF 开源安全基金会总经理 Brian Behlendorf,MongoDB CTO Mark Porter、凝思董事长宫敏、Linux 内核守护者吴峰光等,更有国内外开源基金会、知名企业代表,从开源安全合规、企业内部开源、开源技术创新、开源行业落地等多方面,为开源背后的开发者、企业、开源组织及开源社区提供更清晰的开源生态建设与升级版开源发展全景式图鉴。