技术架构

下图是移动 PaaS 平台的技术架构图:

移动 PaaS 平台的技术架构图

我们采用了业界成熟、流行的技术来构建平台,从下而上:

  • 关系数据库:采用开源的 MySQL 数据库
  • 后端:使用 Docker 技术作为部署单位,内部运行 php-fpm 进程响应前端请求。后端代码基于专为运行性能优化的 Lumen “微”框架开发。也使用了一些开源社区的成熟组件(部分罗列):
    • Ext-json: 处理 Json 格式的元数据。
    • Php-jwt:用于 API 认证。
    • Sentry:开源的实时错误报告工具,支持前后端、移动端。
  • 前端:我们采用前后端分离的方式组织开发。前端采用易用、灵活、高效的 Vue 框架。使用了一些开源社区的成熟组件(部分罗列):
    • Element-UI:控制台和设计器界面所使用的 UI 组件库。
    • MPVue:用来转换生成微信小程序。
    • Vuex:Vue 程序状态管理。
    • SeaJS:处理 Javascript 文件的依赖和加载。
    • Babel:Javascript 编译器,以便使用新一代语法编写 Javascript 代码。
  • 服务:我们选用了一些中间件以更好的实现平台的技术要求。
    • SLB:负载均衡器。以帮助平台进行横向伸缩。
    • CDN:内容分发网络。用来提升用户浏览时的加载性能。
    • Kong:API 网关。平台对外开放的 API 以他为媒介对外提供。
    • OSS:对象文件存储,图片优化器。
    • Redis:缓存。
    • FaaS:函数计算。针对平台一些非线性并发、重资源的逻辑我们采用无服务器的函数计算实现。
    • MNS:高可靠(十个9)的消息队列。
    • Log Service:实时日志采集、分析、投递服务。