Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

99,107 views

Published on

Python作为当今运维领域最流行程的开发语言之一,本分享介绍如何使用Python开发一套可扩展的自动化运维平台,内容包括平台架构原理、前后台模块设计、主机安全审计等功能实现,介绍平台如何与Python的开源组件进行对接,实现一个面向大规模业务集群,具备高效、安全、标准化的基础运维平台。

Published in: Software

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

  1. 1. 基于Python构建可扩展的自动化运维平台 主讲:刘天斯 (yorkoliu)
  2. 2. ■ 个人介绍  刘天斯 (yorkoliu)  个人著作 -《Python自动化运维:技术与最佳实践》 -《Docker 技术与最佳实践》(待出版)  腾讯高级工程师 负责游戏大数据运维工作  荣获2010年度十大杰出IT博客  7个开源项目、4个发明专利  技术BLOG:http://blog.liuts.com  Weibo: http://weibo.com/yorkoliu  微信号:yorkoliu
  3. 3. ■ 分享提纲 平台架构说明 平台模块定制 安全审计功能 C/S结构的实现 平台功能介绍
  4. 4. ■ 为什么选择Python  优势 - 默认安装且跨平台 - 可读性好且开发效率高 - 丰富的第三方库(开发框架、各类API、科学计算、GUI等) Python在腾讯 - 系统运维 - 业务逻辑 - 运营平台 - 测试工具 - 数据挖掘等
  5. 5. ■ 平台介绍(书籍案例) OMServer 一个集中式的Linux集群管理(基础)平台 - 业务集群管理 - 实时安全审计 - 功能模块定制 - 数据加密传输 - 支持主流Python组件 - 使用简单且体验好 - 代码开源 https://github.com/yorkoliu/pyauto
  6. 6. ■ 平台UI – 操作模块 模块列表 结果输出 输入参数
  7. 7. ■ 平台UI – 安全审计 安全审计实时跟踪
  8. 8. ■ 平台第三方库  Django - 一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式  rpyc - 一个 Python 实现的RPC和分布式计算的工具。支持同步和异步操作、回调等  saltstack 、ansible 、func - 基本Python开发的自动化配置管理与流程控制组件  Mysql - 是一个非常流行的关系型数据库管理系统
  9. 9. ■ 当前内容 平台架构说明 平台模块定制 安全审计功能 C/S结构的实现 平台功能介绍
  10. 10. ■ 平台架构 - 总览 Web交互层 分布式计算层 集群管理服务层 主控端 被控端
  11. 11. ■ 平台架构 – 优势  管理端多机支持  安全性高,加密传输、定义私有通讯规范(TCP)  支持多种管理客户端接入(WEB、桌面、移动)  调用Python组件的高级特性(Playbook、State)  功能扩展性能力强,模块定制化
  12. 12. ■ 平台架构 – 操作流程 Omserver (Django) Omserver (:11511) RPYC Python module App Server  设备初始化模块  部署LNMP模块  部署Mysql模块  重启Tomcat模块  同步配置模块  … …
  13. 13. ■ 平台架构 – 整合Python组件 Saltstack Ansible Func App Server 证书或SSH认证  API OMserver (0.0.0.0:11511) 任务下发
  14. 14. ■ 当前内容 平台架构说明 平台模块定制 安全审计功能 C/S结构的实现 平台功能介绍
  15. 15. ■ 模块定制  任务模块 - 一个“操作事件”为颗粒的任务,如重载配置、部署缓存服务等  添加模块 - 定义任务模块“输入参数”,采用HTML Form元素 - 编写后台模块代码 运行模块 - 选择任务模块 & 操作对象 -> 指定输入参数 -> 运行 -> 返回执行结果
  16. 16. ■ 模块定制 – 前端配置 输入参数 模块ID,与后台模块代码关联
  17. 17. ■ 模块定制 – 后台代码 任务模块 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 主程序加载任务模块
  18. 18. ■ 模块定制 – 后台代码  任务模块核心代码
  19. 19. ■ 模块定制 – 后话  运维的核心工作 - 平台功能改进、升级 - 任务功能模块的编写 - 日常工作梳理(标准、流程化建设) - 系统、业务的调优
  20. 20. ■ 当前内容 平台架构说明 平台模块定制 安全审计功能 C/S结构的实现 平台功能介绍
  21. 21. ■ 安全审计架构 - 总览 Web交互层 集群代理层
  22. 22. ■ 安全审计 – 主机代理(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&… …)
  23. 23. ■ 安全审计 – 前端输出  待改进点 - 与告警平台联动,发现异常操作 - Agent上报修改成异步方式
  24. 24. ■ 当前内容 平台架构说明 平台模块定制 安全审计功能 C/S结构的实现 平台功能介绍
  25. 25. ■ 平台C/S UI
  26. 26. ■ OManager架构 - 总览 客户端层 集群管理层
  27. 27. ■ OMServer VS OManager  平台构架 三层 两层  用户交互 Django Wxpython  前端模块 HTML XRC (XML Resource)  平台升级 快速 一般  安全性 一般 高  响应速度 一般 快 OMServer (B/S) OManager (C/S)
  28. 28. ■ 后续优化  整合ansible或saltstack高级功能  将多个任务模块打包成模板对列  引用任务调度Celery,支持更大并发  任务对列支持暂停、中止、重运行功能  提供与CMDB访问对接
  29. 29. Q & A

×