容器即服务,下一代PaaS的基础

今天的帖子是微软与Kubernetes联合创始人合伙人建筑师布伦丹·伯恩斯(Brendan Burns)撰写的。

容器正在彻底改变人们构建,打包和部署软件的方式。但是,经常被忽视的是他们如何彻底改变人们构建软件的方式,从而可以构建,打包和部署软件。 (如果您必须读一遍这句话是可以的……)今天,在 集装箱世界 明天,我将研究Kubernetes之类的容器编排如何形成下一代平台即服务(PaaS)的基础。特别是,我对云容器即服务(CaaS)平台如 Azure容器服务, Google容器引擎其他 正在成为构建PaaS的新基础架构层。

为此,重要的是要考虑PaaS平台传统上提供的服务集:

  • 源代码以及可执行文件的打包和分发
  • 可靠,零停机的软件版本推出
  • 修复,自动扩展,负载均衡

当您查看此列表时,很明显,大多数这些传统的“ PaaS”角色现在已由容器接管。容器映像和容器映像构建工具已成为打包应用程序的方法。 集装箱登记处 已成为在全球范围内分发应用程序的方式。使用诸如Orchestrator之类的概念可以实现可靠的软件部署 部署方式 在Kubernetes中,服务修复,自动扩展和负载平衡都是使用以下方法在Kubernetes中部署的应用程序的所有属性 副本集服务.

PaaS还剩下什么? PaaS是否将被容器即服务取代?我认为答案是“不”。首先,留给PaaS的部分始终是PaaS的最重要部分,这就是自以为是的开发人员经验。除了上面列出的PaaS的所有通用部分之外,PaaS的最重要部分一直是开发人员的经验和应用程序框架使开发人员在平台范围内提高生产力的方式。 PaaS使开发人员能够在不到一个小时的时间内从笔记本电脑上的源代码转变为全球可扩展的服务。这非常强大。 

但是,在传统的PaaS世界中,构建PaaS基础架构本身(用户软件在其上运行的软件)所需的技能需要非常强的技能和分布式系统的经验。因此,PaaS倾向于由分布式系统工程师而不是具有特定垂直开发人员经验的专家来构建。这意味着PaaS平台倾向于通用基础结构,而不是针对特定的垂直市场。最近,我们已经看到这种情况开始发生变化,首先是针对移动API后端的PaaS,然后针对“功能即服务”的PaaS。但是,这些产品仍然是在原始基础架构之上完全构建的。

最近,我们开始看到这些平台建立在容器基础架构之上。以“功能即服务”为例,至少有两个(可能还有更多)开源的功能即服务实现在Kubernetes上运行( 裂变功能)。这种趋势只会持续下去。在容器即服务之上构建平台即服务很容易,您可以想象将其作为大学计算机科学专业的课程来分发。这种易于开发的方式意味着,具有垂直专业知识(例如,用于运行三维模拟的软件)的单个开发人员可以并且将构建针对该特定垂直体验的PaaS平台。反过来,通过针对这种狭窄的体验,他们将建立一种非常适合垂直狭窄的体验,从而使其解决方案在该目标市场中引人注目。

然后,这表明在容器即服务之上构建下一代PaaS的另一个好处。它使开发人员不必在特定的PaaS平台上做出“全盘”选择。当在容器上作为服务分层时,基本功能(命名,发现,打包等)全部由CaaS提供,因此跨多个恰好部署在该CaaS之上的PaaS通用。这意味着开发人员可以混合搭配,将多个PaaS部署到同一容器基础结构,并为每个应用程序选择最适合该特定平台的PaaS平台。同样,重要的是,如果这更适合他们的应用程序,他们可以选择“下拉”到原始CaaS基础架构。使PaaS从提供基础架构层中解放出来,使PaaS可以多样化并针对特定的体验,而不必担心范围太狭窄。体验变得更有针对性,更强大,但通过在容器即服务之上构建,也变得更加灵活。

Kubernetes是下一代应用程序,PaaS等的基础架构。鉴于此,我对我们的工作感到非常兴奋 公告 今天,Azure容器服务上的Kubernetes已达到常规可用性。将下一代应用程序部署到Azure时,无论是在PaaS上还是直接部署在Kubernetes本身(或两者)上,都可以将其部署到托管的受支持的Kubernetes群集上。

此外,因为我们知道PaaS和软件开发的世界通常是混合的,所以我们很高兴地宣布PaaS的预览版本 Azure容器服务中的Windows群集。我们也在努力 混合集群ACS引擎 并希望在未来几个月内将其全面推出。

我很高兴看到容器和容器即服务如何改变了计算世界,我相信我们只是在未来几个月和几年中看到的变革的表面。

- 布伦丹·伯恩斯,微软合作伙伴架构师,Kubernetes联合创始人