背景以及需求:
随着企业业务的不断发展,运营方面,如何保障业务的高可用及服务质量?很多企业处于“半自动化”状态,一但出现故障,技术部人员都会加入“救火”的行列,不仅浪费人力物力,而且使业务出现一段“停运时间”,给公司造成一定的损失。
解决方案:
如果要解决以上问题,就需要构建一个高效的运营模式。
要构建一个高效的运营系统,可以从以下几方面放手:
1)制定符合企业特点的 IT 制度
2)流程规范
3)质量与成本管理
4)运营效率建设
接下来我们就开始从零开始打造一个易用,扩展性强,安全,高效的自动化运维平台,来提高运营人员的工作效率
本平台的功能介绍:
1. 实现一个集中式的 Linux 集群管理基础平台,并提供模块扩展的支持,可以实现随意添加集群操作任务模块
2. 服务器端模块支持前端 HTML 表单参数动态定制,可灵活实现日常运维远程操作,文件分发等任务
3. 安全方面采用加密(RC4 加密算法)指令传输,操作日志记录,分离 Web Server 与主控设备等
4. 效率方面,管理员只需选择操作目标对象及操作模块,即可完成一个现网变更任务
5. 在用户体验方面,采用前端异步请求,模拟 linux 终端效果接收返回串
6. 可以根据需求对此平台进行扩展
系统架构设计:(采用三层设计模式)
第一层为 Web 交互层:
采用 Django + prototype.js + MySQL 实现,服务器端使用 Nginx + uwsgi 构建高效的 Web 服务
第二层为分布式计算层
采用 rpyc 分布式计算框架实现 , 作为第一层与第三层数据交互及实现主控端物理分离,提高安全性,同时具备第三层的多机服务的能力
第三层为集群主控端服务层
支持 Saltstack, Ansible, Func 等平台
整个系统实现的业务流程:
管理员向平台所在的Web服务器发起 HTTP 请求,平台接收到 HTTP POST 请求的数据,采用 RC4+b64decode + 密钥Key进行加密,再作为 rpyc 客户端向 rpyc 服务器发送加密指令串,rpyc 服务器也同时是 Saltstack, Ansible, Func 等主控端,
主控端将接收到的数据通过“RC4+b64decode+密钥”进行解密,解析成平台调用的任务模块,结合 Saltstack, Ansible或 Func 向目标业务服务器集群发送执行任务,执行完毕后,将返回的结果加密处理,最后逐级返回给系统管理员,整个任务模块分发执行流程结束