无服务器应用程序开发的最新趋势

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 无服务器计算是一项关键技术,正在重新定义企业构建、消费以及整合云原生应用的方式。“无服务器架构使开发人员能够专注于他们应该做的事情——编写代码,优化应用设计——为业务敏捷性让路。”

无服务器计算已经在主流应用中站稳脚跟,并开始出现在企业组织的技术路线图中。研究公司和业界领袖预测,在 2022 年无服务器的采用将会有更大的发展势头。虽然在存储、计算和网络等基础设施要素方面,无服务器有不同的方面,但是本文主要讨论无服务器应用开发的最新趋势。

随着人们越来越关注将运营方面的工作交给云服务提供商或以平台为中心的解决方案,无服务器架构将作为一种功能即服务(Function-as-a-Service,FaaS)的编程风格(见下图)继续在微服务应用开发中发挥关键作用。无服务器应用开发的最新趋势将继续随着新出现的模式、技术产品和云原生社区的创新而发展。

image.png

无服务器计算是一项关键技术,正在重新定义企业构建、消费以及整合云原生应用的方式。“无服务器架构使开发人员能够专注于他们应该做的事情——编写代码,优化应用设计——为业务敏捷性让路。”

——Gartner:《CIO 无服务器计算指南》(CIO’s Guide for Serverless Computing)

趋势一:抽象是无服务器应用开发的新口号

无服务器架构在开发者中普及了 FaaS 的编程风格;它通过独立构建和部署的功能来帮助开发者专注解决核心业务问题,这些功能对某一事件作出响应,运行业务流程,在此过程中生成其他事件,并将规模缩小到零。

——ThoughtWorks Technology Radar

从历史上看,无服务器产品已经被亚马逊云科技 Lambda、Microsoft Azure Functions、Google Cloud Functions、Alibaba Cloud Function Compute 和其他云提供商等无服务器平台普及推广。这些平台提供了对核心基础设施的抽象,并与云托管服务本地集成。

随着多云部署的兴起,下一个趋势是在公共云服务提供商的产品之上建立一个抽象层(见下图)的演变。这将有助于将业务服务与云提供商的专有技术脱钩,并且可以根据服务的具体要求灵活选择无服务器平台的提供商。

提供一个无服务器应用开发层作为另一个抽象层,在构建基于功能即服务的应用时提供一个供应商中立的接口,从而有助于应用开发生命周期。

企业可以组建一个平台工程团队构建无服务器应用开发层,也可以使用开箱即用的解决方案。

image.png

无服务器抽象层在无服务器平台之上提供开发者平台

趋势二——容器和无服务器作为基础平台

容器和无服务器将成为应用平台的基础设施。

——Gartner:《2022 年云计算和边缘计算规划指南》(2022 Planning Guide for Cloud & Edge Computing)

与无服务器功能相比,容器被认为是更粗粒度的,并被当作一种替代选择。

最近的趋势是两个世界力量的结合,因为无服务器平台已经开始支持容器来打包和部署应用程序代码(主要的无服务器提供商及其对容器的支持见下表)。

趋势三:开源在构建无服务器平台中的崛起

开源云原生开发以服务网格和无服务器为目标。

——Forrester Research

虽然亚马逊云科技 Lambda 使用其专有技术来实现无服务器,但新兴的参与者正在使用开源技术来构建无服务器平台。

这有助于区分他们作为提供商中立的能力,以及他们对更加开放和透明的倾向。此外,在混合云部署模式中,它有助于为使用相同开源技术的企业内部无服务器平台建立一个一致的方法。

image.png

云服务提供商的无服务器平台

与可观察性相关的功能(OpenTracing、OpenTelemetry、Grafana 和 Jaeger)也被无服务器平台广泛集成。

开源为无服务器的企业级混合云平台提供了许多选择。主要框架有:Apache OpenWhisk、OpenFaaS、Knative、Fn Project、Kubeless(由 VMWare 归档)和 Fission。

image.png

无服务器的开源框架

趋势四:无服务器作为端到端应用开发平台的推动者

我们预测 2022 年是无服务器最终达到临界质量的一年,接近主流接受度,成为目前软件开发的最佳实践模式。

—2021 年 InfoQ 《趋势报告》(Trends Report 2021)

不仅主要的云服务提供商(亚马逊云科技、Azure 和 Google Cloud)在推动无服务器的采用,而且新的参与者也在简化无服务器的采用。有趣的是,这些参与者中的大多数可能在幕后使用公共云服务提供商,或者通过在供应商之上添加抽象层,让最终用户选择云供应商。

与 2021 年类似,今年将继续看到新的功能或产品发布,如:亚马逊云科技扩展 SAM 平台(SAM 加速等新功能),Azure 扩展其无服务器平台,以及 Cloudflare 扩展 JAMStack 的 Workers 和 Pages 等无服务器功能。

这些关键研究表明,表明提供数据库、应用框架、GraphQL 等能力的技术服务提供商正专注于推出具有无服务器产品的端到端应用开发平台的趋势。

Akka Serverless(2021 年 6 月推出):使用托管 Serverless 平台构建实时应用程序。

MongoDB Realm(2021 年 6 月推出):利用 MongoDB 数据库作为一个集成平台来构建应用程序。

Nimbella Service Platform 被 DigitalOcean 收购,他们宣布将在 2022 年推出测试版产品。

Cloudflare 通过 Cloudflare Workers 提供无服务器计算服务,并不断建立新的功能,如 Workers Durable Objects,这些新功能在 2021 年普遍用于构建有状态的无服务器应用程序。

趋势五:边缘的无服务器将使计算更贴近终端用户

无服务器边缘计算平台利用 5G/6G 的毫秒延迟和人工智能优化,将促进远程应用的云连续。

——IBM 无服务器预测

新的应用程序将开始被设计为利用边缘的计算、存储和网络能力。这将涵盖云/边缘连续体中应用程序的整个生命周期。

随着使用边缘计算的延迟降低(<1-5 毫秒),无服务器应用的性能、可扩展性和可用性预期将更高。突发性工作负载(遵循工作负载模式来处理突然和意外的负载高峰)将继续成为无服务器应用程序的执行趋势。

其他有趣的观察和发现

根据 Datadog 的《无服务器状态》(State of Serverless)、IBM 和 IEEE Research 的结论,亚马逊云科技 Lambda 仍然是使用最广泛的功能即服务(FaaS)产品。

根据 IEEE 对 89 个以上应用程序的数据研究,典型的无服务器应用程序使用托管云服务,具体趋势表明在以下领域的使用情况:云存储(61%)、云数据库(约 47%)和云消息传递(约 38%)。

image.png

托管云服务的无服务器应用程序使用情况

Python 和 JavaScript 是无服务器应用开发中最流行的语言(约 30%~40%),其次是 Java(约 10%~15%)、C/C++(约 10%~15%)、Golang(约 4%~5%)和 Ruby(约 1%~2%)。

无服务器应用主要用于 API、流/异步处理、批处理作业、工作流处理和操作任务。

无服务器框架是使用亚马逊云科技 CloudFormation 部署亚马逊云科技 Lambda 应用的主要方式,其次是亚马逊云科技 CloudFormation、亚马逊云科技 CDK、亚马逊云科技 SAM。

总而言之,无服务器将继续成为云供应商的重点领域,这些趋势表明,新的创新产品将继续在以下领域出现:功能即服务、后台即服务、数据库等领域即服务、存储即服务、Kubernetes 和容器编排即服务、机器学习即服务等等。

image.png

无服务器应用程序开发的最新趋势摘要

参考:

A year with serverless — BBC Online

Top serverless frameworks to watch in 2021 (The Chief I/O)

The State of Serverless (by Datadog)

OWASP Serverless Top 10 Security Risks

The Forrester Wave: Function-As-A-Service Platforms, Q1 2021

A CIO’s Guide to Serverless Computing (Gartner)

原文链接:

THE LATEST TRENDS IN SERVERLESS APPLICATION DEVELOPMENT 

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
2月前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
93 0
|
23天前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力
优化SSR应用以减少服务器压力,可采用代码分割、缓存策略、数据预加载、服务端性能优化、使用CDN、SSR与SSG结合、限制并发请求、SSR与CSR平滑切换、优化前端资源及利用框架特性等策略。这些方法能有效提升性能和稳定性,同时保证用户体验。
|
2月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
78 2
|
2月前
|
监控 关系型数据库 Serverless
探索后端技术:构建高效、可靠的服务器端应用
本文将深入探讨后端开发的核心概念和关键技术,从服务器架构到数据库管理,再到安全防护,为读者提供全面的后端技术指南。无论是初学者还是经验丰富的开发者,都能从中汲取灵感,提升自己的技术水平。
|
27天前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
1月前
|
关系型数据库 API 数据库
后端开发的艺术:从零到一构建高效服务器
在数字化时代,后端开发是支撑现代互联网应用的基石。本文旨在探讨后端开发的核心概念、关键技术以及如何构建一个高效的服务器。我们将从基础的编程语言选择开始,逐步深入到数据库设计、API开发和性能优化等关键领域。通过实际案例分析,我们将揭示后端开发的复杂性和挑战性,同时提供实用的解决方案和最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启发。
|
1月前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
61 1
|
1月前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
2月前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力?
如何优化 SSR 应用以减少服务器压力?
|
2月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。