专访阿里云 Serverless 负责人:无服务器不会让后端失业

来源|阿里巴巴原生

2012 年,基础设施服务提供商 Iron.io 的副总裁 Ken 谈到软件开发行业的未来,首次提出了 Serverless 的概念,为云中运行的应用程序描述了一种全新的系统体系架构。此后,以 AWS 为代表的云服务厂商将 Serverless 概念逐步落地,陆续u D u b d 4 +推出了基于 Serverless 的 FaaS(函数即服务)产品。经过几年W * i o X E T j的发展,Serverless 架构已被业内认为是引领云原生下一个十年的发展潮流。

据 Gartner 报告,2020 年全球已有 20% 的企业采用 Serverless 技术3 [ k A部署,Serverless 从底层进行技术变革计算资源的形态,为企业的软件架构设计和应用服务部署引入创新的技术设计思路。

尽管如此,国内的一些企业和开发者在面对 Serverless 时依然持观望态度。一方面是相关技术在国内起d s q S j _ i J $步较晚,部分开发者对新技术的接受度较低;另一方面,国内的 Serverless 生态建设较为落后,市{ X x面上相关的工具链并不完善,这导致开发和部署难度大、成本高。

近日,阿里云 Serverless 技术团队宣布I h J W k } - K开源Serverless Devs平台,为开发者提供了一套 Serverless 工具链体系。据介绍,通过该平台,开发者可以一键体验0 l M W ~ w多云 Serverless 产品,快速部署 Serverless 项目。

为了进一步了解 Serverless Devs 项目的特性,以及 Serverless、微服务等云t n K K ( e原生技术生态在国内的发展趋势,开源中国邀请到了s F -里云 Serverless 研发负责人杨皓然(不瞋),阿里云 Serverless 产品经理、Serveb P q } m rless Devs 项目发起人江昱,与我们分享了 Serverless 项目的细节与国内 Serverless 生态的情况。

以下为采访原文:

1. 请简要介绍一下阿里云 Serverless Devs 项目的技术团队成员构成。

<江昱>团队是由阿里云智能云原生中间件前端负责人带队,联合阿里云智能云原生函数计算团队的多名技术专家,以及数名社区爱好者。通过开s C z , O Y源思路,进行项目建设,耗时 120 天。

Serverless Devs 的技术团队核心研发人员主要包括:

  • 寒斜:阿里云智能云原生中间件前端负责人, 2016 年加入阿里中间件从事云产品企业u o $ { U控制台研发工作,P A c c N Y ` q目前带队A / k m l r M a 7负责中间件 20 多款云产品的前端研发工作,主要技术栈为大前端通用技术包括 nodejs / types3 H Pcript / react / electron / reactnative 等对前端研发效能提升,前端数字化体验管理体系建设有多年的实践经验,目前专注在 Serverless 开发者工具链的建设,是云原生 ServeB 8 ` ^ ] b 8 *rless Dev Tools(S) 研发负责人之一,核心贡献| d B r W m P R了 S 启动器解析内核,S/core 核心包,主导了A T : P C S/gui 桌面工具研发工作。关注前端最新技术动态,关注云原生技术对前端群体的影响,致力于向前端群体推广普及云原生理念。

  • 西流c o x A:阿里云智能云原生函数计算技术专家,负责阿里云函数8 $ e a L x ! G计算产品功能开发:runtime 开发、事件源集成以及企业级c / c H } SB n _ : h :ereverless 解决方案落地等,目前专A 6 s 6注在 Serverless 开发者工具链的建设,是云原生 ServerlJ 6 q X P ress Dev Tools 研发负责人之一,主导了 S/fc 组件的开发工作。关注 Serverless 最新技术动态以H ? w 6 ~ U & e及在企业级解决方案的落地,致力于推动 Serverless 在开发者群体的流行。

  • 纳海:阿里云智R ! H能云原生 PaaS 产品高级研发工程师,参与企业级分布式应用服务 EDAS、应用配置管理 ACM 和 Web 应用托管服务等多款企业级微服务产品研发,同时为 Alibaba Cloud Toolkit 和9 N o + Serverless Dev Tools 创始人G @ @之一,: 5 P持续关注微服务、PaaS 和 Serverless 等云原生领域发展,3 . | & S g )致力于构建云原生领域的开发者工具。

2. 目前使用阿里云 Serverless 平台服务的具体落地场景有哪些?

<不瞋>:Serverless 作为基础研发底座,q M D ! h被越来越多的企业所接受,并应用于业务实践中。除了互联网企业最早“尝鲜”之外,传统企业也在探索大规模使用 Serverless。{ 1 ;

以世纪联华为例? U H b K d c A u,2019 年的 双11,函数计算 FC 帮助世纪联华顺利渡过了大促。2020 年 双11,世纪联华全面迁= ^ y R R ! q ? H移到函数计算 2.0,抗住了超过去年 230% 的业务峰值,并且研发效率交付提效超过 30%,弹性资源成本减少 40% 以上。如今,阿里整个经济体都在实践 Serverless,包括淘宝、天猫、支付宝、钉钉、飞猪、闲鱼、语雀等,并将 Serverless 的应用场景扩展到前端全栈、小程序、微服务、新零售、游戏互娱等领域。具体场景如下:

  • 小程序/ . ` & D q z E / Web / Mobile / API 后端服务

在小程序l H % x Z Z d、Web/Moible 应用、API( o $ 服务等场景中,业务逻辑复杂多变,迭代上线速度要求高,而且这类在线应用,资源利用率通常小于 30%,尤其是小程序等长尾应用,资源利用率更是低于 10%。Serverless 计算的免运维,y ? H R *按需付费的特点非常适q + i g ` 9 =合构建小程序 / Web / Mobile / API 后端系统,通过预留计算资源+实时自! 6 t动伸缩,开发者能够快速构建延时稳定、能承载高频访问的在线应用。在阿里内部,使用 Serverlesb h S $ ms 构建后端服务是落地最多的场景,包括前端全栈领域的 Serverless FoJ 7 { ] $r Frontends,机器i | A 8 p / 8 f 7学习算法服务,小程序平台实现等等。

  • 大规模批处理? % $任务处理

典型的离线任务批u 9 , q处理系统,例如大规模音视频文件转码服务,包含计算资源管理、任务优先级调度、任务编排、任务可靠执行、任务数据可视化等一系列功能。如果从机器或^ z ] K Z w N者容器层次开始构建,用户通常使用消息队列进行任务信息的持久化g A # ^和计算资源的分配,使用 K8s 等容器编排系统实现资源的伸缩和y : w容错,自行搭建或集成监控报警系统。如果任务涉及多个步骤,还需要整合工作流服务实现可靠步骤执行,而通过 SeN N drverless 计算平3 D G ~台,用户只需要专注于实现任务处理逻辑,而且 Serverless 计算的极致弹性能很好的满足突发任务对算力的需求。

专访阿里云 Serverless 负责人:无服务器不会让后端失业

  • 基于事件驱动架构的在线应用和离线数据i r / Y . B处理

典型的 Serverless 计算服# * t F f x 7 B |务通过事件驱动的方式广泛的与H c { (云端各种类型服务集成,用户无需管理服务器等基础设施和编写C 5 ;集成多个服务的胶水代码,轻松构建松耦合、分布式的事件驱动@ H 3架构的应用。

以阿里9 w F @ Y /云函数计算为例,通R 2 d f ) 2 B过 API 网关和函数计算的集成,用户可以快速实现 API 后端服务~ r s K g H Q。通过对象存储和函数计算的事件集成,函数能实时响应对象创建、删除等事件,实现以对象存储为中心的大规模数据处理。通过消息中间件和函数计算的事件集成,用户能快速实现海量消息的处理。通过和阿里云 EventBridge 的集成,无论是一方云服务,还是三方的 SaaS 服务,或者是用户自建的系统,所有的事件都可以快速便捷的被函数计算处理。

  • 运维自动化

通过定时触发器,用户G ? - 6 n @能够用函数快速实现定时任务,而无须管理执行任务的底层服R M ; e D } E务器。通过云监控触发器,用户可以接收 ECS 重启/宕机,OSS 对象存储流控等 IaaS 层服务的运维事件,并自动触发函数处理。J o q b
具体案例请参考:http://case-study.functioncom$ V P ] HputU 9 K ` 3 9 S hex q F [ = a ^ `.com/case-study.html<br />

3. Serverless Dev 项目诞生的契机和愿景是什么?Serverless Dev 与阿里云此前开源的另一个 Serv/ V o Q ] 4erless 项目 Midway 是否有联系?

<不R j | 5 b g瞋>N b = C * :首先我们在服@ j N / ( 9 * - b务集团内外的用户时看到,工具链是 Serverless 被用户接受的最大障碍。这主要体现O Z 1 m 1 v e在以下几方面:

  • 在开发和运维 Servi M D 7 u 2 aerless 应用时,体验和已有工具或流程是割裂的。对于复杂业务场景的用户,他们的不同负载通常运行在虚拟机,容器或者 Serverless 等多个平台上,用户更希望使用同一套工具和流程,去构建、部署和监控基于虚拟机,容器或者 Serverless 的应用。

  • 用户希望工具链能覆盖开发、测试、构建、部署、分布、监控等环节,提供闭环的研` ! Y 7 : w [ U发运维体验,而不再需要跳出到各个产品的控制台,或者要使用多种工具来完成。

  • 用户希望同一套工具链,能够管理阿里云,腾讯云等不同公有云 Serverless 平台,或者 on-premise 环境 v J 6 Y v C A的应用。上述问题,导致很多场景下 Serverless 并未@ V V大幅提升研发效率。

其次从云原生发展的趋势来e R ) - 2 #看,开发者在构建云原生应用时,+ F W D F v , j q要解决的问题的范围和复杂度在不断增加。比如在构建应用时,开发者仍然需要花大量精力来处理和业务逻辑无关的细节问题,包括资源的创建和删除,权限管理等等;对于企业级客户,除了资源管控外,还需要做到安全合规,比如怎么保证敏感数据没有被错误的赋予外部访问权限,VM 没有被禁止访问公网等等。我们相信5 : } l在工具层面,将有巨Y + h大的创新空间。

因此从实际用户需求和未来趋势两个方3 | m 3 E p G i面出发,6 2 G 3我们希望为开发者打造一条工具链,能帮助用户完整的解决应用开发和运维环节的问题,将 dev 和 ops 真正串联起来,提升研发效S L + ; $率。我们希望这个工具做到良好的 “complexity scalability”,l g d Z ) H t 3当问题简单时,能够快速上手;当问- ! c f K C w H题变得复杂时,同一套工具和流程仍然能胜任。

<江昱>:虽然说 Serverless 已经发展很久了,也不是什么新鲜的概念了,但是 Serverless 的工具链还蛮匮乏的。我Q / + ! k A `们不仅意识到了这个问题,也和很多用户进行过深度沟通,对用户在使用 Serverless 的时候遇到的问题也是非常关注,最终我们决定z Q h ` J ) W F要做一个“站在开发者角度的 Serverless 工具链体系”,其目的是可以让开发者像使用手机一样使用 Serverless,可以给大家更简单、方便、快捷的上手体验、实践操作,2 8 & @ B ( @ w并且可以在 Serverless 项目的全生命周期发挥作用。至于和 Midway 的联系,我觉得是非常紧密的,因为 Serverless Devs 更多是一个工具层的产品,而 Miz _ C 5 ]dwayB r ! M 5 则是一个框架层的产品,二者互为补助,毫不冲突。

4. 我们看到 Serverless Devs 的定位是 “首个支持主流 Serverless 服务/框架的云原生全生命周期管理”的平台,它的首创性体现在哪些方面?与$ 5 r 9 H 7 R z业内已有的 Serverles$ M % j ` C !s 服务平台相比有何优势?

<不瞋>:对比 Serverless Framework等流M ; N dS c d ; z *的工具,Serverless Devsr W ] 9 X v W J 有几个明显的差别:$ Z , k 1 y p U

  • Server) K ` t P r ~less Devs 致力于解决 build、depl$ I t _ @ m _ } Hoy、rQ d Ielease、monitoring/trout u H Zble shooting 等应用开发和运维的全流程问题,为用户提供端对端的开T + S J p o P发运维闭环体q y R a u验,提升研发效率。其他工具主要是解决单个环节的问题。

  • Serverless 应用不只是依赖计算类产品,还依赖存储、中间件等各种云产品,需要工具能够管理丰富的云产品。Serverless Devs 未来将支持阿里云、腾讯云、AWS、Azure 和 Google 等所有主流云厂商的云产品,以及 K8s 生态的应用。和 Serverless Framework 等工具相比,在资源管理的深度和广度上更有优势。

  • Serverless Devs 开源、开放,通3 o / | g X 过基于高级语言抽象能力的组件机制,开发者能够以 simple、higher leveD z 2 O d r Wl、composable 的方式构建复杂的云原生应用。

5. Serverless Devs 开源了哪些部分?选择开源的目的是什么?

<江昱>:Serverless Devs 开源了两个主要部分:命令行工具与R Z t _ :应用中心。Serverless 其实是一个开发者驱动性很强的领域,我们将整个项目开源,将整个思路开放,其主要目的是想要站在开发者角度,去为开D f ! s U 4 g发者提供开发者所需要的工具,让开发者们自己定义和建设 Serverless 工具链,我们也希望通过这种形式k g P w ) | t可以和更多的开发者有交集,接触到更多的 Serverless 爱好者,和大家一起 S/ g perverless。

6. 如果开发者在 Serverless Devs 上部署了自己的应用,之后还可以将该应用转移到其他平台上吗?比如转移到其他云服务平台或本p K w _服务器,转1 ] + U : D 5 s移过程是否便捷?G k d f ` ; 7 D

<不瞋>:多云的应用迁移涉及到很多的因素,除了计算平台的迁移,还包括数据迁移,配置流程迁移等。Serverless Devs 的设计哲学是帮助开发者用统一的方式 build、depD v ! F 5 . loy、release 容器或i k ! Serverless 应用。无论用户使用何种语言(nodejs/py) P f Z ?thon/golan3 L i g p pg/java),何种平台( K8s/阿里云 Serverless/Google cloud run 等),研发运维的体验是一致的,因此 Serverless Devs 能够简化应用w X U 6迁移到其他平台的难度。

7. 有一种说v o a E 3 6 I法是 “Serve7 $ nrless 会阻碍开源1 ] D 7 D ^ }服务的创新”,因为目前很多流行的开源软件还不能大规模地部署在 Faas 平台上,毕竟目前主要的开源软件并不是针对 Serverq ) Kless 执行环境的,特别是数据系统。未来的趋势是创造更多 Server7 _ qless 原生开源软件,还是把一些已n Q , s ^有的主要开源软件迁移到 Serv! 3 n A I S ^erless 架构呢?

&le e # ^ f `t;不瞋>:"Serverless 会阻碍开源服务的创新" 这个观点来自于 UC Berkeley 的论文 《Serverless Computing: One S7 0 g h {tep Forward, Two Steps Back》,论文中的谈及的 Serverless 对开源服务创新的阻碍是指当下 Serverlem i 6 M 4 ` s !ss 的局限性。半年后他们发表了另一篇论文:《Cloud Programming Simplified: A Berkeley View on Serverless Computing》,预言 Serverless 面临的挑战是可以解决的,会O o [成为云计算的默认范式。当前 Serverless 已经成为学术界的研究热点,从 2017 年开始A x w + l R (,每年相关论文数呈 2 倍速增长。

专访阿里云 Serverless 负责人:无服务器不会让后端失业

当前学术界/工业界在 Serverless 方面主要/ ] Y H Q研究趋势:

  • g w } H 6流行的应用框架 Serverless 化,比如 Serverless 机器学习框架。

  • 拓展 Serverle^ j N a O $ K 4ss 编程模型,例如 State4 c [ ? wful FaaS,使得 Serverless 计算能够支撑更多应用场景。

  • 在云的每个层面重构` I | h U m =,适应高度动态资源使: l V q I X用的 Serverless 应用。在数据中心层面,通过超快的网络架构实现计算和存储分离,将 CPU、GPU、FPGA、disk,甚至内存进行池化,5 Y K { ,从而获得更好的弹性和资源利用率;在 Serverless 计算平台层面,设计为 Serverlesj S ( D ] hs 模式高度优化的! b & @ S y z s 3存储服务,高 iops、低延时、低成本,使得分布式系统能够使用 Serverless 的模式构建。

  • 性能优n D P F U w z化,例如 GPU,m c q ~ d (FPGA 等异构硬件支持,软硬协同^ k 优化等等。可以看到这些趋势将推动 Serverless 成为最具创新A A T o [ X .性的领域。

8. Serverless 架构与一些流行的微服务架构是什么关系?Serverless 是否会取代微服务架构?

<不瞋>:Serverless 和微服务架构不是n u Q ^ o c对立的,而是不同维度的概念。微a ` i ! i服务是一种r ` g m F i A e g架构模式,而 FaaS 为代表的 Serverless 计算平台则是实现微服务的一种方式。微服务可以用 FaaS 实现,也可以用 SpringCloudV F ( A b o . ^ . PaaS 平台, K8s + 容器,或者 VM 实现。

判断选择用什么来实现微服务,要从可靠性、成本、性能、工程效率、安全性、系统迁移难度等维度出发,不同的场景有不同的取舍。当下在4 z ? H微服务场景下使用 Serverless 架构,最大的挑战在于和现有微服务框架? W + 9 W F ` ` J兼容,能够平滑迁移存量应用。为了解决这类问题,阿里云 Serverless 应用引擎应运而生,兼容 SpringCloud、Dubbo 等流行微服务框架,传统应f a / K d : s用平滑迁移,集成 ARM` n . SS 等阿里云服务,提供开箱即用p h E W ? m , / t的可观测能力,同时提供定时伸缩,按指标伸缩等弹性能力,让微服务场景也能享受 Ser% u O = v x ?verless 的红利。

9. 有4 v [ o c x r网友担心 Serverless 等云服务的出现会取代很多后端工程师的工作,以后中小型公司似乎只需要雇佣前端业务开发者即可,这种看法是否准确? 能否给一e ) # J C 0些年轻的后端开发者提供一些发展的建议。

<不瞋>:这种看法是片面的u m , w 5 W [ c。对于任何一项技术,需要思考它的源起、趋势、优劣势,特别是要自己去实践,才能得出客观的判断。ServerlessO , . = E S 0 | 并不是新技术,阿里云第一个云服务对象存储 OSS 就是K F N G x / 9 * o Serverless 的存储服务,使用 OSS 并没有压缩后端开发者的技术发展空A . + Q h w o 7间。下图是要构建一个弹性高可用的后端系统需要考虑的因素,只有蓝色虚线的框才是平台负责,其他大量内容仍然需要后端开发者设计和实现:

专访阿里云 Serverless 负责人:无服务器不会让后端失业

Serverless 计算只是解决了基础设施管理等最基础、对K X a j K : , !用户最没有差异化的脏活累活。正如d * R ) O x W x当前已经几乎没有开发者{ i w M s | Z会基于汇编语言构建应用,Serverless 也是如此,期望在 cloud programming 时代,为用户提供高级语言的编程体验。

Serverless Devs 开源项目:

  • Github 地址:https://github.com/serverless-devs
  • Gitee 地址:https://g, 0 C nitee.com/organizations/serverless-devs/projects
  • Serverlessz r Z DevsG ) 7 7 b t _ , l 官网:https://www.serverless-devs.com

嘉宾简介

专访阿里云 Serverless 负责人:无服务器不会让后端失业