部署架构

移动 PaaS 平台目前部署在阿里云。下图展示的是部署架构:

移动 PaaS 平台的部署架构图

从左往右介绍:

  • Client:客户端。平台支持 Chrome 浏览器访问。
  • Internet:因特网。右侧部分都是部署在阿里云上的组件。
  • Load Balancing:负载均衡器。支持后端组件横向扩展。
  • VPC:虚拟网络区域。公有云上逻辑隔离的网络部分。外部不能直接访问 VPC 内的资源。
    • NAT Gateway:提供 VPC 内组件访问外网的通道。
    • Swarm:可伸缩的 Docker 集群。由多个云虚拟机(ECS)组成。其内的组件都运行在 Docker 容器内。
      • API Gateway:API 网关。将后端服务的 API 开放给平台外部调用,并提供认证、授权、限流和转换的多项能力。使用的是开源工具 Kong。
      • Fronted:前端站点。与后端采用前后端分离的结构。
      • Backend Service:后端服务站点。以API提供服务。有 Console(控制台)、Modeling(设计器)、Metadata(元数据API)。
      • Builder:异步逻辑执行单元。代码和 Console 一致,但以命令行方式执行。 Mobile Web:平台创建应用的 H5 形态运行站点。站点内容实际存放在对象存储(OSS)中。
      • MiniProgram Uploader:平台应用小程序形态上传器。复杂将小程序代码上传到微信服务器。(图中为了简洁省略了连线)
    • Kong DB:Kong 的后端数据库存储。使用的是 阿里云 PostgreSQL 服务。
    • Business DB:平台业务数据存储。使用的是 阿里云 Mysql 服务。
    • Data Cache:平台业务数据缓存。使用的是阿里云的 Redis 服务。
    • Session:会话存储。使用的是阿里云的 Memcache 服务。
  • Object Storage:对象(图片、视频等)存储。使用的是阿里云的 OSS 服务。
  • Function Compute:无服务器的函数计算。使用的是阿里云的 FaaS 服务。
  • Message Service:消息服务。使用的是阿里云的 MNS 服务。异步任务由消息服务中转到 Builder 执行。