如何基于Python构建一个可扩展的运维自动化平台

Python023

如何基于Python构建一个可扩展的运维自动化平台,第1张

Django- 一个开放源代码的 Web 应用框架,由 Python 写成,采用了 MVC 的软件设计模式;

rpyc- 一个 Python 实现的 RPC 和分布式计算的工具。支持同步和异步操作、回调等;

saltstack 、 ansible 、 func - 基本 Python 开发的自动化配置管理与流程控制组件;

Mysql- 是一个非常流行的关系型数据库管理系统。

二、平台架构设计

1、 OMServer 架构图

大家对这个架构应该不会感到陌生,三层结构也是目前主流的运营平台架构。

2、 架构说明

OMServer 平台为三层架构,分别为 WEB 交互层、分布式计算层、集群管理服务层。

1) 、第一层:即为 WEB 交互层,典型的 B/S 架构,以供管理员操作的交互平台,也是 OMServer 的核心,基于 Django 开发;

2) 、第二层:分布式计算层,提供与主控端的连接通道,采用的是 rpyc 传输协议,协议操作流程:前端模块参数 ->加密传输 ->任务执行 ->返回结果集 ->解密输出。

3) 、第三层:集群管理服务层,整合 Python 主流的远程操作组件(支持 Saltstack 、 Anaible、 Func ),对被控端(业务服务器集群)进行管理,其中主控端可以根据不同 IDC 环境,采用多地多点的管理方式,可提升冗余度及执行效率。主控端操作模块以不同 Python 文件加以区分,便于维护,可灵活定制操作逻辑及横向扩展等特点。

随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变的重复、繁杂。把运维工作自动化,能够把运维人员从服务器的管理中解放出来,让运维工作变得简单、快速、准确;运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本。

相关推荐:《Python入门教程》

运维自动化设计思想:

管理体系化

工作流程化

人员专业化

任务自动化

任务自动化

环境定义自动化

部署自动化

监控自动化

为什么选python做自动化运维

自动化运维关心问题:

自动化

易实现

跨平台

轻量级

适合自动化运维编程语言特点:

丰富的第三方库

学习成本低

跨平台

轻量级