架构

云帮是按照面向服务的架构来设计的。目前大多数集群组件都是通过容器镜像的形式发布和运行的。后续我们会将所有的组件都容器化,通过Kubernetes集群保障组件的高可用。

概述

cloudbangarc.png

总体分三层,最上层是应用,可以从零创造应用,或将应用市场的应用直接使用,中间的好雨云帮类似一个操作系统,最下层是各类计算资源。

云帮部署在操作系统之上,可以兼容各类计算资源。

好雨云帮 + IaaS =公有云
好雨云帮 + 服务器 =私有云
好雨云帮 + IaaS + 服务器 =混合云


技术架构

technology-architecture.png

  • 云帮所有的对外服务都配置在负载均衡上,平台使用者、最终用户、开发者都是通过负载均衡转发到对应的应用与服务:

  • 开发者除了可以通过Web控制台管理应用,还可以通过平台API来完成所有Web控制台的操作。详情参见:云帮API手册

  • 运维人员可以在系统层面维护平台服务,也可以通过云帮的管理后台来管理计算资源,维护平台服务。
  • Kubernetes负责容器的编排和调度,它的所有行为都是由控制层发起的。控制层将容器相关的操作都进行了封装,云帮通过抽象出了一个应用的概念来屏蔽底层所有与技术(容器、调度、网络……)相关的概念。用户通过对应用进行属性和行为的设置来操作应用,通过应用与应用直接的依赖关系来进行微服务架构的设计。

    路由层

    用户可以访问到的应用都是配置在路由层服务中,它主要由负载均衡组成,通过路由规则分离不同的应用与访问域名。控制层的服务根据容器的服务状态维护负载均衡中的节点。

router.png



控制层

控制层服务是平台最核心的功能模块,其内部包含了多个子模块:

  • 应用管理平台:通常也称之为控制台,是用户操作和管理应用的web端程序。
  • 应用中心:云帮内部的应用市场,包含了常用的应用,当然用 户也可以在云市安装更多的应用。
  • 自动构建:基于源代码和Dockerfile的自动构建模块。
  • 应用引擎:云帮核心子模块,负责将各种容器操作命令发送到后端服务,同时也将应用、容器状态保存到后端的etcd服务中。
  • Git仓库:选装模块,可以使用外部或内部的Git服务

controler.png



计算层

计算层负责容器的运行、监控以及收集汇总容器中的日志。容器的启动与关闭由控制层发起,容器运行后会将状态注册到路由层。

compute.png



后端服务

后端服务云帮集群的核心服务,包括Kubernetes、etcd、数据存储、日志处理、监控等。

backend.png

高可用架构

20170524149559692841805.png

说明:

  1. 云帮集群中由于部署服务的不同,分为管理节点和计算节点两个角色
  2. 当只安装一个节点时,这个节点既是管理节点,也是计算节点
  3. 可以通过集群维护命令增减集群规模,设置集群角色