一文读懂华为云云原生产品及开源实践
摘要:本文主要从华为云原生产品及开源产品两个层面进行展开,详述华为云在云原生领域的最佳实践。
本文分享自华为云社区《【云驻共创】华为云云原生产品及开源实践》,作者:kaliarch。
一 云原生发展阶段和趋势
回首过去,云计算的快速发展,为众多行业的数字化转型提供了推力,也提升了企业数字化转型的技术革新,将科技创新与商业元素的不断融合,又催生出新的业务形态。对企业而言,互联网激化竞争,面对富有创新的后来者,传统企业必须做出快速应对,以容器为代表的云原生技术正在推动整个商业世界飞速发展,不断地高效地运营,并最终转化到生产效率的提升,通过企业应用的不断迭代创新,赋予企业崭新的增长机遇,通过充分利用云计算的相关能力,释放更多精力专注于业务创新,云原生的兴起更是加快了企业数字化转型的进程。
本文主要从华为云原生产品及开源产品两个层面进行展开,详述华为云在云原生领域的最佳实践。
1.1 第一阶段:服务器
云原生发展阶段和趋势,企业 IT 建设所依赖的基础资源,经历了从服务器到云化资源的发展阶段,正在快速进入云原生阶段。服务器阶段的特点是以硬件设备为中心,业务应用随不同厂商设备、操作系统、虚拟化软件的差异化进行定制设备的安装、调试,应用的部署运维基本靠人力完成,自动化程度低,缺乏统一的设备和应用管理能力。后期随着虚拟化软件的出现,资源的利用率和扩缩容的灵活性方面得到一定提升,但从未从根本上解决基础设施与软件割裂、运维复杂的问题。
1.2 第二阶段:云化
为了解决服务器阶段的问题,在云化阶段,传统模式下分布离散的设备被统一起来实现了各类资源,如计算、存储网络的池化。通过统一的虚拟化软件平台为上层业务软件提供统一的资源管理接口。实现资源管理能力的自动化,屏蔽了一部分的基础设施的差异,使应用通用性增强。但因为虚拟化软件平台差异比较大,尤其是各厂商的一些商业化增强,无法在厂商间进行能力共享应用,还是无法以标准的模式构建应用部署。以资源为中心有一个明显的弊端,就是应用的管理是资源视角。举个例子,在 Kubernetes 管理中心看到的是一个一个的工作负载,只能划分出有状态负载、无状态负载任务等,没有一个应用的视角,因为应用通常包含多个不同类型的工作负载。
1.3 第三阶段:云原生
云原生阶段企业的关注点就以资源为中心转移到以应用为中心,包括应用敏捷交付、快速、弹性、平滑迁移、无损容灾。因此,企业开始考虑如何将基础设施与业务平台融合,为企业应用提供标准的运行监控治理平台,并将业务的通用能力反哺到平台侧。为更好地帮助企业实践应用的自动化应用,云原生基础设施成为了企业数据化转型的首选。
Forrester:国内 300 多个企业认为云原生可帮助企业应对各类调整,企业发展的五大关键阶段,包括需求变化、快速变化、市场不确定性、业务稳定性、创新业务价值,降本增效。其中让企业领导者最担忧的是需求的快速变化,这就要求企业未来的技术架构必须能够满足敏捷交付、快速弹性等这些特性,以适应需求和市场变化。
CNCF 的亚洲企业和云原生基础设施使用率调研结果显示,云原生已在企业内被广泛使用,超过 50% 的企业正在使用云原生基础设施,14%的企业正在计划使用,Gartner预测到 2025 年,超过 90% 的数字化业务将基于云原生基础设施构建。可以预见,云原生在未来仍然有较大的增长空间,云原生基础设施是企业数字化转型的长期首选。
华为云长期跟随云原生的动态,并引领云原生创新,不断实现自我突破。 2012年,华为云推出了擎天架构,简单来说就是数据面和管理面的全栈架构。华为云原生团队发布的容器产品和分布式云产品也是这个架构上的产品。我们知道云包括虚拟化、 IO 处理、链路加密等能力的数据面,也负责虚拟创建,便于协同调度、热迁移、热升级等能力的管控面,二者协同配合,为企业提供极优极简的运营服务。
华为擎天架构包括数据面的软硬协同系统和管理面的智慧云脑两部分。其中数据面从极简数据中心、多样性算力、擎天系列卡、极速引擎、极简虚拟化五个维度进行软硬协同创新实践计算、存储、网络安全的全卸载与加速能力,并全面支持虚拟机、裸机与容器。智慧云脑作为面向云AI、 5G 时代的分布式语音操作系统,依托全域调度能力,实现云边端的协同和治理。
2015 年,华为成为了亚洲唯一的 CNCF 初创成员,并在 2016 年在国内首发第一款 Kubernetes 容器管理平台 CCE 前身是 Cloud Container Engine,也就是云容器引擎。该云服务通过了 Kubernetes 一致性认证,并在交互、安全、管理性能等维度相比于 Kubernetes 有大幅度的提升。
在 2017 年,华为在国内首发裸金属,裸金属容器。裸金属容器的明显优势是高性能,能够让容器直接运行于华为的高性能物理服务器上,不会有任何的虚拟化性能损失,可获得和物理机同等的超优性能。华为云的裸金属容器使用的是独立的容器网络技术,相较于开源,性能能够提升在 20% 以上。
在 2018 年,华为全球首发了 Kubernetes 的 Serverless Container CCI,全称是Cloud Container Instance,用户在使用 CCR 的时候就不需要维护和管理那个集群服务器,可以快速创建云原生支持的 Kubernetes 的容器应用。
在 2019 年,华为捐献了 CNCF 首个基于 Kubernetes 的智能边缘项目Kubedge,并同步发布了商用服务IEF,全称 Intelligent Edge Fabric,用户可以使用一个 Kubernetes 集群,实现云和边的节点的统一管理。
应用云边协同统一调度, 2019 年是华为的高产的一年,这一年也是云原生被大众广泛接受的一年。容器平台批量计算项目 Volcano 发布。
在 2021 年,华为云重磅发布了 CCE Turbo 和分布式云原生,从名字上看, CCE Turbo 是 CC 的加强版,在计算、网络、调度三大方面全面加速。服务器资源和性能双零损耗,帮助提升了音视频服务性能达到40%,让在线课堂零卡顿,打造流畅的用户体验。
在网络加速方面,采用了独创的容器直通网络,让两层网络变成一层,端到端,连通时间缩短一半,有效支撑业务扩容。在调度加速方面,通过感知 AI 大数据、 Web 业务的不同特征以及应用模型、网络拓扑等,实践了业务混合部署、智能调度以及自动化优化任务调度策略,实现了每秒1万容器的大规模并发调度能力,帮助了某客户提升了集群利用率达提升了40%。
华为云在那个云原生领域的开源项目,从 2019 年到 2022 年,华为云先后开源了 5 个开源项目,共同推动云原生技术的共享和发展。
二 华为云云原生产品介绍
2.1 CCE Turbo集群:云原生基础设施全面增强的云容器旗舰产品
CCE Turbe 是面向云原生2.0的新一代容器集群产品,计算、网络、调度全面加速。
在计算方面,基于擎天架构,将存储容器、存储容器网络和容器引擎百分之百应用到擎天卡上,服务器资源利用率可提升20%。
在网络方面,深度整合了华为云 VPC 的弹性网卡和辅助弹性网卡的能力,直接从 VPC 网段内分配容器 IP 地址,容器支持容器直接绑定、安全组,构建了业内领先的深度融合云上虚拟云 VPC 的新一代容器网络方案,实现了虚拟机 trunkport 裸金属 Eni 直通流量,直通容器性能提升40%。
在调度方面,实现了多种类型业务智能混合调度应用拓扑感知、分时复用等缓存加多调度器共享视图速度达到了每秒1万Pod。
安全方面:裸金属节点部署安全容器,提供虚拟机级别的资源和业务隔离 ,基于VPC安全组提供容器网络访问控制能力和Qos限速能力。
2.2 IEF:智能边缘平台云边协同,高效构建云边端一体解决方案
IEF 是全称,是Intelligent EdgeFabric,它基于 CCE 构建,智能边缘平台(Intelligent EdgeFabric)是基于云原生技术构建的边云协同操作系统,可运行在大量异构边缘设备上,并以轻量化的方式将丰富的AI、数据分析、中间件等应用从云端部署到边缘,满足用户对智能应用边云协同的业务诉求。
其可以支持接入边缘节点,接入 Kubernetes 集群的节点需要有 VPC 以及相同的子网约束。 IEF 打破了这个约束。只需要在边缘节点上安装一个代理Agent,就能让用户把已有的设备接入 IEF 管理。
这些边缘节点可以分布在不同的地理位置,不同的边缘节点可以组成节点组,同一个边缘节点可分属不同的节点组,这样应用就可以按节点组调度。一个典型的云边端协同场景,是分布在全国的电塔或者通信塔上的摄像头视频数据有着巨大的价值,可以作为生命防火实地监控,用于监控的数据输入。将全国可支持相同业务的摄像头进入的边缘节点划到相同的节点组。这样一个算法就可以实现全国发放,全国的相同业务都实现秒级更新。
除了基本能力, IEF 还提供边缘协同通道,支持边缘节点提取价值数据上云 IEF 作为边缘协同平台,它具备以下重要特性,海量设备接入能力。在互联网和 Web 3.0 的趋势下,越来越多的数据需要在边缘处理,因此需要支持大规模边缘设备接入。当前 IEF 可支持 10 万级节点接入,实际已交付过6万节点接入的项目。云边协同方面, IEF 为边缘应用和云上服务提供互访的方式。
2.3 CCl:华为云长期投入云原生技术与产业,多款明星产品
CCI 云容器实例的全称是 Cloud Container Instance,可以。可以提供 Serverless Container,也就是无服务器容器的容器引擎,让您无需创建和管理服务器集群,就可以直接运行容器。 其提供基于Kubernetes的Serverless容器服务,兼容K8s和Docker原生接口。用户无需关注集群和服务器。Serverless 是一种架构概念,是指不用创建和管理服务器,不用担心服务器的运行状态、服务器是否在工作等。开发者只需要动态申请应用需要的资源,把服务器留给专门的维护人员管理和维护,从而就可以专注于应用开发,提升应用开发效率,节约企业 IT 成本。
传统使用 Kubernetes 运行容器,首先需要创建运行容器的 Kubernetes 服务器集群,然后再创建容器负载。如果使用 CCI 来部署容器应用,用户就不需要在 CCI 集群上绑定虚拟机,直接部署应用就可以。 CCI 会根据应用申请的资源,为用户提供足够的资源运行应用。除了这个基本能力, CCI 还提供了其他高阶能力。秒级计费:支持以微核为粒度自定义容器规格,以秒为单位计算容器费用,按实际使用量付费,大幅降低用户投入成本;安全快速:采用Kata Container安全容器技术,提供虚拟机级别的安全隔离能力,同时兼具容器的启停速度;开放兼容:原生支持Kubernetes、 Kata Container 和Docker接口,支持Docker镜像格式, 兼容开源社区生态。
2.4 ASM(Application Service Mesh):八大商业增强能力
ASM全称是 Application Service Mesh,在开源的微服务治理平台 Istio 的基础上,提供了 8 大商业增强能力。
第一点增强是提供了端到端的图形化控制台,内置包括金丝雀/蓝绿发布不同的应用灰度发布模式。在服务治理方面,支持按流量比例、内容请求、内容源I P 等维度进行治理。
第二点增强是提供了微服务级的可观测性,传统的微服务提供的是单应用的监控服务,拓扑和调用链的支持采用非侵入式,可支持非侵入式的日志拓扑和调用链,只需要用户把微服相关的 Service 进去接入 ASM 的网络中。
第三点增强是提供性能更高的数据面,除了与 Istio 社区一样支持 Pod 级别的 Sidecar 部署之外,还支持 Node 级别的 sidecar 部署。 Node 级别的资源数据面资源开销相比于 Istio 会降低30%,时延降低30%。
第四点增强是管理规模上的加强。 单一网格可以支持 10 万级的 Pod 实例,实现高密度、大规模的实例统一治理。
第五点增强是支持多种基础设施治理,网格可接入在容器虚拟机和物理机上部署的服务,帮助用户实现业务平滑牵引,不需要大刀阔斧地将整个服务从非容器架构迁移到容器架构。
第六点增强是升级能力的提升,控制面和数据面的服务可以实现一键升级,支持数据面随业务滚动和独立升级。
第七点增强是管理面的可靠性和可维护性的增强。控制面支持跨 AZ 部署,用户无需担心控制面的单点故障数据影响数据面的服务治理,降低用户的运维负担。
第八点是提供专家服务。相比开源社区, ASM 能够为客户提供更完整的咨询和服务支持,帮助开发者更快地构建解决方案。
2.5 UCS为企业分布式业务提供无处不在的云原生服务
UCS 全称是 Ubiquitous Cloud Native Service(UCS)是业界首个分布式云原生产品,为企业构建云原生业务部署、管理、应用生态的全域一致性体验 ,实现客户在使用云原生应用时,感受不到地域、跨云、流量的限制,让云原生的能力进入企业的每一个业务场景,加速千行百业拥抱云原生。
这也是华为 2021 年重磅发布的一个服务。要理解UCS,可以把它拆成两部分,分布式云和云原生。大家可能对云原生已经耳熟能详,但是分布式云是最近几年才起来的概念。什么是分布式云?分布式云指的是将公有云服务通常包括必要的硬件和软件分布到不同的地理位置,而服务的所有权、运营、治理、更新和发展仍然由原始公有云提供商负责。这意味着公有云由原来的几朵大云转变为大云加小云的分布模式。
大云转变为大云加小云的分布模式。分布式云解决了因地理空间所造成的硬件难题,云原生则从应用视角出发解决企业应用云计算的软件难题。 UCS 的分布式云是一个资源和应用的统一管理平台,可接入四类区域的 Kubernetes 集群,分别是华为的公有云、自建 IDC 、边缘集群和第三方云。华为云公有云,包括中心Region、智能边缘 IEC 以及智能边缘上的 CCE 集群。
第二类场景是自建的 IDC,用户在自己的数据中心或者机房自建 Kubernetes集群,或者使用华为云的 Kubernetes 敏捷安装版、 CCE 敏捷版创建的 K8S 可手工注册到UCS。第三类场景是边缘集群,即通过刚刚介绍的智能边缘平台 IEF 纳管的边缘设备组成的集群,可被 UCS 管理。最后一类是第三方云上的 K8S 集群。除了从华为云直接创建的集群,手工注册的 UCS 集群,只需要在集群上配置 UCS 的集群管理配置文件,就可以注册到UCS。实践云端的边缘跨云多集群的统一管理,实现集群生命周期统一管理、配置策略统一管理应用和资源可视化监控洞察等。
除了基本的集群管理能力, UCS 还提供了三大竞争力,应用算力供给、应用流量治理、应用与数据协同。
UCS 通过全局应用调度屏蔽位置带来的复杂性,将全域的算力打通,根据资源分布的业务特点,结合地理位置、网络、 Qos 的资源均衡等条件,实现全域资源的最优化协同部署。应用流量治理新模式就包括在分布式云中,流量互通是业务协同的根本, UCS 通过提供全局服务能力可以提供。管理分布式云中的南北东西向流量策略,实现全局服务的流量和智能调度,地理亲和、动态路由算法等调度能力。应用和数据的割裂会为容灾、迁移、弹性等场景带来很大的困难。华为分布式云原生 UCS 就围绕应用的数据模型进行了建模,并对不同的数据类型进行分层管理,实现存储层、容器层、中间件层等不同层级数据的实时调动,使数据能够更好地随着应用在分布式云场景下进行通信和流转,支持应用容灾扩容、迁移的应用场景。
以上从以上三点可以看出,华为云的 UCS 致力让企业使用云原生时感受不到地域的限制、流量的限制、跨云的限制,充分保证应用在多个场景下的使用。在三大能力之上是统一的云原生服务市场。 OSC 可以理解为云厂商的Marketplace,不过这是Marketplace 的子集,只包含容器部署的服务。 OSC 可支持服务提供商发布商品,服务提供商需要按。按照 OSC 的服务规范改造服务,充分利用UC、 IEF 等基础服务提供的跨云、跨集群的调度能力、调度能和数据协同能力,达到服务的真正云源深化。
华为云原生团队提供了 3 个基础设施服务管理服务,CCE、 CCI 和 IEF 分别管理华为云资源和用户接入华为云的边缘资源,这些被管理的资源为应用提供了部署环境。还提供了 3 个软件服务,SWR、UCS、ASM。这SWR 当前的功能相对简单,可提供镜像的生命周期管理。 为微服务提供了非侵入式的容器化服务治理能力。以 UCS 的保罗万象,以CCE、CCI、IEF、 ASM 为基础,在这些服务之上构建了跨集群、跨云的统一治理和应用调度能力。
三 云原生开源产品介绍
一直以来,华为云都是开源社区和基金会的重要参与者、支持者和贡献者。在基金会贡献方面, CNCF 基金会 2015 年成立开始,华为运营,就成为了基金会亚洲唯一创始成员、白金会员。直到今年,华为已向 CNCF 贡献多个首创开源项目,包括云原生边缘计算平台KubeEdge、云原生批量计算项目Volcano、云原生多云容器编排项目Kamada。今年,华为又开源了两个云原生领域的项目 Kurator 和Kappital,受到广大开发者的追捧。
在社区贡献方面, K8S 和 Istio 两个社区成立之初,华为云就参与到该项目,并开始贡献代码至今目前,贡献在亚洲都是排列首位。总体上,华为云在云原生领域一直都保持高投入、高贡献,持续多年排名第一名。
3.1 KubeEdge云原生边缘计算平台赋能千行百业
KubeEdge是业界首个云原生边缘计算框架,云原生计算基金会内唯一孵化级边缘计算开源项目,在全球已拥有 900 多个贡献者和 70 多个贡献组织,在 Github 上已经获得了超过 5.4 千的 stars 和 1.6 千的fork。
近年来, KubeEdge社区一直持续开拓创新,完成业界最大规模的云原生边云协同高速公路项目,统一管理了全国 10 万边缘节点和 50 万的边缘应用。完成业界首个云原生星地协同卫星,以云原生卫星为例,使得卫星在太空中可同时调用边缘和中心云的资源,并具备 AI 能力和多任务处理能力,有效降低空天计算实验门槛。测试数据表明,通过卫星与地面站协同,计算精度提升了 50% 以上,其卫星回传数据也可减少90%。
3.2 Volcano云原生批量计算平台释放多元算力
Volcano是一个基于 Kubernetes 的云原生批量计算项目。是 CNCF 首个容器批量计算项目,并已正式成为 CNCF 孵化级项目。 Volcano 主要用于AI、大数据、基因渲染等诸多高性能计算场景,对主流通用计算框架都有很好的支持。 Volcano 社区已吸引了 2.6 万全球开发者,目前, Volcano 在人工智能、大数据、基因测序等海量数据计算和分析场景已得到了快速应用,并构建起了完善的上下游形态。
以小红书为例,小红书是国内 TOP 级内容社区公司,能拥有千亿级的参数推荐模型和 AI 在线离线训练平台。它们训练集群有接近千台计算节点,训练速度优化到最佳。同时要求集群资源规划自动化,无需人工手动配置定位,并为同集群作业资源竞争提供防饿死机制。
小红书在使用 Volcano 改造后,使用 Volcano 应用感知调度就可以避免人工提前规划资源,实现资源规划自动化。同时基于 Volcano SLA 调度算法解决了大作业饿死问题。最终小红书总体 AI 训练速度提升了20%。
3.3 Karmada助力工行实现海量节点的多集群管理
Kamada 是华为云 2021 年4月开源的云原生多云容器编排项目,沉淀了众多企业在多云管理领域的丰富经验,可构建无限可扩展的容器资源池,让开发者像使用单个 K8S 集群一样使用多云。目前, Kamada 已正式捐献给CNCF,也是 CNCF 首个多云容器编排项目。 Kamada 项目的加入,将 CNCF 的云原生版图进一步扩展至分布式云领域。自开源以来, 项目已经拥有 2.3 千多的 star 和 450 多的fork, 120 多个贡献者,极具潜力。
工商银行等企业也是基于 Kamada 进行了容器化改造。以工商银行为例,工商银行的应用平台云容器规模超过 20 万,整体的核心业务都已经实现了容器化,包括个人金融体系的账户、敏捷支付、线上渠道等。
当越来越多的核心业务进入云以后,最大挑战就是容灾。很高可用,但现有的云管平台并不能解决这些问题,比如,没有整体的跨集群自动伸缩能力,集群队列上层用户不透明,没有跨集群的自动调度和迁移能力。对此,他们根据业务场景调研了一些多集群管理平台,最终也选择了社区支持的开源项目 Karmada 以类似 K8S 的形式部署。对他们来说,改造成本是最小的,只需要在上面部署一个管理集群即可。
3.4 Kappital云原生服务全生命周期平台
华为开源推出了分布式云原生服务。 Kappital 旨在帮助开发者快速构建云原生服务,为云原生服务提供统一的打包、部署、管理标准和一致使用体验,加快云原生服务的落地。 Kappital 主要提供统一的服务生态、全场景的部署、全生命周期治理、开箱即用运维等四个方面的能力。华为云希望Kappital项目能够帮助到开发者和合作伙伴,快速、轻松地构建健壮、可扩展的云原生服务,丰富云原生服务生态。
3.5 Kurator打造统一的分布式云原生基础设施
华为云在分布式云原生领域的多年优秀实践,华为的开源团队构建了开源的分布式云原生套件Kurator,是业界首个分布式云原生开源套件,整合了Karmada、Volcano、KubeEdge、 Prometheus 等业界主流开源技术栈,同时包括新增的开源分布式云原生服务中心。
Kurator 致力于打造开箱即用、开源开放的分布式云原生平台,提供多云、多集群、统一编排、统一调度、流量治理、便于协同、统一监控运维等核心能力,可以帮助广大开发者、生态伙伴实现云原生应用服务化,助力企业快速搭建分布式云原生平台,实现企业业务跨云跨编、分布式化升级开发。
面向未来,华为云开源策略未来的规划将持续秉持携手创新、成就共享的理念,深耕云原生领域,基于云原生领域开源的已有的成功经验和优秀实践,以分布式云原生套件 Kurator 为核心,协同开发者持续打磨、增强。在生态方面,主动参与各生态资源对接开源,主动开源华为云自身各类资源插件,打造 K8S 南向标准生态。在北向生态方面,加强 CNCF 现有优势社区集成开源大数据库、 AI 中间件、 UI 等场景化工具套件,降低开发者使用门槛,使能开发者生态。