独家对话阿里云函数计算负责人不瞋:你所不知道的 Serverless

头图.png

做者 | 杨丽
来源 | 雷锋网(ID:leiphone-sz)算法

Serverless 其实离咱们并无那么遥远。小程序

若是你是一名互联网研发人员,那么极有可能了解并应用过 Serverless 这套技术体系。纵观 Serverless 过去十年,它其实因云而生,也在同时改变云的计算方式。若是套用技术成熟度曲线来描述的话,那么它已经走过了萌芽期、认知破灭期,开始朝着成熟稳定的方向发展。将来,市场对 Serverless 的接受程度将愈来愈高。缓存

不要惊讶,阿里云团队在真正开始构建 Serverless 产品体系的最开始的一两年里,也曾遭遇内部的一些争议。而今,单从阿里集团内部的不少业务线来看,已经在朝着 Serverless 化的方向发展了。安全

日前,阿里云凭借函数计算产品能力全球第一的优点,入选 Forrester 2021 年第一季度 FaaS 平台评估报告,成为比肩亚马逊成为全球前三的 FaaS 领导者。这也是首次有国内科技公司进入 FaaS 领导者象限。服务器

1.png

在与雷锋网的访谈中,阿里云 Serverless 负责人不瞋阐释了 Serverless 的演进历程、引入 Serverless 面临的难点与挑战、以及有关云原生的趋势预判。网络

“必定要想明白作这件事的终局是什么,包括产品体系的定位,对开发者、对服务商的价值等等这些问题。这要求咱们不断经过实践和认识的深化,让这些问题的回答可以逐渐清晰起来。这也是咱们这么多年实践积累的宝贵经验。”不瞋指出。架构

尽管企业的实践还存在种种疑惑和挑战,但 Serverless 实际上离咱们并无那么遥远。举一个最近的例子,新冠疫情让远程办公、在线教育、在线游戏的应用需求短时间内增长。业务规模的爆发式增加,对每个需求的响应须要更加及时,这对应用架构的弹性,对底层计算的速度,对研发效率的提高等,都要求业务加速向新技术架构演进。框架

而不瞋的理想就是,帮助更普遍的客户实现向新技术架构的平滑迁移,让 Serverless ***到全部的云应用中。less

不瞋做为阿里云 Serverless 产品体系的负责人,也是国内 Serverless 的早期实践者。如下将呈现是对此次访谈的完整总结。运维

Serverless 的定义

在讨论以前,咱们先明确 Serverless 的定义,确保你们对 Serverless 的认知是一致的。

如今 Serverless 愈来愈热,不管是工业界仍是学术界,都将 Serverless 视为云计算发展的下一阶段。Serverless 有不少种表述,其中伯克利大学的定义相对严谨一些。

注:2019 年 2 月,加州大学伯克利分校发表的《Cloud Programming Simplified: A Berkerley View on Serverless Computing》论文,曾在业界引起诸多讨论和关注。

大体来说,Serverless 实际对应的是一整套的产品体系,而不是单独一两个产品;同时,这些产品/服务之间还具有如下特征:服务之间彼此配合、全托管、用户经过 API 调用就可完成整个功能或应用的开发而无需关注底层基础设施。

这套产品体系目前可分为两类:一类是计算,即 FaaS(Function as a Service);还有一类是 BaaS(Backend as a Service),好比消息中间件、对象存储,均可以看作是 Serverless 化的 BaaS 服务。 

Serverless 的演进

一个新技术一般会经历几个阶段:

  • 第一个阶段,是由于其巨大潜力引发普遍关注的阶段。
  • 第二阶段,是认知破灭的阶段,在这个阶段因为产品初期自己能力不是很强健,或案例不全等因素,致使用户在使用过程当中每每会遇到挫败感。
  • 第三个阶段,是伴随实践的增长和产品能力自己的发展,又会逐步提高认知,进而进入一个稳健增加的阶段。

2.png

须要明确的是,Serverless 并非一个很是新的技术。像阿里云的 OSS、AWS 的 S3 对象存储,它们都是最先发布的产品之一,一开始其实就是 Serverless 的形态。

但业界对 Serverless 的认知,确实是因 AWS 的 Lambda 带起来的,2014 年 AWS 推出了 Lambda。

2017 年到 2019 年上半年,这段时间,业界对 Serverless 的讨论不少同时又有不少困扰,不知道如何落地,或者用了以后才忽然以为跟本身想象的不太同样。

国内外技术发展保持着类似的节奏,国外相对来说更快一些。从去年开始,国内也开始进入到了稳定发展的阶段。如今国际上主流云供应商提供的新功能或新产品,80% 以上都是 Serverless 的形态。

阿里云从 2017 年开始打造 Serverless,并于当年正式启动商业化。

目前在阿里集团内部已经开始落地 Serverless 了,例如飞猪、淘宝、高德等等。在企业赋能方面,尤为是疫情以后,可以看到用户对 Serverless 的认知比以前确实深刻了许多,在不少场景下,切换到 Serverless 架构确实可以为用户带来明显的收益,用户也承认这项技术。

举一项数据来看,目前阿里云 Serverless 已经服务了上万家付费客户,拥有 100+ 的典型案例,函很多天调用量超过 120 亿次、函数总量达到 100 万。

新旧观念的转变

对于阿里云自身而言,在最开始构建 Serverless 之初,其实最大的挑战不只仅是技术层面的,更多的还有观念上的不对称。

首先,Serverless 自己的形态跟以往的计算形态差别比较大,整个研发和运维的体系跟传统应用是割裂的。若是开发 Serverless 应用,其研发运维的流程和工具跟虚拟化(VM)或容器化的方式不太同样,不少用户会担忧供应商锁定(lock-in)的问题,不太但愿自身的技术栈跟某个供应商绑定

其次,AWS 的 Lambda 最开始作了一个榜样,但它也实际也只适合于 AWS 的产品体系,若是放在其余的产品体系里会面临很是大的挑战,不易于被用户接受,且限制条件也不少,应用场景也有限。这就要求在技术层面,包括资源调度、安全隔离、多租户管理、流控等方面有很高要求,作起来很是辛苦。由于在此以前没有一个产品的计算形态是如此细粒度、动态的使用资源。

这种挑战,一开始即使在阿里内部,也曾面临过许多争议。

咱们这么多年实践积累的宝贵经验是:必定要想明白作这件事的终局是什么,包括在产品体系中的定位,对开发者、对云服务商的价值等等这些问题。这要求咱们不断经过实践和认识的深化,让这些问题的回答可以逐渐清晰起来。

3.png

引入 Serverless 的顾虑

站在客户层面,不一样类型的客户对引入第三方的 Serverless 技术其实会有不一样层面的考虑。

对于超大型企业,好比 Facebook、字节跳动,企业自己就有很是强的基础设施团队,一般他们会选择本身内部开发这方面技术。

还有一些企业,没有采用 Serverless 并非说他们对这个技术有什么抵触,而是当下的落地实践或自己的工具链还没法作到彻底消除供应商锁定的问题,又或者是由于工具链跟传统开发太过割裂,企业自身没法同时维护两套开发框架

这种状况下,用户的系统架构必定会面临一个中间状态:既有老的又有新的。若是整个迁移的过程不是那么平滑的话,供应商的这部分优点在客户那里是不存在的, 由于老的系统实际是须要维护的。如此,对用户的吸引力其实就没有那么大了。

阿里云最近开源的 Serverless Devs 解决的就是这样的问题。其定位是帮助用户更简单地开发和运维本身的 Serverless 化和容器化应用,提供应用全生命周期管理的能力。

本质上,Serverless 的环境是在远端,跟用户本地开发环境是自然割裂的,那么在这个过程当中,从调试、部署、发布、监控等各个环节,Serverless Devs 都但愿能为用户提供更好的体验。但用户可自由使用其中一个或几个功能,不须要将已有的研发运维的流程彻底迁移到咱们定义的这套规范里。

过去一年的重大升级

2020 年,疫情的背景下,其实也是阿里云 Serverless 技术升级的关键一年。这一年里,团队作了不少大的升级,包括:

  • 架构层面,已经升级到神龙裸金属服务器+袋鼠安全容器的下一代架构。好处是可以带来很是高的计算密度,进一步提高弹性能力和性能。
  • 缓存方面,发布容器镜像加速技术,可以让GB级别的容器镜像很是快地实现秒级启动。目前已经演进到了下一代,经过阿里内部大规模业务场景进行打磨。
  • 运行时方面,去年阿里云重写整个语言运行时,使得更具备可扩展性,启动速度更快。

4.png
阿里云函数计算全景图

总结起来,两方面因素推进阿里云Serverless在过去一年作出重大技术升级:

一是来自用户自己的诉求。好比在教育场景中,老师对开课这件事是有时效性要求的,这就要求后台可以短期内启动可能数千个实例进行响应。

二是来自内部对产品效能的要求。对于云服务商而言,Serverless 最核心的一个定位,是可以将云上资源更好地利用起来。整个计算架构确实须要经过新的虚拟化技术、容器技术,同时跟新的硬件结合起来,从而提供一个很是细粒度的、启动很是快、很是弹性的计算模型。这也是为何咱们要进行架构升级,从原来的虚拟机架构演进到神龙裸金属服务器+袋鼠安全容器的架构,将对总体产品的发展产生一个核心推力。

攻克下一城

阿里云采用“三位一体”的策略打造整个 Serverless 产品矩阵——自身实践-开源-商业化。即经过集团内部超大规模、超复杂的业务场景来锤炼技术,将技术不断打磨产品化,而后对云上客户提供商业化服务,在这个过程当中,还会将一些技术、工具进行开源,遵循开源开放的标准,跟开源生态融合。

只有对客户的业务产生价值和帮助,客户才会承认 Serverless。

短时间来看,不管是业务规模,仍是产品、技术层面,阿里云 Serverless 都在以很是稳健地方式按照自身的节奏向前演进。

  • 一是业务规模会更大,预计每一年会有三倍以上的增加。
  • 二是产品层面,以客户为中心,解决用户痛点仍然是首要的。今年将在产品细节体验上继续补强,在工具链、可观测性等方面为用户提供更好的体验。
  • 三是技术层面,包括计算、网络、缓存、运行时等核心部分,继续夯实技术细节,实现极致性能。

云时代的新机遇

在应用场景上来看,Serverless 再也不仅仅是小程序,还有电商大促、音视频转码、AI 算法服务、游戏应用包分发、文件实时处理、物联网数据处理、微服务等场景。

Serverless 将继续和容器、微服务等生态融合,下降开发者使用 Serverless 技术的门槛,反过来也将促进传统应用的云原生化。

Serverless 另外一个核心要素是“被集成”,被集成的对象有两类:

  • 一类跟一方云服务进行接入,阿里云函数计算已被 30 多个一方云服务产品集成。
  • 第二类是经过 EventBridge 事件总线和三方生态被集成。例如和钉钉等 SaaS 应用集成。钉钉的业务中经常须要以简洁、轻量的方式完成用户的定制化需求,这和 Serverless 的应用形态是高度匹配的。

5.png
不瞋,阿里云 Serverless 负责人

今天,咱们能够很是明确地看到,整个云的将来必定是 Serverless 形态的。阿里云内部对这个也没有争议,由于这么多年来,整个产品体系就是朝着 Serverless 方向发展的。

不是由于有了 Serverless 计算,云才向 Serverless 演进。偏偏相反,由于云的产品体系已经向 Serverless 演进,才催生了 Serverless 计算。单纯的 Serverless 计算并不能实现不少功能,前提必定是跟其余云服务及其生态配合,才能体现出其自身的优点。

不管是工业界仍是学术界,都已经承认这样一个趋势。 

相关文章
相关标签/搜索