阿里云和华为云谁技术好?

最近想把公司的部分应用迁移到公有云上,由于之前已将应用做了容器化改造,加上自己搭建容器平台也比较费劲,因此想找家能直接提供容器服务的公有云厂商。简单看了下,主流的公有云厂商阿里云、腾讯云以及华为云都提供了容器服务,而且宣称的功能都很强大。为了解真实情况,对3家的容器服务做了一番对比,具体如下:

首先是容器全栈服务能力,这是选择容器云平台的关键之一。这方面华为云做的最好,提供的服务非常全面,可以说是真正的“一站式”容器服务。阿里云和腾讯云以提供托管的K8S服务为主,周边服务还比较弱。

华为云不仅提供了基础的CCE(K8S引擎)、SWR(镜像仓库)服务,还提供了AOM(监控运维)、AOS(应用编排)和Istio服务网格(应用治理)等重要配套服务。还有,在刚结束的Huawei Connect 2018大会上,华为云一口气发布了3个基于Kubernetes的全新服务:Serverless容器服务CCI、基因容器服务GCS以及智能边缘平台(IEF),全栈服务能力进一步增强。

反观阿里和腾讯云的容器服务,当前以提供原生K8S托管服务为主,周边配套服务和生态还不完善,更不用说基因、边缘计算等与行业场景结合的能力了。

因此,为了公平起见,以下仅对K8S基础服务进行比较,来看下3家厂商的能力差异:

一、 基本功能。三家均基于开源Kubernetes构建,阿里云和腾讯云基本是原生Kubernetes开源版本,包括一些社区Alpha/Beta特性也直接开放,而华为云主要提供Stable特性,在高可用、大规模等企业级特性上存在优势。

1、集群管理。

1) 集群类型。阿里云和腾讯云以虚拟机集群为主,尽管阿里也支持神龙服务器,但神龙实际上是一种增强型虚拟机,并非真正的物理机;而腾讯云文档中明确表示不支持黑石物理机容器集群。华为云支持虚拟机、裸金属、GPU和Windows 4类集群,且提供一键创建入口,非常清晰和方便。

2) 集群规模。阿里云默认的集群规模为40节点,腾讯云默认20节点,超过后需要提工单申请,限制较多。华为云提供50/200/1000节点三种规格供用户灵活选择,并支持规格变更,较符合实际使用的需要。

3) 集群HA能力。3家均支持集群控制节点的3 Master HA能力(华为云还支持单Master),并且华为云和腾讯云单集群内工作节点支持跨AZ,进一步提升了可靠性,阿里云不支持该项功能。

4) 集群升级。阿里云和华为云均开放了集群升级功能,用户可自行操作,腾讯云界面上未提供集群升级功能。

5) 节点管理。3家均支持通过创建和纳管2种方式添加节点,其中阿里云和腾讯云在纳管已有节点时,会强制重装操作系统,需要等待3-4分钟,同时节点上原有数据也会丢失。华为云在纳管时不需要重装系统,因此速度较快,且原有数据得以保留,2种做法各有优劣。

K8S版本:阿里和腾讯云跟随社区版本速度较快,阿里是1.11.2版本,腾讯1.10.5,而华为云还是1.9.10。

2. 负载管理。

1) 负载类型。阿里云和腾讯云以无状态应用为主,对于有状态应用和Job类短任务,阿里云需要通过模板才能创建,而腾讯云则完全不支持。华为云能通过界面创建无状态应用、有状态应用、短任务和定时任务4类负载,比较全面。

2) 负载管理。华为云支持在界面中进行负载的部署和管理,包括手动启停、弹性伸缩、生命周期、调度策略、健康检查、应用升级等。阿里云主要通过Kubernetes dashboard进行负载管理,大部分功能未在界面开放使用,需要通过新增/修改YAML文件进行操作,开放性虽强,但使用门槛较高。腾讯云支持在界面中进行负载管理,但功能缺失较多。

3) 负载弹性伸缩。华为云支持告警、定时和周期3种弹性伸缩策略,告警策略还支持CPU、内存、磁盘、带宽等丰富的触发条件,比较齐全。腾讯云主要支持告警策略,触发条件包括CPU、内存和带宽,但其界面过于简单,需要查看文档了解其伸缩算法后才能使用。阿里云尚不支持自动的弹性伸缩。

4) 应用跨AZ部署。华为云和腾讯云的应用均支持跨AZ部署,并且华为云还可指定AZ亲和/反亲和部署。阿里云集群节点不支持跨AZ,应用也就无法跨AZ部署。

5) Helm模板。3家均支持Helm模板化应用管理,可基于模板快速部署应用。阿里云默认提供38个官方模板,华为12个,腾讯4个。

6) 应用升级。3家均支持应用的滚动升级和替换升级,但腾讯云不能通过界面进行升级,较为不便。

3、 容器网络。

1) 网络模式。华为是做电信级网络设备起家,因此网络上具备天然技术优势,支持容器隧道网络和VPC网络2种模式,可分别满足大规模、高性能的不同需求。阿里云主要支持Flannel,还提供了自研的Terway网络插件,主要用于流量控制等细粒度操作,目前处于公测状态。腾讯云主要采用Flannel容器网络。

2) 外部访问方式。华为云同时支持ELB、SNAT与EIP方式。阿里云必须通过SLB、SNAT访问,不支持EIP。腾讯云支持CLB、EIP访问。

4、容器存储。华为云和阿里云支持容器挂载云存储,包括块存储、文件存储和对象存储。腾讯云不支持容器挂载对象存储。同时,华为云还支持挂载动态存储,无需提前创建,其他2家都未支持,这个功能比较实用。

5、监控运维。

3家均提供了日志、监控等常用的运维管理能力。其中华为云的监控仪表盘比较炫,提供了类似网络监控中心大屏的效果,比如下图:

二、 高级功能。除了通用的集群和应用管理功能,通常运维工作中还需要关注一些高级功能比如集群节点弹性伸缩、亲和/反亲和调度、以及应用运行时的流量治理等能力。在这块,华为云做的更完整,能更好的满足企业生产环境的要求。

1、 集群节点弹性伸缩。

1)基于监控指标的集群扩缩容。3家均支持基于监控指标的节点弹性伸缩,其中华为云支持告警、定时、周期3种策略,阿里云和腾讯云主要基于告警策略。

2)基于工作负载的集群自动扩缩容(CA)。3家均支持基于工作负载的集群自动扩缩容。

2、 亲和反亲和调度。

在K8S最关键的调度能力上,华为云支持应用与AZ、应用与节点以及应用与应用3个层面的亲和/反亲和,给了用户最大的灵活性。阿里云不支持应用与AZ的亲和/反亲和,腾讯云则完全不支持。

3、 服务治理。

在业界最热的Istio服务网格的支持上,华为云CCE已经与Istio做了深度集成,在创建集群时只需一键就能开启Istio服务,并提供了灰度发布、应用拓扑、可视化流量治理等服务治理能力。阿里云尚未深度集成,但在集群创建后,可选择启用Istio。腾讯云则完全不支持。

华为云CCE在集群创建界面支持一键启动Istio服务网格:

4、 插件管理。华为云提供专门的插件管理功能,目前提供了P2P 镜像分发、块存储、对象存储、文件存储和集群自动扩缩容5种插件,一键即可完成安装使用。阿里云支持通过yaml部署插件。腾讯云不支持插件。

三、 用户体验。这方面最值得一提的是华为云,给我有惊艳的感觉,界面功能完善,产品化程度高,很符合运维人员的使用习惯。反而是互联网出身的阿里和腾讯云的界面比较简陋,只提供了部分功能,很多还需要通过模板和命令行操作,对普通用户不够友好。

1. 功能完整度。

3家厂商均通过console界面提供了K8S的主要功能,阿里和腾讯更接近社区原生版本的体验,华为云在社区版本上做了较多增强,并通过界面尽可能的呈现出来。例如,对于K8S的4种工作负载创建,华为云都提供了统一、直观的界面操作入口,阿里和腾讯云只能通过界面创建最简单的无状态应用,其他类型还需要模板或命令行方式创建,非常繁琐且易出错。

2 界面友好性。

1)引导提示信息。华为云在每一步操作中提供了较多的引导和提示信息,如每个参数都有明确的说明和建议,高级功能默认折叠,参数默认值也比较合理,还支持参数在切换页面时的保存等,细节做的很到位,体验很好。阿里和腾讯云在这些细节上做的还不太够。

华为云CCE鼠标悬停在选项上,自动弹出提示信息:

还有让人不爽的是,阿里云在创建集群时不会给用户明确的价格提示,且默认的配置都是比较贵的选择,腾讯和华为云在创建过程中每一步都提供了明确的价格显示,给出的默认值也都是从用户一般场景出发,没有强制消费的情况。

2)信息展现方式。华为云CCE在很多界面采用了卡片式、可视化的方式,将用户关注的信息突出显示,能提供更直观的信息,让人一目了然。阿里和腾讯还是以列表方式为主。

华为云CCE集群管理界面卡片展示:

3.资源创建速度。

在关键的集群和节点创建速度上,腾讯云和华为云创建一个集群(含节点)的时间基本在5-6分钟左右,属于正常水平。阿里云的集群创建需要耗时15分钟以上,等待时间过长,体验较差。

4. 新手入门方面。

华为云和腾讯云均支持体验中心功能,提供免费的资源和向导式的教学,让新用户能够快速上手,阿里云未提供类似功能。

四、 产品稳定性。

在整个体验过程中,发现阿里云的集群创建失败率较高,经常出现创建几个集群只能成功1个的情况,而且缺少有效的错误提示,用户体验较差。腾讯云和华为云的产品比较稳定,集群创建基本都能成功。

最后,看下3家在开源社区的影响力。由于容器整个技术栈强依赖开源项目,核心的Docker与Kubernetes,以及背后的CNCF基金会都影响整个容器市场的发展。所以,厂商在这几个开源项目以及CNCF基金会的影响力也会体现到其容器服务的能力上。在容器开源这块,华为参与度和贡献度较高,业界影响力也较大。阿里云则从去年开始发力,虽然不直接参与Kubernetes社区贡献,但是开源了Pouch等容器相关项目,并且参与CNCF基金会一系列活动,而腾讯目前看在容器开源界动静较小,影响力有限。

下表是从网上检索到的信息对比:

可以看到,3家均已加入CNCF(云原生计算基金会),也通过了“Kubernetes软件一致性认证”和KSCPs(Kubernetes认证服务供应商)认证。但华为是CNCF的初创成员和白金会员,阿里之前以Docker Swarm作为容器编排引擎,17年才开始在Kubernetes上发力,腾讯目前也仅是CNCF黄金会员。从中可以看到华为在Kubernetes和Docker开源技术上投入的更早,在社区的贡献和积累也更深厚些。

总结:

由于时间关系,本次只从全栈能力、功能、体验、稳定性、开源等几个关键方面做了对比分析。整体上看,尽管华为从去年才开始发力公有云,但其在容器相关的技术积累和产品能力上,个人感觉比阿里云和腾讯云领先了至少半年,在企业所关注的高可用、稳定性、易维护、大规模等方面具有明显优势,也基本符合华为云宣称的企业级Kubernetes服务的定位,如果是在公有云上部署容器化业务,华为云应该是个不错的选择。

声明:本站发布的内容以原创、转载、分享网络内容为主,如有侵权,请联系电话:021-51697771-8029,邮箱:mj@cndns.com ,我们将会在第一时间删除。文章观点不代表本站立场,如需处理请联系我们。

热门TAG

热门视频