本篇教程,我们将共同了解如何将AWS Lambda函数(Node.js)迁移至OpenFaaS。
为什么要迁移至OpenFaas?
云函数服务确实优点很多,不仅成本低廉,而且适合大部分用例的实际需求。但在另一方面,OpenFaaS相较于云函数服务也拥有不少独特优势。
下面,我先聊聊自己在使用OpenFaaS中的具体感受:
- 可以在自有基础设施上托管函数以满足本地化标准。
- 确保函数托管在符合用例特性的资源之上(包括CPU、内存以及GPU密集型任务)。
- 可以使用现有Kubernetes或者Docker Swarm集群部署OpenFaaS。
- 对TTL没有任何限制,可以长期保持函数运行。
- 确保用户不致锁定于特定云服务供应商处。
- 拥有一整套函数库以及为其提供贡献的活跃社区,能够为项目提供巨大助益。
- 默认提供自动规模伸缩功能。
- 支持一系列编程语言选项,甚至能够使用bash脚本,极大提升使用体验!
- 极易学习,而且使用感受也非常友好。
- Cli客户端与faas-cil的存在又让OpenFaaS的使用难度进一步降低。
- Grafana、Prometheus以及ALertManager可在框架中开箱即用,允许大家轻松查看函数指标并设置警报机制。
根据实际体验,我之前已经建立起一套Docker Swarm集群,其中的资源由云服务供应商管理,同时拥有监控、高可用性以及自我修复机制。
现在,我可以在这套集群设置之上使用OpenFaaS,而且完美匹配实际用例。
架构
终极目标是将AWS Lambda Function迁移至OpenFaaS: