Serverless对研发效能的变革和创新( 二 )


Serverless对研发效能的变革和创新文章插图
二、Serverless简介
云的趋势
在介绍 Serverless 之前 , 首先回顾一下云的发展趋势 , 再来探讨为什么 Serverless 是云发展的必然结果 。
【Serverless对研发效能的变革和创新】在过去的十年间 , 云计算获得了很大的发展 , 其使得用户能够通过API的方式非常轻松地获得近乎无限的算力 , 而这些算力是通过虚拟机来呈现的 , 这样的模式存在很多的优点 , 它和应用原来的开发和运行环境是兼容的 , 这种模式能够使得传统遗留应用非常平滑地迁移到云上 。
云的第一个阶段就是基础设施云化 , 这里就是云托管模式 。 基于云上的存储、网络等基础设施来构建应用 , 这种模式的核心价值在于资源的弹性和成本 。 下一个阶段中 , 云的体系已经远远超越了基础设施 , 能够看到在各个领域都出现了很多的云服务 。 因此 , 在今天需要考虑如何利用云服务的能力 , 以搭积木的方式来更快速地构建应用 , 而不是重复造轮子 , 这就是云原生的模式 。
Serverless对研发效能的变革和创新文章插图
云的产品体系正在迅速 Serverless 化
目前 , 主流的云计算产商的产品体系也正在迅速地 Serverless 化 , 这并非是对于未来的预测 , 而是实际正在发生的事实 。 下图中的数据是基于对于AWS、微软和阿里云的产品所发布的新功能或者新服务形式的统计 , 可以看到绝大多数的新服务都在呈现Serverless 化 。
Serverless对研发效能的变革和创新文章插图
云编程模型
云计算产生了大量的服务 , 在效能的角度来看 , 这些云服务是在更高层次抽象的 Serverless 形态 , 这就变得非常有意义了 。 如果从云编程模型的角度重新来审视云产品体系 , 能够看到最底层是基础设施层 , 这一层包含两部分 , 分别是 IaaS 和容器 。 在基础设施之上就是云原生应用操作系统 , K8s 是这一层的事实标准 , 它能够把底层 IaaS 基础设施很好地管理起来 。 在操作系统之上出现了非常丰富的API , 也就是全托管的云服务体系 。 如果看阿里云的产品体系 , 就会发现了阿里云提供了丰富的产品体系 , 包括数据库、大数据、中间件 , 这些都是以 Serverless 全托管模式提供服务的 。
在这样具有大量云 API 的情况下 , 今天的问题是如何设计一个通用的计算框架能够与这些 Serverless 的云服务、云 API 产生非常紧密的连接来帮助客户快速构建弹性、高可用应用 。 因此在框架层就出现了Serverless计算 , 其产生的原因最主要是需要和云API发生紧密的化学反应 , 帮助用户提升应用构建和运维效率 , 帮助客户构建分布式、数据化、智能化的新一代的云原生应用 。
Serverless对研发效能的变革和创新文章插图
云托管和Serverless应用差异
这里对比一下采用云托管的应用和采用 Serverless 的应用最本质的差异在哪里 。 对于应用而言 , 可以将其构建模式拆分为三层 , 分别是底层基础设施管理、中间的外部服务集成和上层的应用逻辑 。 如果采用云托管模式 , 实际上是在基础设施层去构建应用 , 应用构建的抽象层次是比较低的 , 因此会带来大量工作 , 用户自己需要整合不同的组件和服务 , 需要进行大量的决策和实现 , 交付的速度会比较慢 , 需要考虑很多的事情 , 而且在运维方面有大量的重复工作 。
如果用户采用 Serverless 的模式构建应用 , 也就是相当于在上层API的方式构建应用 , 粘合的逻辑和基础设施管理的工作都由云服务商来承担 , 用户所需要整合和决策的代价比较低 , 所需要考虑的主要就是如何将业务逻辑和需求与云服务进行适配来构建应用 。 基于非常高效的云API来构建应用的好处在于构建的成本很低 , 并且能够实现按天、按小时进行交付 , 并且大大降低未来运维的负担 。
Serverless对研发效能的变革和创新文章插图
什么是Serverless计算?
Serverless计算具有四个特点:首先 , 不需要维护云计算基础设施 , 应用构建的抽象层次上升 , 变得更加高效;其次 , 能够实现实时的弹性伸缩 , 这样能够通过未来的数据驱动的负载感知算法能够实现既满足很低的延时 , 也能够实现很高的资源利用率;再次 , 计量模式提供了非常细粒度的按需的模式 , 可以实现按秒级计量 , 能够实现完全按需的付费模式 , 对于用户而言 , 资源利用率是100%;最后 , 能够实现高可用 , 将这种能力内置在平台层 。