正能量网站推荐不需要下载,网站开发项目流程,手机搭建网站软件下载,快速学习网站制作简介#xff1a; 本文是对 Datadog 最新的一份 Serverless 报告的解读#xff0c;欢迎大家留言讨论。 每项新技术的产生和演进过程中#xff0c;都会有他自己的拥趸#xff0c;也会有持怀疑论者。Serverless 的美在于他可以尽可能的解放客户在基础设施上的投入#xff0c;…简介 本文是对 Datadog 最新的一份 Serverless 报告的解读欢迎大家留言讨论。 每项新技术的产生和演进过程中都会有他自己的拥趸也会有持怀疑论者。Serverless 的美在于他可以尽可能的解放客户在基础设施上的投入只需专注于自己的业务让技术产生更多商业价值同时客户只需要真正为使用量付费无须让计算资源常驻。
“ Datadog 上一半的 AWS 客户使用了 Lambda80% 的 AWS 容器客户使用了 Lambda。”
是的这个数据来自 Datadog 去年的一份调研报告客观反映了 Serverless 在海外市场的落地进程。一年之后Datadog 发布了第二份 Serverless 调研报告我们来一起看看 Serverless 在海外的最新进展这对于无论是已经投入建设 Serverless还是仍处于观望状态的决策者和使用者而言也许都能获得一些参考。
观点
观点一Lambda 的调用频率比两年前高 3.5 倍运行时长达 900 小时 / 天
Serverless 的使用深度如何来定义
自 2019 年以来一直在使用 Lambda 的企业已大大提高了其使用率。平均而言到 2021 年初这些公司每天调用函数的次数是两年前的 3.5 倍。此外在同一组 Lambda 用户中每家企业的功能平均每天平均运行达 900 个小时。
普通云服务器是按服务器的租用配置和租用时长进行收费的其中租用配置是依据 vCPU 和内存定价。
而函数计算则不同按使用过程中的调用次数和函数运行时长收费的。因此调用次数和函数运行时长是衡量客户使用 Serverless 深度的指标。报告中未提供每天调用次数绝对值的信息但我们可以依据每天运行 900 小时运行时长的数据对客户在 Serverless 的消费做一个区间预估。
以阿里云函数计算的收费标准来计算使用预付费模式
每 1 GB 计算力的实例运行 1 秒所需的费用是 0.00003167 元以内存规格 1GB每天运行 900 小时来计算预计将消费 102.6 元年度消费是 3.7 万再搭上存储、网络、安全、数据库等其他云产品的消费已经是一个中型企业的云上支出了。此外函数的调用次数所产生的费用通常不会太多尤其是 Python 这类和 AI 建模相关的函数应用阿里云函数计算每天调用 100 万次的费用是 13.3 元。
观点二Lambda 执行时长的中位数是 60 毫秒仅为一年前的一半
事件驱动架构下执行时长是一个关键生产因素
函数的执行时长是 FaaS 领域的新概念因为 FaaS 是事件驱动架构实际触发时才会调用计算资源执行函数应用并进行计费函数应用执行时间越长费用就会越高。不同于函数计算普通云服务器则是按租用服务器来计费虽然普通云服务器也提供自动弹性伸缩的功能但由于本身不是事件驱动架构导致伸缩规则上是受限的而且普通云服务器是按秒计费而业内的 FaaS 产品例如 Lambda、阿里云函数计算都已经支持按毫秒计费计费颗粒度越细计算成本的优化空间就越大。
从数据结构上我们可以看到越来越多的 AWS 客户正在遵循官方提供的成本优化最佳实践来缩短函数的执行时长从而进一步优化计算成本最大程度发挥 Serverless 的成本优势。
下图中函数执行时长曲线的尾巴很长这表明 Lambda 不仅支持短期作业而且已经在支持计算密集型的用例。虽然此份报告没有展示哪些计算密集型的业务场景使用了 Lambda但从国内云厂商宣传的案例看主要是音视频处理、AI 建模类的应用。 观点三除 AWS Lambda 外Azure Function 和 Google Cloud Function 的增长也很迅速
百家齐放是行业走向成熟的必经阶段
AWS Lambda 是最早的 FaaS 产品Azure 和 Google 紧随其后推出了 FaaS 产品他们的增速可能得益于整个行业的成熟度从一年前只有 20% 的 Azure 客户使用 Azure Function一年后这一数据已经增长到了 36%而 Google 已经有 25% 的云上客户在使用 Cloud Function 了。 该部分报告中引用了 Vercel 这个案例
Vercel 是一个很实用的网站管理和托管工具可以快速部署网站、App甚至不需要购买服务器、域名、安装与配置 Nginx、上传网站文件、添加 DNS 解析项、配置网页证书最重要的是个人使用是永久免费。
Vercel 托管的都是一些耦合度不高的应用。很显然 Vercel 的这一商业模式充分利用了 Serverless 技术的成本优势来尽可能降低免费个人用户带来的服务器成本通过函数应用来处理来自服务端渲染、API 路由等的请求。在过去的一年里Vercel 每月的服务器调用次数从 2.62 亿次增加到每月 74 亿次增长了 28 倍。
Vercel 官网_https://vercel.com/_
观点四AWS Step Functions 是 Lambda 的最佳伴侣平均每个工作流包含 4 个函数并逐月上升
函数应用的编排功能正在拓展函数应用的边界
一个完整的业务逻辑通常不是一个函数应用就能完成的需要用到多个函数应用甚至还涉及到弹性计算、批量计算等计算单元。这时候通过工作流的编排能力对各个计算任务进行顺序、分支、并行等方式的分布式编排可以简化繁琐的业务拼接带来的代码工作还能可视化监控整个业务流程中各个执行环节的状态一举两得。AWS Step Functions 就提供了这样的功能。
报告显示平均每个 Step Functions 工作流包含 4 个 Lambda 函数并且呈现逐月增长的趋势。说明越来越的客户正使用工作流来处理越来越复杂的业务逻辑。其中执行时间在 1 分钟内的工作流占比 40%但也不乏一些执行时长多于 1 小时甚至超过 1 天的工作流这些长时间执行的工作流以 AI 建模为主。
该部分报告中引用了 Stedi 这一案例这家企业是在 B2B 交易的交易领域提供结构化消息发送的服务例如营销邮件的推送等服务这类业务场景具备事件触发、短时间需要调用海量目标邮箱邮箱的特点Serverless 工作流就可以很好的满足了客户在成本和开发运维效率上进行优化的诉求。
Stedi 官网_https://www.stedi.com/_
观点五四分之一的 AWS CluodFront 客户使用 Lambda Edge
边缘正成为 Serverless 的新市场
Lambda Edge 是 Amazon CloudFront 的一个功能它可让客户在靠近应用程序用户的地方运行代码从而提高性能降低延迟。使用 Lambda Edge客户无需在全球多个地方预置或管理基础设施只需按使用的计算时间付费代码未运行时不产生费用。
相当于在边缘的场景下网络将 Serverless 的计算能力一起提供给客户而无须从云端调用算力提高了那些对延迟敏感的边缘业务的客户体验例如物联网场景下视频监控和智能分析、业务监测和分析等任务。
报告显示四分之一的 Amazon CloudFront 客户使用了 LambdaEdge其中 67% 的客户的函数执行时长不到 20 毫秒说明这部分应用对延迟非常敏感这类的边缘业务需求越多Serverless 在边缘端的潜力就越大。
观点六超过一半的客户函数预留实例的资源使用率不到 80%
冷启动是事件驱动架构下一个无法回避的命题
尤其是在 Java/.Net 的编程框架下应用的启动会更慢因为 Java 需要初始化其虚拟机 (JVM) 并将大量类加载到内存中然后才能执行用户代码。业内提供了很多优化冷启动的思路例如提供函数预留实例或者通过按需加载和更高效的存储和算法来提升容器镜像的拉取速度从而优化冷启动速度。
本质上讲函数预留实例是避免冷启动的一个见效很快的方式但他并没有从根本上解决冷启动的问题资源预留的越多浪费的就越多这和 Serverless 主张的按需使用是背道而驰的。因此今年的报告非常关注客户在函数预留实例的使用率情况。
报告显示57% 使用函数预留实例的客户用了不到预留实例中 80% 的资源其中超过 30% 的客户仅用了不到 40% 的资源使用率达 80%-100% 的客户超过 40%那么这部分客户应当仍然会遇到冷启动的问题。因此不断优化业务的预留实例设计仍是厂商和客户需要共同面对的命题相关的最佳实践会有较高的指导意义。感兴趣的朋友可以看看阿里云函数计算的这份最佳实践。
观点七开源无服务器框架是部署函数应用的主要方式
应用拆的越细部署难度越大
Serverless 架构下手动部署几个函数应用可能不太复杂一旦当应用扩展到几十、几百个的时候应用的部署难度就会被成倍放大此时通过一些部署工具来部署可以提高部署效率。正如 Kubernetes 是用来自动部署、扩展和管理容器化应用程序的在管理容器的过程Kubernetes 已经是必不可少的工具。
报告显示80% 以上的客户使用 Serverless Framework 来部署和管理函数应用虽然报告未给出原因但大体离不开 Serverless Framework 的易用性、开放性和社区属性报告预计基础设施即代码类的部署工具在大规模部署无服务器应用程序方面将扮演更重要的角色AWS 自研的三个部署工具vanilla CloudFormation、AWS CDK 和 AWS SAM 的使用率分别是 19%、18% 和 13%。存在同一个客户同时使用两个或多个工具因此使用率叠加后高于 100% 回到国内阿里云、百度云、华为云、腾讯云均提供了自家闭源的部署工具腾讯云和 Serverless Framework 合作开发了 Serverless 应用中心阿里云则是在去年开源了 Serverless Devs提供函数应用的部署、运维和监控此外国内另一款提供 Node.js 开发态框架的开源项目 Midway已经获得 4k 的 star相信随着参与 Serverless 的开发者的增加国内开源工具生态会越发活跃。
观点八Python 是最流行的 Lambda 运行时尤其是在大型环境中
Serverless 天然支持多语言的开发框架。那么问题也来了哪类编程语言最为流行呢
报告显示58% 的用户使用 Python、Node.js 则占据了 31% 的份额Java、Go、.NET Core 和 Ruby 的份额均未超过 10%。但考虑到不同厂商各自的特点阿里云上的 Java 份额可能会更高些Azure 上 .NET 的客户会更多些。
有趣的是在小型的 Lambda 运行环境中Node.js 的份额高于 Python随着函数规模的增长Python 就越来越流行而在企业级组织中Python 的使用频率是 Node.js 的 4 倍如下图
雷卷在阿里云内网分享了报告中编程语言部分的分析大型企业在大数据、AI 等方面使用 Python 比较多而且他们使用的 Lambda 量也比较大所以在 Lambda 的数量上 Python 有绝对的优势Node.js 应用用不了那么大的运行期 (多核 CPU 和大内存通常都是小型实例另外可能是个人的 Node.js 开发者通常也会选择小型的 Lambda 环境。
此外各类编程语言的版本的使用分布如下依次递减Python 3.x、Node.js 12、Node.js 10、Python 2.7、Java 8、Go 1.x、.NET Core 2.1、.NET Core 3.1。
总结
整体上相比去年国外 Serverless 的使用群体在迅速扩大函数执行时长不断增加使用方式也越加成熟开发者工具也更佳开放。在国内Serverless 已经不在局限一些离线任务或低耦合性应用已经有不少企业客户将 Serverless 应用于生产环节的核心链路上例如世纪联华将交易系统、会员系统、库存系统、后台系统和促销模块等核心应用均部署在函数计算上来减轻客户在基础设施上的投入闲鱼已经开始实践对传统巨型应用的 Serverless 化改造去攻克在 Functions 之间代码复用、对函数的依赖做统一升级等业内难题。应用的改造需要时间和窗口期相信会有越来越的企业客户选择 Serverless 来解放双手。
原文链接
本文为阿里云原创内容未经允许不得转载。