作者:DREAM2502930781 | 来源:互联网 | 2024-11-27 10:22
在过去几年中,Serverless 成为了云计算领域的一大热点,其提供的弹性伸缩、快速开发和无运维等特性吸引了众多技术团队的关注。酷家乐技术团队自2019年底开始探索并实施基于 Knative 的函数计算基础设施,同时自主研发了一款以 Node.js 为主要语言的 FaaS 产品,旨在提升公司内部业务的开发效率。
### FaaS 平台的理解
随着云计算技术的发展,服务模型经历了从 IaaS 到 CaaS、PaaS,再到 FaaS 的演变。FaaS 作为一种新兴的服务模型,以函数的形式提供服务,成为当前 Serverless 架构的主要表现形式。在这种模型下,用户只需关注函数逻辑的编写,无需关心复杂的基础设施建设和应用维护。
### FaaS 带来的业务收益
FaaS 的最大优势在于能够快速启动业务,降低运维和维护的成本。传统的业务开发模式存在多种挑战,如技术栈不统一、服务端知识壁垒高、框架设计复杂等。通过 FaaS,这些问题得以有效解决:
- 统一了业务组间的实现方式,加快了业务切换速度
- 消除了服务端技术障碍,允许使用熟悉的语言进行业务逻辑开发
- 提供了“无框架”概念,用户只需了解函数的输入和输出
- 提供了一站式的部署、发布和监控服务,提升了系统的稳定性和可靠性
### 酷家乐 FaaS 平台的落地方式
#### FaaS 基础设施
经过对比分析,酷家乐选择了 Kubernetes + Knative + Istio 的组合来搭建应用级 Serverless 平台。该平台分为用户层和平台层,其中用户层提供了 serverless-cli 工具和管理平台,支持本地开发、调试和发布等功能;平台层则负责请求转发、函数运行时管理和资源编排。
#### FaaS 前台架构
酷家乐 FaaS 前台架构支持多函数的承载,允许在一个代码仓库中管理多个函数,支持独立部署、聚合部署和混合部署等多种部署方式。这种设计不仅提高了代码的组织性和管理效率,还适应了不同业务场景的需求。
#### FaaS 研发流程
与传统研发模式相比,FaaS 模式简化了技术选型和资源申请的步骤,使开发者能够更加专注于业务逻辑的实现。通过 faas.yml 文件,用户可以灵活配置函数的路由、部署选项和公共插件。
### 酷家乐 FaaS 平台的落地场景
目前,酷家乐已成功落地40多个在线函数服务,主要应用于创新和边缘业务。这些应用场景主要包括在线 API 聚合和离线计算任务,Node.js 语言因其灵活性和易用性成为了主要的开发语言。
### FaaS 与传统应用的思考
尽管 FaaS 带来了许多优势,但也存在一些挑战。例如,FaaS 可能会增加系统的远程调用次数,导致资源消耗增加。因此,在选择 FaaS 时,需要综合考虑业务规模、资源成本、跨组合作和容错能力等因素。
### 未来酷家乐 FaaS 实践方向
酷家乐看好 SFF(Serverless for Frontend)架构,认为它可以显著提升前端开发的效率,减少前后端的沟通成本。未来,酷家乐将在 SFF 方向上进行更多的探索和实践,进一步优化内部业务的开发流程。
[原文链接](https://tech.kujiale.com/kujiale-serverless-faas-experience/)