PaaS平台基础

PaaS平台的关键能力

应用Docker化封装

支持如下几类常见应用:系统支持如下几类常见应用:

  • Tomcat
  • Jboss
  • Nginx
  • Redis
  • ZooKeeper
  • MySQL

容器和组件的统一管理

从整体应用的角度出发,平台不仅管理镜像和容器,而是将一个应用涉及的所有组件均做了统一管理,比如对前端的DNS、负载均衡(F5/Nginx),后端数据库等的管理。通过对系统相关组件和容器统一管理,平台将可以实现系统的全局统一部署、配置、升级/回滚、监控、故障处理等功能。

应用弹性伸缩

构建具有需求预测和容器按需供给能力的弹性伸缩子系统,具有基于应用的负载和资源情况进行弹性伸缩能力,以应对互联网用户高并发的特点,应对流量冲击。

应用持续部署

平台实现快速、可视化自动部署功能。支持对应用的快速、可视化部署。用户仅需在界面中选择相应的镜像和组件,并填写简单的配置信息,点击部署按钮,即可完成整个应用的安装或者升级。在测试环境可通过Jenkins,可实现应用的持续集成和全自动化升级,同时支持一键回滚和恢复发布功能。

PaaS平台功能组件

具体实施时,主要有几个基础组件需要开发:

日志管理

使用fluentd将日志输出到公司的日志平台(如ELK平台),对接研发人员排查问题、数据埋点使用。

镜像管理

实际运行的应用镜像由 “基础中间件镜像” + “应用包” + “配置” 自动构建,无需开发人员理解镜像概念和手动制作镜像。

DNS管理

定制化公司内部使用的DNS管理平台,对公司的DNS进行统一管理。

服务管理

需要定制化一套Kubernetes的Deployment模板,从Ingress到Service再到RC都定义在这套模板里面,方便对容器进行扩容、缩容、删除操作。

服务内Pod管理

属于Kubernetes自有范畴,查看Service内的Pod运行情况、Pod日志输出等功能。

监控管理

参考方案:cAdvisor + InfluxDB + Grafana/ Heapster + InfluxDB + Grafana/Prometheus/Zabbix。

参考

坚持原创技术分享,您的支持将鼓励我继续创作!
0%