这是我们的 Command 中间的控制层,这一套系统是起到统一调度的作用。我们是用 Go 语言编写这一套系统,主要的作用是用户请求过来,它创建 VPC 或者购买云主机到内部,其实是一个很复杂的过程,并不是单纯请求某一个平台完成。
所以 Command 起到接口调用编排的作用,我们这一套系统支持同步、异步,并发一个请求过来,我们可以把它处理成异步还有回调的操作,这平台也是用 thrift 框架,同时 http、https、rpc都提供。
说一下我们的监控,其实最早的时候从我们2016年6月份创建公司以来,包括国美之前的一些运维体系,用的都是 Zabbix 。Zabbix 用的挺多,在主机达到千台以上。
Open-falcon 都是Go写的,它的性能还是比较好,而且我们做了一些针对 Open-falcon 定制化开发。比如说虚拟机,我们一般监控都是部署在虚拟机内进行监控,但是其实做云的话,这对用户来说体验不是特别好,所以我们现在所做的是从主席机直接对云主机进行监控,比如说CPU内存硬盘使用情况。
11
今年年初到6月份我们的 Open-falcon 有一个稳定的过渡,因为 Open-falcon 是小米和滴滴做的,上半年还是相对比较稳定。
而且有一些功能比较吸引人,比如说报警的收敛,比如原本会报警十条短信,另外的话还有报警的机位挂了,原本会收到很多短信,但是这个会帮你去拒掉。目前我们国美云大概有几千台云主机,全部是用 Open-falcon 做的监控。
12
其次就是云主机的调度,我们云主机调度也是自己研发,就是整套云的底层虚拟化并没有 Openstack。完成这一套调度有一些系统,每天有几千台创建量的时候,可以实时的去做水平的横向扩展,只要在这后面加调度系统就可以了。
其次的话我们的调度是通过服务状态,调度器可以去灵活的选择,根据不同的场景。
4、国美运维自动化实践
我再介绍一下我们运维自动化的实践。
13
这是我们的一个运维自动化实践图谱,也算是生态链。这就是围绕 CI/CD 的流程,核心标准化、流程化,把所有的开发、运维、测试、配置管理项目管理这一些角色全部通过这一个流程给汇聚起来。
我们现在这些平台有一些还在开发过程中,但是未来我们国美整个生态内的各个产业公司,运维自动化平台都会从这里选取使用,相当于这是我们国美云提供一套生态链给各个产业公司使用。
说一说我们的运维自动化的产品,CMDB 很多公司都有,互联网公司无论大小都有这种产品的存在。但是我们的产品主要是有什么特点?我们把网络资源当作资产一样管理起来,就是IP地址,其次我们 CMDB 里面维护了用户,用户指的是开发人员、测试人员,还有运维人员和设备的对应关系。
14
这是产品线的图,通过对应关系获取一些信息。其实很多的系统,比如说我们的监控系统都是可以通过产品线用户、机器的对应关系去获得一些信息,去实施一些服务,比如说堡垒机某一个用户就是登陆的权限。
其次就是通过 CMDB 的基础资源,我们形成了一个机房机柜的管理视图。因为我们 CMDB 存的信息比较全,每一台机器的资产信息,位置信息还有它的一个机型信息都有,所以我们通过这信息,视图就会有所有的机房排列的情况。
你点开每一个机柜,里面的每一个服务器摆列的情况都看的很明确。我们运维怎么上架怎么选择机柜也是非常方便,这图也帮了我们运维人员很多,我们服务器到货之前都是看这图让供货商直接参与进行了。
15