当前位置:数码通 > 摄影

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

来源于 数码通 2023-10-07 19:40

2012年,云基础设施服务商m.smtshopping.cn副总裁Ken谈到软件开发行业的未来和首次提出Serverless的概念。运行在云端的应用描述了一种全新的系统架构。此后,以AWS为代表的云服务厂商逐渐践行Serverless理念,并陆续推出基于Serverless的FaaS(Function as a Service)产品。经过几年的发展,Serverless架构已经被业界认为将引领未来十年云原生的发展趋势。

根据Gartner报告,2020年全球有20%的企业采用了Serverless技术部署。Serverless技术从底层改变了计算资源的形态,将创新的技术设计思想引入到企业的软件架构设计和应用服务部署中。

尽管如此,国内一些公司和开发者面对Serverless仍然抱有观望态度。一方面,国内相关技术起步较晚,部分开发者对新技术的接受度较低;另一方面,国内Serverless生态建设相对落后,市场上相关工具链不完善,导致开发难度大、部署难度大、成本高。

近日,阿里云Serverless技术团队宣布开源Serverless Devs平台,为开发者提供Serverless工具链系统。据介绍,通过该平台,开发者可以一键体验多云Serverless产品,快速部署Serverless项目。

为了进一步了解Serverless Devs项目的特点,以及国内Serverless、微服务等云原生技术生态的发展趋势,开源中国邀请到了阿里云Serverless研发总监杨浩然(没生气)阿里云Serverless产品经理、Serverless Devs项目发起人姜宇为我们分享了Serverless项目的细节以及国内Serverless生态的情况。

以下为采访原文:

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

<江昱>:团队由阿里云智能云原生中间件前端负责人领衔,由阿里云智能云原生功能计算团队的多名技术专家以及多名社区爱好者。通过开源的思路,项目建设历时120天。

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

  • 韩谢:阿里云智能云原生中间件前端负责人。 2016年加入阿里巴巴中间件,从事云产品企业控制台的研发。目前带领团队负责20多个中间件云产品的前端研发。主要技术栈是常见的前端技术包括nodejs、typescript、react、electron、reactnative等,提高了前端研发的效率。拥有多年构建前端数字体验管理系统的实践经验。目前专注于Serverless开发者工具链的建设,是云原生Serverless Dev Tools(S)的研发领导者之一。他贡献了 core S launcher 解析内核和 S/core 核心包,并领导了 S/gui 桌面工具的开发。关注前端最新技术趋势,关注云原生技术对前端群体的影响,致力于向前端群体普及云原生理念。
  • 西流:阿里云智能云原生函数计算技术专家,负责阿里云函数计算产品功能开发:运行时开发、事件源集成以及企业级Serverless解决方案实现等。目前专注于Serverless开发者建设工具链,是云原生Serverless Dev Tools的研发领导者之一,主导S/fc组件的开发。关注Serverless的最新技术动态和企业级解决方案的落地,努力推动Serverless在开发者社区的普及。
  • 那海:阿里云智能云原生PaaS产品高级研发工程师。参与企业级分布式应用服务EDAS、应用配置管理ACM、Web应用托管服务等多个企业级微服务产品的开发。他也是阿里云工具包的贡献者。作为Serverless Dev Tools创始人之一,持续关注微服务、PaaS、Serverless等云原生领域的发展,致力于打造云原生领域的开发者工具。
2。目前使用阿里云Serverless平台服务的具体实施场景有哪些?

<不嗔>:Serverless作为基础研发基础,被越来越多的企业接受并应用于商业实践。除了最早“尝鲜”的互联网企业之外,传统企业也在探索Serverless的大规模使用。

以世纪联华为例。 2019年双十一期间,函数计算FC帮助世纪联华顺利度过大促销。 2020年双11,世纪联华全面迁移到函数计算2.0,顶住了去年230%以上的业务峰值,研发效率交付提升30%以上,弹性资源成本降低40%以上。如今,阿里巴巴整个经济体都在践行Serverless,包括淘宝、天猫、支付宝、钉钉、飞猪、闲鱼、语雀等,并将Serverless应用场景拓展到前端全栈、小程序、微服务、新零售、游戏等。互动娱乐等领域。具体场景如下:

  • 小程序/Web/手机/API后端服务

小程序、Web/移动应用、API服务等场景,业务逻辑复杂多变,迭代和上线速度要求较高。而且,此类在线应用的资源利用率通常低于30%,尤其是小程序等长程序。对于尾部应用,资源利用率甚至低于10%。 Serverless计算免运维、按量付费的特点非常适合构建小程序/Web/Mobile/API后端系统。通过预留计算资源+实时自动伸缩,开发者可以快速构建时延稳定、能够承载高频的系统。访问在线申请。在阿里巴巴内部,使用Serverless构建后端服务是最常见的场景,包括前端全栈领域的Serverless For Frontends、机器学习算法服务、小程序平台实现等。

  • 大规模批量处理

典型的离线任务批处理系统,例如大规模音视频文件转码服务,包括计算资源管理、任务优先级调度、任务编排、任务可靠执行、任务数据可视化等一系列功能。如果从机器或容器层面构建,用户通常使用消息队列来持久化任务信息和分配计算资源,使用K8S等容器编排系统来实现资源扩展和容错,并自行构建或集成监控和报警系统。如果一项任务涉及多个步骤,则需要集成工作流服务以实现步骤的可靠执行。使用Serverless计算平台,用户只需专注于实现任务处理逻辑,Serverless计算的极致弹性可以很好地满足突发性任务计算的需求。力的需要。

比较项目

自建服务

无服务器

任务处理效率

根据用户自建系统的灵活性和任务调度效率,当大量任务进来时,通常需要进行排队延迟处理

与弹性计算等底层资源池联动,实时伸缩,及时处理任务。通过无服务器工作流程可以实现复杂的任务编排。支持随时动态调整不同任务的计算资源,轻松实现任务优先级处理

费用

取决于用户自建系统的任务调度和资源管理效率

资源利用率通常比用户自建高10%-30%,成本更有优势

开发

除了必要的业务逻辑开发外,还需要实现任务处理系统,以保证任务的可靠执行

您只需专注于业务逻辑的开发和一键应用部署

操作与维护

需要用户从头到尾构建,包括相关软件的安装、服务配置、安全更新等一系列问题

免运维,并提供强大的问题诊断和数据可视化能力

项目启动周期

保守估计约30个人日,包括硬件采购、软件及环境配置、系统开发、测试、监控报警、灰度发布系统等。

预计3人天,开发调试(2人天)+压测观察(1人天)

  • 基于事件驱动架构的在线应用和离线数据处理

典型的无服务器计算服务以事件驱动的方式与各类云服务广泛集成。用户不需要管理服务器等基础设施或编写粘合代码来集成多个服务,并且可以轻松构建松散耦合的分布式事件驱动服务。架构应用。

以阿里云函数计算为例,通过API网关与函数计算的融合,用户可以快速实现API后端服务。通过对象存储和函数计算的事件集成,函数可以实时响应对象创建、删除等事件,实现以对象存储为中心的大规模数据处理。通过消息中间件的事件集成和函数计算,用户可以快速处理海量消息。通过与阿里云EventBridge集成,无论是第三方的云服务、第三方的SaaS服务,还是用户自建的系统,所有事件都可以通过函数计算快速、便捷地处理。

  • 运维自动化

通过定时触发器,用户可以使用功能快速实现定时任务,而无需管理执行任务的底层服务器。通过云监控触发器,用户可以接收ECS重启/宕机、OSS对象存储流控等IaaS层服务的运维事件,并自动触发功能处理。

具体案例请参考: http://m.smtshopping.cn/case-study.html

3。 Serverless Dev项目诞生的契机和愿景是什么? Serverless Dev和阿里云之前开源的另一个Serverless项目Midway有什么联系吗?

<不嗔>:首先,我们在服务集团内外用户的时候,我们看到工具链是Serverless被用户接受的最大障碍。这主要体现在以下几个方面:

  • a) 开发和运营无服务器应用程序时,体验与现有工具或流程是分离的。对于业务场景复杂的用户来说,他们的不同工作负载通常运行在虚拟机、容器或Serverless等多个平台上。用户更喜欢使用同一套工具和流程来基于虚拟机、容器或 Serverless 进行构建、部署和监控。应用;
  • b) 用户希望工具链能够覆盖开发、测试、构建、部署、分发、监控等各个环节,提供闭环的研发运维体验,而不需要跳出各个控制台产品,或使用多种工具来完成;
  • c) 用户希望同一个工具链可以管理阿里云、腾讯云等不同的公有云Serverless平台,或者本地环境中的应用程序。上述问题导致Serverless在很多场景下并没有显着提升研发效率。

其次,从云原生的发展趋势来看,开发者在构建云原生应用时要解决的问题的范围和复杂度都在不断增加。例如,在构建应用程序时,开发人员仍然需要花费大量精力来处理与业务逻辑无关的细节,包括资源的创建和删除、权限管理等;对于企业级客户来说,除了资源管控之外,还需要保证安全。合规性,比如如何保证敏感数据不被错误授予外部访问权限,VM不被禁止访问公网等等。我们相信在工具层面会有巨大的创新空间。

因此,我们希望根据用户的实际需求和未来趋势,为开发者打造一个工具链,能够帮助用户彻底解决应用开发和运维中的问题,真正连接dev和ops,提高研发效率。我们希望这个工具具有良好的“复杂度扩展性”,这样当问题简单的时候,能够快速上手;当问题变得复杂时,仍然可以使用同一套工具和流程。

<江昱>:虽然Serverless已经发展了很长时间,也不是一个新概念,但Serverless工具链还是相当缺乏。我们不仅意识到这个问题,还和很多用户进行了深入的沟通。我们也非常关心用户在使用Serverless时遇到的问题。最终,我们决定打造一个“开发者视角的Serverless工具链系统”。其目的是让开发者像使用手机一样使用Serverless,给大家更简单、更方便、更快捷的上手体验和实际操作,并能在Serverless项目的整个生命周期中发挥作用。至于和Midway的联系,我觉得是非常密切的,因为Serverless Devs更多的是一个工具级的产品,而Midway则是一个框架级的产品。两者相辅相成,并不冲突。

4。我们看到Serverless Devs的定位是“第一个支持主流Serverless服务/框架的云原生全生命周期管理的平台”。其原创性体现在哪些方面?与业界现有的无服务器服务平台相比有哪些优势?

<不嗔>:与Serverless Framework等流行工具相比,Serverless Devs 有几个明显的区别:

  1. Serverless Devs致力于解决构建、部署、发布、监控/故障排除等应用开发和运维的全流程,为用户提供端到端的闭环开发和运维经验,提高研发效率。其他工具主要解决单个问题。
  2. Serverless应用不仅依赖于计算产品,还依赖于存储、中间件等各种云产品,需要工具来管理各种云产品。未来Serverless Devs将支持阿里云、腾讯云、AWS、Azure、Google等各大云厂商的云产品以及K8S生态中的应用。与Serverless Framework等工具相比,它在资源管理的深度和广度上都具有优势。
  3. Serverless Devs 是开源且开放的。通过基于高级语言抽象能力的组件机制,开发者可以以简单、更高层次、可组合的方式构建复杂的云原生应用。
5。无服务器开发的哪些部分是开源的?选择开源的目的是什么?

<江昱>:Serverless Devs 从命令行工具和应用中心两个主要部分打开了。 Serverless 实际上是一个非常由开发人员驱动的领域。我们开源整个项目,开放整个想法。主要目的是从开发者的角度为开发者提供他们需要的工具,让开发者可以自己定义和构建Serverless工具链。我们也希望通过这种形式,能够和更多的开发者互动,接触更多的Serverless爱好者,和大家一起进行Serverless工作。

6。如果开发人员将其应用程序部署在 Serverless Devs 上,他以后可以将该应用程序转移到其他平台吗?比如转移到其他云服务平台或者本地服务器,转移过程方便吗?

<不嗔>:多云应用迁移涉及很多因素。除了计算平台迁移之外,还包括数据迁移、配置流程迁移等。Serverless Devs的设计理念是帮助开发者统一构建、部署、发布容器或Serverless应用。无论用户使用什么语言(nodejs、python、golang、java)或平台(K8S、阿里云Serverless、谷歌云跑等),研发和操作体验都是一致的,因此Serverless Devs可以简化应用程序迁移到其他应用程序。平台的难度。

7。有句话说“Serverless会阻碍开源服务的创新”,因为很多流行的开源软件无法大规模部署在Faas平台上。毕竟,目前主要的开源软件并不是为无服务器执行环境设计的。 ,尤其是数据系统。未来的趋势是创建更多Serverless原生开源软件,还是将现有的一些主流开源软件迁移到Serverless架构?
?半年后,他们又发表了论文《Cloud Programming Simplified: A Berkeley View on Serverless Computing》,预测Serverless面临的挑战可以得到解决,并将成为云计算的默认范式。目前,Serverless已经成为学术界的研究热点。自2017年以来,相关论文数量每年都成倍增长。

Serverless 论文数量(数据来源:https://m.smtshopping.cn/search?q=serverless

当前学术界/工业界 Serverless 主要研究趋势:

  • a) Serverless流行应用框架,例如Serverless机器学习框架;
  • b) 拓展Serverless编程模型,例如Stateful FaaS,让Serverless计算能够支持更多的应用场景;
  • c) 在云的每个级别进行重构,以适应具有高度动态资源使用的无服务器应用程序。在数据中心层面,通过超高速网络架构将计算和存储分离,将CPU、GPU、FPGA、磁盘甚至内存池化,以获得更好的弹性和资源利用率;在 Serverless 计算平台层面,设计了针对 Serverless 模式高度优化的存储服务,具有高 iops、低延迟、低成本的特点,使得可以使用 Serverless 模式构建分布式系统;
  • d) 性能优化,如GPU、FPGA等异构硬件支持、软硬件协同优化等。可见这些趋势将推动Serverless成为最具创新性的领域。
8。 Serverless架构和一些流行的微服务架构有什么关系? Serverless 会取代微服务架构吗?

<不嗔>:Serverless 和微服务架构不是对立的,而是不同维度的概念。微服务是一种架构模式,以FaaS为代表的Serverless计算平台是微服务的一种实现方式。微服务可以使用FaaS、SpringCloud PaaS平台、K8S+容器或VM来实现。

确定用什么来实现微服务,必须从可靠性、成本、性能、工程效率、安全性、系统迁移难度等维度入手。不同的场景有不同的权衡。目前,在微服务场景中使用Serverless架构最大的挑战是兼容现有的微服务框架,并能够平滑迁移现有的应用程序。为了解决此类问题,阿里云Serverless应用引擎应运而生。兼容Spring Cloud、Dubbo等流行的微服务框架。传统应用可以平滑迁移。它集成了ARMS等阿里云服务,提供开箱即用的可观测能力和时序。伸缩、基于指标伸缩等弹性能力让微服务场景享受到Serverless带来的好处。

9。有网友担心Serverless等云服务的出现会取代很多后端工程师的工作。未来中小型企业似乎只需要聘请前端业务开发人员即可。这种观点准确吗?您能给一些年轻人一些建议吗?后端开发人员提供一些开发建议。

<不嗔>:这种观点是片面的。对于任何技术,你都需要思考它的起源、趋势、优点和缺点,尤其是亲自实践才能做出客观的判断。无服务器并不是一项新技术。阿里云首款云服务对象存储OSS是无服务器存储服务。使用OSS并不会减少后端开发人员的技术开发空间。下图展示了构建灵活、高可用的后端系统需要考虑的因素。只有蓝色虚线框是平台的责任。还有大量其他内容还需要后端开发者设计实现:

无服务器计算只解决对用户来说差异化最小的最基本、最脏的工作,比如基础设施管理。正如目前很少有开发人员基于汇编语言构建应用程序一样,Serverless 也是如此,它希望在云编程时代为用户提供高级语言编程体验。

无服务器开发开源项目:

  • Github地址:https://m.smtshopping.cn/serverless-devs
  • Gitee地址:https://m.smtshopping.cn/organizations/serverless-devs/projects
  • Serverless Devs官网:https://m.smtshopping.cn

受访者介绍

  • 杨浩然(Buhao),阿里云Serverless研发负责人。

2010年加入阿里云,担任阿里云飞天分布式系统核心研发成员。曾担任表存储(NoSQL)和对象存储(OSS)研发经理。推动并深度参与阿里云系统研发和产品迭代的整体发展。过程。对大规模分布式计算、大规模数据存储与处理有非常深入的理解和丰富的实践。现负责阿里云Serverless产品线研发,推动下一代弹性高可用Serverless计算平台的建设,致力于Serverless在中国更好的落地。

  • 江宇

阿里云Serverless产品经理,Serverless Devs项目发起人。

登录后参与评论