【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
架构
云帮是按照面向服务的架构来设计的。目前大多数集群组件都是通过容器镜像的形式发布和运行的。后续我们会将所有的组件都容器化,通过Kubernetes集群保障组件的高可用。
概述
Kubernetes负责容器的编排和调度,它的所有行为都是由应用引擎发起的。应用引擎将容器相关的操作都进行了封装,云帮通过抽象出了一个应用的概念来屏蔽底层所有与技术(容器、调度、网络……)相关的概念。用户通过对应用进行属性和行为的设置来操作应用,通过应用与应用直接的依赖关系来进行微服务架构的设计。
技术架构
-
云帮所有的对外服务都配置在负载均衡上,平台使用者、最终用户、开发者都是通过负载均衡转发到对应的应用与服务:
-
开发者除了可以通过Web控制台管理应用,还可以通过平台API来完成所有Web控制台的操作。详情参见:云帮API手册
-
运维人员可以在系统层面维护平台服务,也可以通过云帮的管理后台来管理计算资源,维护平台服务。
路由层
用户可以访问到的应用都是配置在路由层服务中,它主要由负载均衡组成,通过路由规则分离不同的应用与访问域名。控制层的服务根据容器的服务状态维护负载均衡中的节点。
控制层
控制层服务是平台最核心的功能模块,其内部包含了多个子模块:
- 应用管理平台:通常也称之为控制台,是用户操作和管理应用的web端程序。
- 应用中心:云帮内部的应用市场,包含了常用的应用,当然用 户也可以在云市安装更多的应用。
- 自动构建:基于源代码和Dockerfile的自动构建模块。
- 应用引擎:云帮核心子模块,负责将各种容器操作命令发送到后端服务,同时也将应用、容器状态保存到后端的etcd服务中。
- Git仓库:选装模块,可以使用外部或内部的Git服务
计算层
计算层负责容器的运行、监控以及收集汇总容器中的日志。容器的启动与关闭由控制层发起,容器运行后会将状态注册到路由层。
后端服务
后端服务云帮集群的核心服务,包括Kubernetes、etcd、数据存储、日志处理、监控等。
部署结构
- 负载均衡
负载均衡组件通常部署在计算节点上,推荐至少使用3个计算节点作为负载均衡的最小集群规模。
- 计算节点
计算节点是实际跑容器的主机,每一个团队账号(租户)的容器可以跨主机运行,团队账号中可以有多个应用,每个应用由1~n个容器组成,应用的多个容器运行在不同的主机中。
- 管理节点
云帮集群的管理服务都运行在管理节点的机器中,包括自动构建服务、容器调度、SDN网络管理、应用引擎、日志汇总与实时处理等等……
- 分布式存储
存放应用持久化数据以及自动化构建所需要的公共文件。
下期预告
下期会对云帮的核心组件进行讲解。
本文为 好雨科技 原创文章,如若转载,需注明转载自 "好雨科技"
来源:oschina
链接:https://my.oschina.net/u/584116/blog/747907