【译】Serverless架构 - 4

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 原文: https://martinfowler.com/articles/serverless.html状态当使用本地(机器/实例绑定)状态时FaaS函数有很严格的限制。

原文:

https://martinfowler.com/articles/serverless.html

状态

当使用本地(机器/实例绑定)状态时FaaS函数有很严格的限制。简单说,你应该假设对于任何函数调用,你创建的进程内或主机状态都不会对后续任何调用生效。这状态包括内存和要写入到本地磁盘的。换句话说从部署单元的角度看FaaS函数是无状态的。

这对应用架构有极大影响,尽管不是唯一的因素 - ‘12因子应用’概念有同样的限制 http://12factor.net/processes

这个限制有什么可以代替的?正常来说表示要么FaaS函数是天生无状态 - 他们对输入提供纯函数变换 - 要么他们使用数据库, 跨应用缓存(如Redis),或网络文件存储(如S3)将跨请求的状态存储起来以备后续的处理请求时需要用来做输入。

执行周期

FaaS函数通常受限于每次调用可以允许运行的时间。目前AWS Lambda函数不允许运行超过5分钟,如果超过会被终止。

这意味着某些长执行周期的类如果不进行重构是不适合在FaaS函数中运行的,比如你可能需要创建很多不同的FaaS函数协调器,在传统环境中你可能只有一个有一个长周期的任务同时做协调和执行。

启动延迟

目前你的FaaS函数需要多长时间响应请求取决于很多因素,可能会在10ms到2分钟。这听起来很糟,但让我们具体点,用AWS Lambda作为例子。

如果你的函数不大(少于一千行代码)并用Javascript或Python实现,那么运行的开销应该不会超过10-100ms。更大的函数可能会要更长的时间。

如果你的函数使用JVM上的实现当JVM启动时你可能偶尔会看到较长的响应(大于10秒)。但是这只会发生在以下场景:

  • 你的函数进程不经常处理时间,调用的时间间隔大于10分钟。
  • 你的流量出现高峰,比如正常你每秒处理10个请求但突然在10秒内每秒100个请求出现。

这些情况可以用比较丑陋的技巧 - 每5分钟ping以下你的函数保证它的存活来解决。

这些问题是否值得关注?这取决于你应用的流量图形。我的前团队有一个用Java实现的Lambda用来处理亿级异步消息/天,他们不关心启动延迟。这说明如果你要写一个低延迟的交易引用你肯定不会想使用FaaS系统,无论你用什么语言实现。

无论你觉得你的应用是不是有这个问题,你应该用生产环境的负载来测试实际性能。如果你的case现在还不行,你可以在几个月后再测试一下,因为这是FaaS供应商的主要开发领域。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
23天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第18天】Serverless架构,即无服务器架构,是一种新兴的云计算模式,让开发者无需管理服务器即可构建和运行应用。本文探讨了其核心概念、优势、挑战及最佳实践,强调了按需付费、自动扩展和开发效率等优点,同时也指出了冷启动、状态管理和调试监控等挑战。
|
15天前
|
机器学习/深度学习 监控 Serverless
探索Serverless架构:云计算的新前沿
【10月更文挑战第26天】本文探讨了Serverless架构作为新兴的云计算范式,如何改变应用的构建和部署方式。文章介绍了Serverless的核心概念、优势和挑战,并提供了开发技巧和实用工具,帮助开发者更好地理解和利用这一技术。
|
15天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
51 1
|
18天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第23天】Serverless 架构是一种新兴的云计算范式,允许开发者构建和运行应用程序而无需管理服务器。本文深入探讨了 Serverless 的核心概念、优势、挑战及最佳实践,帮助开发者更好地理解和应用这一技术。
|
19天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
41 1
|
19天前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
29 1
|
23天前
|
机器学习/深度学习 监控 Serverless
无服务器架构(Serverless)
无服务器架构(Serverless)
|
30天前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
|
28天前
|
运维 监控 Serverless
利用Serverless架构优化成本和可伸缩性
【10月更文挑战第13天】Serverless架构让开发者无需管理服务器即可构建和运行应用,实现成本优化与自动扩展。本文介绍其工作原理、核心优势及实施步骤,探讨在Web应用后端、数据处理等领域的应用,并分享实战技巧。
|
30天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
57 3

热门文章

最新文章

相关产品

  • 函数计算