Python自动化运维开发实战课程方案
课程简介:
随着信息时代的持续发展,IT运维已经成为IT服务内涵中重要的组成部分。面对越来越复杂的业务以及日趋多样化的用户需求,不断扩展的IT应用需要合理的IT运维保障IT服务灵活便捷、安全稳定。从初 期个位数服务器发展到庞大的数据中心,仅依靠人工已经无法满足在技术、业务、管理等方面的要求,标准化、自动化、架构优化、过程优化等降低IT服务成本的因素被人们愈加重视。今天,运维自动化 作为IT运维重要属性之一已经不仅仅只是代替人工操作,更重要的是深层探知和全局分析,关注的是在当前条件下如何实现性能与服务最优化,同时保障投资收益最大化。
自动化对IT运维的影响,已经不仅仅是人与设备之间的关系,已经发展到了面向客户服务驱动IT运维决策的层面。因此,IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是提升IT运维的质量, 降低成本。可以说自动化一定是IT运维最高层面的重要属性之一。
纵观传统运维存在的问题:(1)运维人员被动、效率低; (2)缺乏一套高效的IT运维机制;(3)缺乏高效的IT运维技术工具。 IT运维自动化是IT技术发展的必然结果。IT系统的复杂性已经客观上要求IT运维必须能够实现数字化、自动化维护。所谓IT运维管理的自动化是指通过将日常IT运维中大量的重复性工作(小到简单的日常检查、配置变更和软件安装,大到整个变更流程的组织调度)由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零 延时”的IT运维。
简单的说,IT运维自动化是指基于流程化的框架,将事件与IT流程相关联,一旦被监控系统发生性能超标或宕机,会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制。自动化工作平台还可帮助IT运维人员完成日常的重复性工作(如备份、杀毒等),提高IT 运维效率。同时,IT运维的自动化还要求能够预测故障、在故障发生前能够报警,让IT运维人员把故障消除在发生前,将所产生损失减到最低。!
课程主要着眼于在日常的运维工作中应用Python来解决实际问题;
课程以实际的案例出发,编写Python实用工具并在解决问题的同时说明系统运维在处理问题时的解决思路;
掌握运维体系中配置管理、系统监控、自动化部署等系统之间的关系及实现方法;
培训对象:
本套课程的受众主要是IT运维相关技术爱好者、
相关工作人员(开发人员、基础运维人员、系统管理员、IT运维架构师…)
预备知识时间安排 | 课程内容 |
第一天 | 一、 运维工作 目标:通过案例熟悉并掌握Python语言的环境及特性以及在系统环境下的应用。 案例:文本控制台下的Python系统工具箱 。 1、自动化运维介绍、谁应该掌握自动化运维技术; 2、Python语言概述、Python在自动化运维领域的应用; 3、Python应用开发环境搭建; 4、交互式SHELL以及脚本编辑; 5、Hi, Python. 编写第一个Python程序; 6、Python语法初探(PEP8、语法规则等); 7、Python在文本控制台下的人机交互; 8、文本控制台人机交互界面实现小技巧; 9、Python实现流程控制 |
第二天 | 二、Python强大的数据处理能力 目标:日常工作涉及到的最多的就是来自设备、系统、网络、应用等产生的各种数据, 数据的处理能力是必备的,通过案例掌握Python中的数据及数据的处理方式和技巧。 案例:主机管理,具备动态增删改查功能,可结合Excel表格使用; Apache日志解析。 1、Python的数值类型; 2、字符串概念、语法及应用; 3、列表、元组概念、语法及应用;列表推导的使用; 4、字典、集合概念、语法及应用; 5、正则表达式; 6、文件I/O与异常处理; 7、数据持久存储; 8、Excel数据处理; 9、cPickle实现对象序列化; |
第三天 | 三、Python函数-分治策略的实现 1、函数式编程概念; 2、Python函数及自定义函数; 3、丰富的参数模式; 4、Return and yield; 5、匿名函数; 6、生成器妙用; 7、模块化编程; 8、发布模块 Python面向对象编程 1、面向对象编程; 2、定义Python类;(类属性; 类方法;) 3、类的实例化; 4、类属性、方法及对象属性、方法的调用; 5、类的继承、多态; 进程、线程与并发 1、子进程; 2、子进程的返回码; 3、使用supervisor管理进程; 4、Python中的线程; 5、进程与进程调度; |
第四天 | 四、Python处理系统文件 目标:linux下一切皆文件,掌握系统文件处理无疑至关重要。 案例:丰富你的工具箱,管理系统上的用户与主机; 辅助案例:多种方式数据压缩与打包归档,增量备份与差异备份等;MD5校验等。 1、os模块常用方法; 2、sys模块常用方法; 3、关于路径、目录和文件; 4、递归实现目录树; 5、多种数据归档方法; |
第五天 | 五、Python网络应用开发 目标:互联网时代大批量服务器的运维当然离不开网络,掌握Python中常用的网络模块 及实际运用技巧,实现当下最火的一些运维工具(比如Nagios,cacti)提供的功能。 案例:批量主机远程管理(地址扫描、远程唤醒、远程关机、备份等,信息存数据库)。 辅助案例:编程实现自动化监控软件(具备进程监控,自动报警,发送email等功能); 实现自定制守护进程; 小爬虫,端口检测工具,FTP服务器端及客户端。 1、Urllib模块用法; 2、Paramiko模块用法; 3、SNMP模块获取设备信息; 4、Socket介绍; 5、Socket套接字用法; 6、SocketServer应用开发; GUI图形化编程-工具可视化 目标:有的时候可能你需要一个更人性化的、更美观的、看起来更高端大气上档次操作界面。 案例:图形化记事本、图形化远程端口扫描工具。 辅助案例:图形化你的系统工具箱。 1、GUI应用设计; 2、GUI框架-Tkinter; 3、GUI框架-wxPython; 4、GUI辅助设计工具; 5、基于nagios的监控插件开发,比如监控CPU、内存、磁盘、进程、及基于SNMP网络设备监控的开发; 6、基于ZABBIX接口sender开发工具 7、基于ansible的运维自动化工具扩展开发 |