More Related Content
Similar to 基于Python构建可扩展的自动化运维平台 (20)
基于Python构建可扩展的自动化运维平台
- 3. ■ 个人介绍
刘天斯 (yorkoliu)
个人著作
-《Python自动化运维:技术与最佳实践》
-《Docker 技术与最佳实践》(待出版)
腾讯高级工程师 负责游戏大数据运维工作
荣获2010年度十大杰出IT博客
7个开源项目、4个发明专利
技术BLOG:http://blog.liuts.com
Weibo: http://weibo.com/yorkoliu
微信号:yorkoliu
- 5. ■ 为什么选择Python
优势
- 默认安装且跨平台
- 可读性好且开发效率高
- 丰富的第三方库(开发框架、各类API、科学计算、GUI等)
Python在腾讯
- 系统运维
- 业务逻辑
- 运营平台
- 测试工具
- 数据挖掘等
- 9. ■ 平台第三方库
Django
- 一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式
rpyc
- 一个 Python 实现的RPC和分布式计算的工具。支持同步和异步操作、回调等
saltstack 、ansible 、func
- 基本Python开发的自动化配置管理与流程控制组件
Mysql
- 是一个非常流行的关系型数据库管理系统
- 11. ■ 平台架构 - 总览
Web交互层 分布式计算层 集群管理服务层
主控端 被控端
- 12. ■ 平台架构 – 优势
管理端多机支持
安全性高,加密传输、定义私有通讯规范(TCP)
支持多种管理客户端接入(WEB、桌面、移动)
调用Python组件的高级特性(Playbook、State)
功能扩展性能力强,模块定制化
- 13. ■ 平台架构 – 操作流程
Omserver
(Django)
Omserver
(:11511)
RPYC
Python
module
App Server
设备初始化模块
部署LNMP模块
部署Mysql模块
重启Tomcat模块
同步配置模块
… …
- 14. ■ 平台架构 – 整合Python组件
Saltstack
Ansible
Func
App Server
证书或SSH认证
API
OMserver
(0.0.0.0:11511)
任务下发
- 16. ■ 模块定制
任务模块
- 一个“操作事件”为颗粒的任务,如重载配置、部署缓存服务等
添加模块
- 定义任务模块“输入参数”,采用HTML Form元素
- 编写后台模块代码
运行模块
- 选择任务模块 & 操作对象 -> 指定输入参数 -> 运行 -> 返回执行结果
- 18. ■ 模块定制 – 后台代码
任务模块
Mid_1001.py
Mid_1002.py
Mid_1003.py
Mid_1004.py
… …
/ansible
Mid_1001.py
Mid_1002.py
Mid_1003.py
Mid_1004.py
… …
/saltstack
Mid_1001.py
Mid_1002.py
Mid_1003.py
Mid_1004.py
… …
/func
主程序加载任务模块
- 20. ■ 模块定制 – 后话
运维的核心工作
- 平台功能改进、升级
- 任务功能模块的编写
- 日常工作梳理(标准、流程化建设)
- 系统、业务的调优
- 23. ■ 安全审计 – 主机代理(Agent)
/etc/profile
192.168.1.21 root 2014-11-02 17:44:13 # ping www.baidu.com
192.168.1.21 root 2014-11-02 17:43:46 # telnet www.baidu.com 80
192.168.1.21 root 2014-11-02 17:42:48 # vi /etc/profile
192.168.1.21 root 2014-11-02 17:42:22 # shutdown -h now
入库Mysql
OMAudit_agent.py
http_client =httplib.HTTPConnection("192.168.1.20", 80, timeout=5)
http_client.request("GET", “/omaudit_pull/?history_command="+History&… …)
- 24. ■ 安全审计 – 前端输出
待改进点
- 与告警平台联动,发现异常操作
- Agent上报修改成异步方式
- 28. ■ OMServer VS OManager
平台构架 三层 两层
用户交互 Django Wxpython
前端模块 HTML XRC (XML Resource)
平台升级 快速 一般
安全性 一般 高
响应速度 一般 快
OMServer (B/S) OManager (C/S)