本日准备初步剖析下当前主流的三大公有云平台的云原生办理方案,以作为企业履行云原生和上云策略选型的一个参考。在前面我整理过关于企业运用云端迁移和云原生干系的一些文章,本日则重点从多个方面对三个主流公有云平台供应的云原生办理方案和能力进行一个总结。
在前面一篇文章我就已经谈到过,实际上当前公有云已经从传统的供应弹性打算和存储能力的IaaS云资源池过渡,核心是供应PaaS云平台能力,同时又环绕云原生的核心哀求来为企业供应一整套的帮忙企业上云和云迁移的IT根本举动步伐,技能做事,方法工具和技能。
对付Cloud Native翻译为云原生,是Matt Stine提出的一个观点,它是一个思想的凑集,包括DevOps、持续交付(Continuous Delivery)、微做事(MicroServices)、敏捷根本举动步伐(Agile Infrastructure)、康威定律(Conways Law)等,以及根据商业能力对公司进行重组。

Cloud Native既包含技能(微做事,敏捷根本举动步伐),也包含管理(DevOps,持续交付,康威定律,重组等)。因此云原生是一系列Cloud技能、企业管理方法的凑集。
CNCF将“云原生”定义的更为狭窄,意味着利用开源软件堆栈进行容器化,个中运用程序的每个部分都打包在自己的容器中,动态编排,以便每个部分都被主动调度和管理,以优化资源利用率和面向微做事的运用程序,以提高运用程序的整体灵巧性和可掩护性。
云原生运用程序开拓常日包括DevOps,敏捷方法,微做事,云平台,Kubernetes和Docker等容器,以及持续交付,简而言之,每种新的和当代的运用程序支配方法。
CNCF给出了云原生运用的三大特色:
容器化封装:以容器为根本,提高整体开拓水平,形成代码和组件重用。动态管理:通过集中式的编排调度系统来动态的管理和调度。面向微做事:明确做事间的依赖,相互解耦。实际上我们看到对付完全的DevOps是包括了持续交付方面的内容的。因此对付云原生的观点完备和我前面常常谈到的微做事,容器化PaaS和DevOps相吻合。
即云原生 = 微做事+ DevOps + 容器化PaaS
对CNCF云原生开源基金会的贡献CNCF 是一个开源软件基金会,致力于使云原生打算具有普遍性和可持续性。 云原生打算利用开源软件技能栈将运用程序支配为微做事,将每个部分打包到自己的容器中,并动态编排这些容器以优化资源利用率。 云原生技能使软件开拓职员能够更快地构建出色的产品。
因此我们先看下三大厂商对CNCF的贡献。
华为如斯原生做事栈目前已覆盖CNCF的技能全景图,包括:云容器引擎CCE、云容器实例CCI、微做事引擎CSE等7大种别、16款云上运用做事,可以全面覆盖支撑企业运用上云前后的全生命周期环节。个中,华为云和云容器引擎CCE更是环球首批拿到了Kubernetes Certified Service Provider和Certified Kubernetes两项认证。
参考:https://www.stackalytics.com/cncf
华为这两年在云原生开源社区相称生动,对全体云原生开源社区的贡献,可以看到华为已经从19年的第7位上升到第4位,Code Commits 从19年的963上升到2492,这个数据远远超过了阿里和腾讯。
对付华为,阿里,腾讯都属于当前CNCF基金会金牌会员,而华为是顶级会员,也可以说是CNCF在海内的唯一初创成员,因此在CNCF整体地位还是最高。
在18年华为作为亚洲首家公司进入CNCF基金会TOC技能监督委员会,也是亚洲首家。而作为个人,阿里云资深技能专家李响在19年也入选了CNCF的TOC技能监督委员会。
李响拥有浙江大学本科和卡耐基梅隆大学硕士学位,是CoreOS最早期的工程师之一,参与创建了etcd、operator framework、rkt等开源项目。而在开源社区中,李响作为etcd作者被开拓者所熟知。该项目吸纳超过400名贡献者、14000个提交,发布超过150个版本,广受开拓者认可。
当然腾讯也在17年就加入了CNCF和Linux开源基金会,也是基金会的金牌会员,但是实际对开源社区的贡献相称华为和阿里来说要小很多。虽然腾讯也陆续开源了类似Tars微做事框架,蓝鲸自动化运维平台等一系列开源项目。
微做事开拓管理框架在我们比较全体云原生办理方案的时候,还是先看下微做事开拓和管理框架。
对付微做事开拓大家谈的比较多的便是SpringCloud百口桶和Dubbo,对付阿里推出的Dubbo大家都比较熟习,核心还是高性能的基于rpc的底层调用,但是Dubbo还不能举措看成一个完全的微做事开拓和管理框架。
阿里Spring Cloud Alibaba
因此阿里又做了一件主要的事,便是推出了Spring Cloud Alibaba,这是阿里供应的微做事开拓一站式办理方案,是阿里巴巴开源中间件与 Spring Cloud 体系的领悟。
依托 Spring Cloud Alibaba,您只须要添加一些表明和少量配置,就可以将 Spring Cloud 运用接入阿里微做事办理方案,通过阿里中间件来迅速搭建分布式运用系统。即阿里在SpringCLoud根本上整合了自己一系列的开源组件,形成一整套的办理方案,如下:
Nacos:做事注册创造中央+做事配置中央。Sentinel:限流熔断办理方案。RocketMQ:低延时的、高可靠的中间件Dubbo:高性能分布式 Java RPC 框架Seata:高性能微做事分布式事务办理方案。这些组件都和SpringCLoud进行了很好的整合。也便是说纵然你原来采取的SpingCLoiud开拓框架开拓自己的微做事,你也很方便将这些开源组件引入到自己的微做事体系里面。
华为ServiceComb
而对付华为,则是完备自己搞了一套完全的微做事开拓和管理框架ServiceComb,当前一件开源和贡献给CNCF基金会。ServiceComb基于华为内部的CSE(Cloud Service Engine)框架开源而来,这个框架在华为内部已经存在了2年多,支撑了多个大型的商业项目。
ServiceComb与业界盛行生态互通:Zipkin、Skywalking、Prometheus等Tracing/APM生态,Apollo配置中央生态,Istio生态,K8S生态,Spring、SpringCloud等盛行开源框架。可以看到ServiceComb具备从做事左券涉及,做事注册创造,链路监控,限流熔断,分布式事务等一系列能力,同时支持Java和Go多措辞。
2018年10月24日, Apache软件基金会宣告Apache ServiceComb 毕业成为Apache顶级项目,在全体社区生动度也很高,也有类似海内大型互联网公司的实践运用案例。
腾讯Tars
Tars是腾讯开源的一套微做事开拓管理框架,底层基于Go措辞,核心是支持多措辞和高性能。Tars是腾讯从2008年到本日一贯在利用的后台逻辑层的统一运用框架TAF(Total Application Framework),目前支持C++、Java、PHP、Nodejs、Go措辞。
该框架为用户供应了涉及到开拓、运维、以及测试的一整套办理方案,帮助一个产品或者做事快速实现开拓、支配、测试,以及上线。它集可扩展协议编解码、高性能RPC通信框架、名字路由与创造、发布监控、日志统计、配置管理即是一体。通过它可以快速用微做事的办法构建自己的稳定可靠的分布式运用,并实现完全有效的做事管理。
Tars支持五大编程措辞,个中包括C++和JAVA、nodejs和PHP和GO,也可以扩展其它措辞。从上图也可以看到,大家常用的做事注册、负载均衡、熔断、做事配置等做事管理能力也都具备。从做事管理能力和多措辞支持上好过Dubbo,但是整体开源社区的生动度一样平常。
DevOps持续集成能力我们将敏捷研发管理,代码托管,流水线,持续集成,容器云集成,持续交付等全部纳入到DevOps持续集成能力中进行剖析和评估。
华为软件开拓平台 DevCloud
DevCloud是集华为研发实践、前沿研发理念、前辈研发工具为一体的研发云平台面向开拓者供应研发工具做事,让软件开拓大略高效。可以看到,我们常说的DevOps支撑平台能力,包括敏捷研发管理,代码托管,流水线,编译构建,支配,灰度发布,自动化测试等华为云的DevCloud平台全部具备。
软件开拓平台(DevCloud)是集华为近30年研发实践、前沿研发理念、前辈研发工具为一体的一站式云端DevOps平台,面向开拓者供应的云做事,即开即用,随时随地在云端进行项目管理、代码托管、流水线、代码检讨、编译构建、支配、测试、发布等,让开发者快速而又轻松地开启云端开拓之旅。
在官网可以看到详细的功能演示视频可以参考,核心特点紧张包括:
支持云上开拓
DevCloud供应基于Git的在线代码托管做事,支持代码管理、分支管理、CodeReview等功能,并增加多重安全防护功能,担保核心资产安全。
DevCloud推出云端开拓环境CloudIDE,集成代码托管做事,支持全容器化开拓环境的快速按需获取,支持40+措辞在线编码,支持主流措辞(Java、C/C++、Python、Node.js等)的在线调试和运行。
实现DevOps持续交付
DevCloud供应可视化、可定制的自动交付流水线,将代码检讨、编译构建、测试、支配等多种类型的任务纳入流水线,并纳管子流水线,实现任务的自动化并行或串行实行,并充分利用云上资源的弹性能力,大大缩短流水线的实行韶光,实现云端可持续交付。
覆盖软件研发全生命周期
DevCloud覆盖软件交付的全生命周期,从需求下发、到代码提交与编译、验证、支配与运维,打通软件交付的完全路径,供应软件研发轫到端支持,全面支撑落地DevOps。
腾讯云-Coding DevOps
对付腾讯云,实际上原来在DevOps持续集成和交付能力上支撑是比较多的,虽然有类似蓝鲸等平台,但是重点还是偏持续集成和运维管理方面。而对付敏捷研发和项目管理能力基本没有。
而腾讯在收购Coding后,基本补足了这块的短板。
当时实际上做敏捷研发管理和DevOps流水线的就Coding和Ones两家公司做的都不错,而腾讯则是直接对Coding进行了收购,但是整体Coding的运营和管理还是相称独立。
可以看到,我们常说的基于Scrum思路的敏捷研发管理,自动化测试,代码托管,流水线,制品库管理,云端IDE等基本都具备。而对付Coding本来原来也没有做容器云平台部分,因此这块整合和腾讯云的容器云PaaS平台对接形成一个完全的持续集成和交付的办理方案。
纯挚从敏捷项目管理和协同角度,当然Coding比华为的DevCloud功能更加强大,但是从DevOps和容器云集成能力上,华为DevCloud集成的更加好。而对付Coding当前腾讯推的力度也很大,对付根本的项目管理,代码托管,持续集成等功能都可以免费利用,以实现到腾讯云平台的引流。
阿里云-云效DevOps平台
云效是阿里推出的企业级一站式DevOps平台,支持公共云、专有云和稠浊云多种支配形态,通过人工智能、自动化技能的运用提升开拓者的研发效能,持续交付有效代价。
从整理来看,云效仍旧是基于Scrum敏捷研发的思路,实现敏捷项目管理,包括我们常说的项目管理,需求管理,毛病管理,任务跟踪,任务看板等场景功能。
对付DevOps持续集成则通过是云效流水线实现,其供应灵巧易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。流水线是持续交付的载体,通过构建自动化、集成自动化、验证自动化、支配自动化,完成从开拓到上线过程的持续交付。通过持续向团队供应及时反馈,让交付过程高效顺畅。
但是从整体帮助文档来看,对付云效流水线和研发管理两个部分的内容结合的比较生硬,流水线本身的编排界面和我们常用的利用习气也存在差异,整体觉得和阿里云平台绑定的很紧。
整体剖析评估
就敏捷研发和DevOps支撑上,整体还是觉得华为云供应的DevCloud能力最强,而且本身和华为云底层容器没有完备绑定去世,具备足够的开放性。而对付腾讯云Coding,当前最紧张的还是收购的产品和自己的容器云平台的集成性,这点没有进行验证。而对付阿里云的DevOps支撑,整体觉得一样平常,当然阿里云本身也没有重点去推这块的内容。
云原生办理方案阿里云-云原生架构白皮书
作为云原生办理方案的主要推广厂商,阿里云今年发布了一个主要的办理方案文档,即《云原生架构白皮书》。
下载地址:https://developer.aliyun.com/topic/cn-architecture-paper
阿里云以自身实践与做事百万付用度户的丰富实践履历为根本。从云原生架构定义出发,构建基于实际业务场景的完全云原生架构体系。为企业CTO/CIO供应计策参考,为广大研发工程师供应业务洞察,助力云上客户建立最具业务代价的云原生架构。
该文档对当前主流的类似微做事,ServiceMesh,Serverless,DevOps,容器技能,Kurbernetes等都进行了详细的描述,值得所有学习云原生架构和解决方案的职员参考。
在该书里面,阿里还给出了一个云原生的4+1架构设计模型。
ACNA 是一个 「4+1」 的架构设计流程,「4」 代表架构设计的关键视角,包括企业计策视角、业务发展视角、组织能力视角和云原生技能架构视角;「1」 表示云原生架构的架构持续演进闭环。4 个架构视角和一个闭环的关系如下图。
ACNA 除了是一个架构设计方法,也包含了对云原生架构的评估体系、成熟度衡量体系、行业运用最佳实践、技能和产品体系、架构原则、履行辅导等。
华为云全栈云原生办理方案
华为如斯原生技能平台Vessel涵盖以容器引擎、容器网络、容器存储为核心的根本举动步伐技能层,结合华为云擎天架构软硬协同的技能上风,能充分开释华为云根本举动步伐的性能潜力,为业务供应高性能的运行平台;同时供应开放、易用的云原生运用技能层,包括运用网格、调度、监控、管理、云边协同等组件。
华为云基于云原生技能平台Vessel,率先于业界推出了第二代裸金属容器、稠浊云容器、容器批量打算、边缘容器四大办理方案。华为云先后将Vessel的核心组件Volcano和KubeEdge开源,并贡献给云原生打算基金会CNCF,成为社区首个容器智能边缘项目和容器批量打算项目,引领了云原生技能与家当结合的发展方向。
把稳华为最新云原生办理方案,对付容器,容器网格,存储,调度等已经全部实现自主研发,而非基于Docker容器定制。
其余对付云原生的推广,华为本身也出版大量的云原生干系技能书本,例如:
微做事-《持续演进的Cloud Native:云原生架构下微做事最佳实践》做事网格:《云原生做事网格 Istio:事理,实践,架构和源码解析》以上两边可以作为主要参考。
做事网格ServiceMesh和Istio对付ServiceMesh做事网格,当前主流的办理方案即Istio来实现。而对付华为云也自研了自己的做事网格办理方案Mesher。
Mesher是华为公司自研的Service Mesh的详细实现,它是一个轻量的代理做事,以Sidecar的模式与微做事一起运行,利用Mesher可以实现异构系统快速改为微做事,成为云原生运用。
通过Mesher可以很好的实现微做事架构下的去中央化做事管理能力,同时我们看到Mesher当前可以更好的和华为微做事开拓框架,华为DevOps持续集成和容器云环境进行集成。即实现全体Mesher实际的注入对用户是无感的,在全体DevOps持续集成过程中自动完成。
阿里云ASM-托管做事网格
做事网格(简称ASM)是一个托管式的微做事运用流量统一管理平台,兼容Istio,支持多个Kubernetes集群统一流量管理,为容器和虚拟机运用做事供应同等性的通信掌握。整合阿里云容器做事、网络互连和安全能力,打造云端最佳做事网格环境,为每个微做事供应同等的流量掌握和可不雅观测能力。
阿里的ASM是业内首个全托管Istio兼容的做事网格平台,支持运行于多种类型的打算根本举动步伐ACK(阿里云托管式或专有式标准Kubernetes集群)、ASK(阿里云Serverless Kubernetes集群)、ECS(阿里云做事器)、ECI(阿里云弹性容器实例)等之上的做事运用流量统一管理 。
该产品供应了一个全托管式的做事网格平台,兼容于社区 Istio 开源做事网格,用于简化做事的管理,包括做事调用之间的流量路由与拆分管理、做事间通信的认证安全以及网格可不雅观测性能力,从而极大地减轻开拓与运维的事情包袱。
从当前先容材料来看,阿里ASM更多是对付Istio开源方案的定制和扩展。详细详细的细节可以参考阿里专家王夕宁出版的《Istio做事网格技能解析与实战》一书。
腾讯TSF微做事平台
腾讯微做事平台 TSF 是一个环绕着运用和微做事的 PaaS 平台,供应运用全生命周期管理、数据化运营、立体化监控和做事管理等功能。TSF 拥抱 Spring Cloud 、Service Mesh 微做事框架,帮助企业客户办理传统集中式架构转型的困难,打造大规模高可用的分布式系统架构,实现业务、产品的快速落地。
在腾讯的TSF微做事平台中我们看到包括了TSF Mesh的内容。
Mesh 微做事平台(Tencent Service Mesh Framework,以下简称 TSF Mesh)是一个根本举动步伐层,用于处理做事间的通信。TSF Mesh 是由一系列轻量级的网络代理组成,这些代理(又称 Sidecar)与运用程序支配在一起,而运用程序不感知 Sidecar 的存在。
TSF Mesh 兼容 Istio 开拓框架,供应完备兼容 Istio 的 Service Mesh 微做事平台能力,支持做事注册创造、 做事限流、做事鉴权、做事路由、调用链、API 上报等功能。
从实际官网材料来看,实际上当前在采取TSF的成功案例和企业并不多。
整体剖析评估
就当前本身的全体案例和运用情形来说,阿里云在ServiceMesh和Istio办理方案推广上占明显上风,成功案例最多,相对来说运用和方案也更加成熟。华为有自己的Mesher方案,但是实际推广情形不明确,腾讯云当前整体觉得并没有大力推自己的TSF微做事平台。
本日先剖析和整理到这里,对付Serverless,数据库中间件和技能做事能力供应也是云原生办理方案的主要内容,将在后续文章中进一步先容。