为什么很多工程师不了解Serverless

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 为什么很多工程师不了解Serverless


很长一段时间没有更新,因为前阵子一直在研究云原生相关的项目,包括比较热门的Serverless,我们主要在关注Knative。后面我们会更新不少Knative的文章,还会上线Knative中文社区,并把它作为我们的云原生社区,把大家聚集起来,共同研究云原生技术。




一、有关对Serverless的批评


绝大多数对Serverless的批评针对的是速度问题。更具体地说,无服务器应用程序的主要缺点,也就是众所周知的冷启动 问题——增加的延迟,你的代码需要在底层云服务完成分配计算资源,拉取代码或容器映像,安装额外的软件包并配置环境等一系列步骤完成后,才能启动执行。

优先考虑执行速度的工程师给人的印象是,关于整个应用程序生命周期管理的最终成功指标是我们的代码执行任务完成的速度。

作为IT工程师,批评者们看到了有关可维护性以及通过利用技术快速可靠地提供业务价值的能力方面的实际问题,但我不确定这种指标是否正确地衡量了最重要的事情——实现价值的时间,开发周期的速度,易于维护,为最终用户保持较低的成本,通过促进无缝的IT运营来降低运营中断的风险,并最终分配我们的大部分工程时间来妥善解决实际的业务问题,而不是花在配置和管理服务器上。



二、Serverless的真正好处


如果你对应用程序执行速度的延迟严苛到不能接受偶尔200毫秒的延迟,那么无服务器对于你来说确实不是好的选择。但是我们不能因此否定无服务器的重要价值,每个人都需要自己决定用例中可接受的延迟时间。

无服务器是管理IT基础架构的一种极具成本效益和高效的方式,对于可能没有数万元用于闲置资源的IT部门以及一支专门的支持工程师24/7维护团队的IT团队特别有利。

Serverless的低成本可能胜过任何弊端

在我所看到的大多数用例中,当仅考虑实际的计算成本时,无服务器的成本要比自托管资源便宜几个数量级。但是无服务器真正最大化的节省成本,在于无服务器显著地减少了操作、扩展和维护基础架构所需的时间(总拥有成本,简称TCO)。事实是,维护基础架构的全职工程师团队比任何无服务器资源的成本都要高得多。

我并不是在暗示每种情况下无服务器选项总是便宜。如果你的应用会持续收到数亿个请求,如果你的工作负载非常稳定,并且如果你有足够的工程师可以监视和扩展所有这些资源,那么使用自我管理的基础架构确实可能会更好。

冷启动是配置和预算的问题

回到成本问题,冷启动问题在很大程度上取决于您愿意花费多少以及如何配置无服务器资源。

如果您愿意支付额外的费用,则有许多缓解冷启动问题的方法,例如利用预热的实例(预配置的并发性)或故意发出更多的请求虚假请求以确保您的环境保持温暖。通过使用诸如Dashbird的监视平台,您甚至可以收到有关功能中发生的任何冷启动的通知,从而帮助您优化无服务器资源。在下图中,您可以看到在29个调用中,我们可以观察到一个冷启动,这使总执行时间增加了大约180毫秒的延迟。

Dashbird的可观察性功能有助于识别和防止冷启动

您可以为任何冷启动配置Slack或电子邮件警报,以了解它们发生的频率。

Dashbird中设置冷启动警报

改善Lambda函数延迟的技术

您可以通过适当地利用上下文重用来减少无服务器功能的延迟。腾讯云冻结并存储Lambda的执行上下文,即handler功能外部发生的所有事情。如果在相同的15分钟内执行了另一个功能,则可以重用冻结的环境。这意味着,如果您指定耗时的操作(例如连接到Lambda处理程序外部的关系数据库),则将获得显着更好的性能。

您的工作负载可接受什么延迟?

最终,最好是问自己,用例可接受的延迟时间是多少。当谈到冷启动引起的延迟时,我们通常争论的是毫秒。在我作为数据工程师的工作中遇到的所有用例(也在构建后端API)中,日常业务中的延迟都不明显。

最后,诸如阿里云的无服务器Kubernetes服务之类的平台使您可以在单个Kubernetes集群中混合无服务器和非无服务器数据平面。这种混合使您能够在非无服务器数据平面上运行关键任务的低延迟工作负载,而其他工作负载(例如批处理)可以由无服务器数据平面处理,从而获得最佳性能。

Serverless是关于“ NoOps”和可扩展性

无服务器服务使您可以更快地为企业提供价值,因为云提供商可以处理IT运营,即配置和扩展计算集群,安装安全补丁和升级,以及解决硬件崩溃和内存问题。这使您有很多时间可以回头,可以利用它们更好地为最终客户提供服务。到底最重要的不是吗?

无服务器背后的自动化节省了高技能工程师的时间,因此他们可以专注于解决业务问题,而不是管理集群。它允许将IT运营的工作分担给云厂商的DevOps专家,他们可能比该星球上的其他任何公司都拥有更多的管理计算专业知识。

从Serverless中受益匪浅的用例

想象一下,您刚刚成立了一家初创公司。最初,您可能不需要大量的资源,并且可能只有一个开发人员。无服务器模式允许您从小规模开始,并随着按需付费模式的发展壮大,自动扩展资源。

同样,可以从无服务器中受益匪浅的另一个群体是可能没有大型IT部门的小型企业。只需一名专业的DevOps工程师(而不是他们的整个团队)就能管理整个应用程序生命周期,这是无服务器的巨大优势。

如果您的工作量本质上是季节性的,那么无服务器也是一个不错的选择。例如,如果您经营一家电子商务公司,则可能会在双11和节日期间遇到季节性高峰。无服务器基础架构使您可以在这种情况下适应计算。

而且某些事件根本无法预测。想象一下,您一直在网上商店出售洗手液,消毒剂,口罩和类似物品,然后发生了全球性大流行的瘟疫,现在每个人都需要您的产品。无服务器基础架构可在任何情况下为您提供任何规模的扩展。

代码速度与开发周期的速度

除了代码执行速度外,我们还应该考虑开发速度。在许多情况下,无服务器微服务范例可加快开发周期,因为从设计上讲,它鼓励使用更小的单个组件,并使您彼此独立地部署每个服务。

如果无服务器使您能够快速向利益相关者交付应用程序的第一个版本,并在开发周期中加快迭代速度(同时降低成本),那么由于偶尔的冷启动而导致增加的几毫秒的延迟,似乎并不是那么重要的。



三、对Serverless的结论


总体而言,没有一个万能的解决方案,因为我们不能期望任何技术能在所有用例中使用,执行速度最快,成本极低,而又不存在任何缺点(例如偶尔的冷启动)。

我认为,对于一项技术,我们不应该只看到它的缺陷,而应该关注技术设计中至关重要的方面。从这个意义上说,Serverless确实是有用并且重要的,如果你知道何时以及如何使用它。


文丨Soundhearer

图丨来源于网络


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6月前
|
存储 弹性计算 Cloud Native
1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效
为应对挑战,语势科技采用云工作流CloudFlow和函数计算FC,实现数据处理流程的高效管理与弹性伸缩,提升整体研发效能。
65051 5
|
2月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
144 13
|
3月前
|
机器学习/深度学习 机器人 Serverless
FaaS 的应用场景
FaaS 的应用场景
|
3月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
9天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
37 1
|
13天前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
26 1
|
24天前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
|
24天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
56 3
|
26天前
|
运维 Serverless 数据处理
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现出显著优势,包括加速研发交付、降低成本、零运维成本、高效资源利用、自动扩展、实时数据处理及快速原型开发,为高并发、动态需求场景提供高效解决方案。
47 1
下一篇
无影云桌面