云原生应用开发:函数与服务的抉择及相关技术要点
1. 函数与服务的选择
在构建新应用或将现有应用迁移到云原生应用时,首要决策之一是使用容器化服务还是直接采用函数即服务(FaaS)。一般来说,FaaS适用于简单、短期且独立的任务,但如今许多FaaS产品已足够成熟,可用于实现完整的应用。不过,大多数FaaS产品对函数执行时间有限制。
1.1 函数适用场景
函数适用的场景包括:
- 简单并行执行场景 :函数之间无需相互通信,如生成工件、更新记录、Map - Reduce函数和批处理。
- 物联网场景 :用于编排任务,例如消息发送到物联网中心,触发函数对消息进行计算和路由。
- 全FaaS应用 :有些应用完全基于FaaS构建,如Azure Durable Functions或AWS Step Functions可帮助用函数原语构建完整应用,还能编排长时间运行的任务。
1.2 使用函数的考虑因素
使用函数构建完整应用时,需考虑以下因素:
| 考虑因素 | 具体说明 |
| — | — |
| 从单体到微服务的挑战 | 函数通常会被拆分成更小的“服务”,需应对网络通信复杂性等更多挑战。 |
| 函数生命周期有限 | 大多数FaaS产品限制函数执行时间,不适合长时间运行的任务。 |
| 无法使用专用硬件 | 目前没有云服务支持函数利用图形处理单元(GPU)等专用硬件。 |
| 函数无状态且不可直接网络寻址 | FaaS鼓励采用事件驱动的分布式编程
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



