Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

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

99 876 vues

Publié le

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

Publié dans : Logiciels

基于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

×