阿里云函数计算软件产品提供函数计算平台产品安装手册,并协助您完成产品部署。

架构说明

函数计算是由阿里巴巴完全自主研发的企业级分布式Serverless计算平台,具有事件触发、实时伸缩、高可用、高性能等特点。

通过函数计算,您无需再管理服务器等基础设施,只需编写代码并上传。函数计算会为用户准备好计算资源,以弹性、可靠的方式运行代码,并提供日志查询、性能监控、报警等功能。函数计算的总体设计思想包括以下几个方面:

  • 采用分布式集群架构
  • 采用数据分布和负载均衡技术实现系统的高性能和可伸缩
  • 采用基于etcd的多副本技术实现系统的高可用
  • 采用基于消息队列的技术实现可靠的异步调用
  • 高性能
  • 高可靠性
  • 水平伸缩能力
  • 平滑版本升级
  • 支持虚拟机、裸金属、容器、K8s等多种计算资源池

集群架构如下所示。

fc_cluster_architecture

如图所示,一个函数计算集群包括元数据存储、负载均衡和函数计算系统组件。其中系统组件包括API服务、资源调度、异步事件分发和函数执行引擎四个主要模块。函数计算提供的API分为元数据操作和函数调用。元数据操作提供函数的增删改查等功能。在函数调用上,函数计算支持同步调用和异步调用两种模式,分别对应在线服务场景和离线任务场景。

部署说明

函数计算依赖阿里云多个云组件,为您提供易上手、高性能、高可用的函数计算服务。用于私有化部署时,相关云组件可替换为您已成熟应用的组件,其安装依赖如下所示:

  • F5负载均衡:用于api controller容灾及负载均衡。
  • K8s集群:用于节点资源管理,1.17以上,至少3个Master节点高可用部署,3个Node节点,节点配置8核16 GB以上,节点Docker版本在18.09以上。
  • MySQL:用于管理元数据,高可用部署。
  • Elasticsearch:用于存储及搜索日志,高可用部署。
  • GlusterFS:可选用于函数文件共享,高可用部署。
  • Kafka:可选用于函数触发,1.1.1以上,高可用部署。

函数计算系统模块,以容器镜像方式发布,与K8s Master节点混部,所有模块默认部署3副本,共享Master节点主机网络,不同模块可实现同机混部。

模块名 角色 节点需求 容灾方式
api controller 接入模块 >=3 无状态,多活
dispatch controller 异步消息处理 >=3 无状态,多活
resource controller 路由及调度 >=3 有状态,多活
resource manager 资源管理 >=3 有状态,主备
node agent 节点计算模块 >=2 心跳,替换
dev controller 变更部署 1 外围,重新拉起

函数计算依赖模块,以容器镜像方式发布,通过K8s YAML文件部署,其中无状态模块基于deployment,状态模块基于stateful,除rocketmq-broker模块外,均通过K8s实现容灾,默认部署3副本,跨服务器打散,使用service实现负载均衡,rocketmq-broker通过rocketmq-namespace与rocketmq-controller自行实现主备切换容灾,所有依赖模块部署于K8s fc-system名字空间下。

模块名 角色 节点需求 容灾方式
mns 消息队列接入 >=3 无状态,多活
rocketmq-controller 消息队列控制 >=3 无状态,多活
rocketmq-nameserver 消息队列服务发现 >=3 无状态,多活
rocketmq-broker 消息队列持久化化 >=3 有状态,主备
zookeeper 消息队列依赖 >=3 有状态,选主
minio 代码持久化 >=3 有状态,多活
kafka connector Kafka函数触发器 >=3 无状态,多活
etcd FC模块依赖 >=3 有状态,选主

故障恢复

函数计算全链路默认部署3副本,具备高可用能力,可实现快速故障恢复或自愈。

  • 函数计算系统模块节点故障:本地无持久化数据,重启节点可实现故障自愈。
  • 函数计算系统模块网络故障:可选择跨网络模块部署,实现网络故障容灾。
  • 函数计算依赖模块节点故障:无状态模块无持久化数据,重启节点可实现故障自愈,zookeeper、etcd、rocketmq-broker等状态模块,自身有数据同步机制,重启后可自动恢复。
  • 函数计算依赖模块网络故障:可选感知K8s网络拓扑结构,设置网络互斥属性实现网络故障容灾。
  • 函数计算节点模块故障:函数计算系统模块有重试机制,节点故障会通过重试容灾。

精品案例

函数计算和Knative助力数字海南、海南省政府和中国人民银行构建专有云平台,以实现业务快速落地

PBC hainan_gov digital_hainan_logo

专有云平台加速了海南省的数字基础设施建设和中国人民银行的金融基础设施建设。将应用程序迁移到统一的政府或金融云平台后,可以降低运营和维护管理成本,并提高安全性。数字海南还将着力打造政务中台,赋能行业应用,快速响应政府业务的创新,支持本地生态的发展。