PaaS将吞噬云计算?Kubernetes的市场冲击波

发表于 讨论求助 2020-10-14 20:55:16

HMS基于容器 +Kubernetes 的新型 PaaS 将会成为云计算的主流。本文转载自InfoQ,微信号infoqchina。对文章略有删减。

2017 年是 Kubernetes 的胜利之年,很多人还不明白这意味着什么。但如果看一下云计算业界的动向,你会发现,Kubernetes 的影响正在扩散。

在本文中我将分享我们的发现,并试图说服你:基于容器 +Kubernetes 的新型 PaaS 将会成为云计算的主流。

但是这些意味着什么呢?首先,这意味着开发人员必须要掌握一个与 90% 的容器工作相关的容器编排平台。这是一个学习 Kubernetes 很好的理由。同时这还意味着我们已经深深地依赖于 Kubernetes,Kubernetes 就像容器领域中的 Amazon。在 Kubernetes 上进行设计、实现和运行应用程序可以让你在不同的云提供商、Kubernetes 发行版和服务提供商之间自由地对应用程序进行迁移。它能让你有机会找到 Kubernetes 认证的开发人员,让他们来开发项目并且在以后持续提供支持。Kubernetes 不是 VM,也不是 JVM,它是全新的应用程序可移植层,它是大家共同的选择。——Bilgin Ibryam,Red Hat 首席架构师

基于“容器 +k8s”的新型 PaaS

Kubernetes 并不是传统意义上的 PaaS,事实上,传统 PaaS 可以基于 Kubernetes 构建。

在过去,PaaS 经历了这样的发展:

第一代:如最早的 Heroku,严格限定的运行时,不可修改的环境。对于 Ruby on Rails 这种小型单体应用来说很合适。

第二代:Cloud Foundry (DEA 版本) ,可以简单的自定义环境,包括云端构建。也开始对多服务的应用有所支持。

第三代:Cloud Foundry (Diego 版本),如当前版本的 GAE 和 AWS Elastic Beanstalk,它们都经过之前两代 PaaS 迭代而来。在这个版本里增加了对容器的支持,更自由的环境配置,对微服务的支持更强大。

第四代:Kubernetes 以及其它容器编排引擎。这一代的平台变成了 Kubernetes 本身,它是面向云原生应用计算的、彻底基于分布式和容器的计算平台。

第四代 PaaS 的关注点也和之前不一样,我们可以把前三代 PaaS 称为应用级 PaaS(Application PaaS),它们关注的是应用的运行,第四代称为容器 PaaS,或者 CaaS、KaaS,它们关注的是应用的打包和分发。

第四代 PaaS 当然也可以使用其它的技术达到类似的效果,但就像前面所说的,Kubernetes 赢得了这场竞争。

从下面的 PaaS 平台架构图中可以看到,我用了 Docker+Kubernetes 层来做了一个“技术缓冲层”。也就是说,如果没有 Docker 和 Kubernetes,构建 PaaS 将会复杂很多。当然,如果你正在开发一个类似 PaaS 的平台,那么你会发现自己开发出来的东西会跟 Docker 和 Kubernetes 非常像。相信我,最终你还是会放弃自己的轮子而采用 Docker+Kubernetes 的。——陈皓 《洞悉 PaaS 平台的本质》

这是一个大而全的 PaaS 平台架构,实际中可以根据需求进行裁剪。

业界趋势:全在做 PaaS

如果我们看一下业界,会发现,从公有云到私有云,从传统企业到互联网新贵,都在拥抱 Kubernetes,都在做 PaaS。

公有云全在做 k8s 和容器

从 AWS 到 Google Cloud、微软 Azure,到国内的腾讯云、华为云等,都在提供 k8s 容器服务。如果一个公有云到现在还没有提供 k8s 服务,或者没有计划做,那么可以认为它的技术已经落后于时代了。

公有云提供的 k8s 和容器服务,具体来说分为两类:

一类是提供多租户的单容器实例,这种其实类似于上面提到的第三类 PaaS,用户创建的是单个容器,值得一提的是,这类 PaaS 仍可构建于 k8s 之上,并且不少云计算厂商已经采用这种方案。另外,由 KataContainer 技术逐渐应用到生产环境,带来将无服务器概念和容器结合的 Serverless Container Cloud 理念,让容器也能兼具传统虚拟化的优点,让这类服务的未来充满了想象空间。

Kubernetes 所要扮演的角色,乃是取代传统的 Infrastructure Layer 并鼓励技术人员进行上层的“二次创新”,而并不是直接面对最终用户。真正为最终用户提供云服务的,很大概率应该是构建于 Kubernetes 之上的、更加简洁高效的服务型 API,而 Serverless,尤其是 Serverless Container Cloud 的设计,正是这种需求下最为贴切的实现方式之一。——张磊,浙江大学博士研究员,Hyper 项目成员,Kubernetes 项目资深成员与社区维护者。

另一类是提供 Kubernetes 引擎,这种情况下用户创建的是 Kubernetes 集群,如 GKE、Azure AKS、腾讯云 CCS 等。

第二类服务是目前公有云研发的重点,发布的时间基本集中在去年下半年到现在,我们采访和调研了微软 Azure、腾讯云、华为云,情况基本类似,具体内容可进一步阅读:

剑指 Kubernetes 揭秘腾讯云的 PaaS 技术选型策略

华为云的 Kubernetes 实践之路

k8s 将成私有云的标准解法

私有云的情况分为两类,一类是企业搭建数据中心和私有云自用,另一类是服务提供商,为客户提供私有云解决方案。在这两类情况中我们都看到 Kubernetes 被使用的越来越多,并且无论是企业、服务提供商,还是客户都尝到了 Kubernetes PaaS 的甜头。

对于自用型私有云来说,系统的演进是一个复杂的问题,盲目采用新技术有时不仅无助于业务,还造成资源浪费。k8s 的表现如何呢?我们让京东的经验来说话吧:

(采用容器和 Kubernetes 的)JDOS 2.0 接入了包含大数据、Web 利用、深度学习等多种类型的利用,并为每一种利用依据类型采取了不同的资源限制方式,并打上了 Kubernetes 的不同标签。基于多样的标签,我们实现了更加多样和灵便的调度方式,并在部份 IDC 试验性地混合部署了在线任务和离线任务。相较于 1.0,总体资源应用率提升了约 30%。——鲍永成,京东基础平台部技术总监

对于服务提供商来说,Kubernetes 健康的生态可以保证它们有大量的第三方软件和工具使用,同时 PaaS 易于开发和代码 / 应用复用的特性,也降低了它们交付项目的成本,并缩短了交付周期。

对于客户来说,基于 Kubernetes 的 PaaS 可以实现应用自由迁移,这使企业可以采用多重云策略,并变相提升了对供应商的议价能力。

云计算经过了十多年的发展,已然进入的云原生的新阶段,企业应用优先考虑部署在云环境,如何顺应云原生的大潮,使用容器和 Kubernetes 构建云原生平台,践行 DevOps 理念和敏捷 IT,开源软件和社区如何助力 IT 转型,所有这些问题的解决方案就是 PaaS 平台,其对于企业的重要性不言而喻。——宋净超 TalkingData 容器平台负责人

运维也需要 PaaS

腾讯互娱的运维团队,需要为公司的在线游戏提供运维能力,这可能是中国挑战最大要求最高的运维服务,因此他们有数百人的研发团队,他们的做法可以很大程度上代表运维的发展方向,而不断思考和迭代的结果就是自研了一套 PaaS 平台蓝鲸。蓝鲸本身不使用 Docker、Kubernetes 等,完全自研,但我们可以看到,运维的发展方向就是 PaaS。

PaaS 本身与 DevOps 的理念完全契合,它改变了传统运维的职责,让他们变成运维开发,为企业研发运维工具乃至是 PaaS 平台。而对于没有蓝鲸团队开发能力的人,容器和 Kubernetes 能为他们提供弯道超车的捷径。

京东金融的运维团队就采用了 Kubernetes 来搭建他们的 PaaS 平台:

PasS 平台化将问题的关注点从基础资源上升到了应用层面,目标是提供一个帮助开发人

发表
26906人 签到看排名