运维自动化流程


运维学习和发展的一个线路:

  1. 搭建服务 (部署并运行起来)
  2. 用好服务 (监控、管理、优化)
  3. 自动化 (服务直接的关联和协同工作)
  4. 产品设计 (设计一个监控系统)

云计算的核心竞争力是运维 运维架构: 网络、数据库、系统、云计算、自动化、开发python、运维管理、服务管理、项目管理、测试、业务 专注于某一领域 机房运维 (负责设备上下架、巡检、报修、硬件监控) 监控运维 (7X24运维值班、故障处理) 基础设施运维 (系统安装、网络维护) 基础服务运维(包含运维开发) (内部DNS、负载均衡、系统监控、资产管理、运维平台) 应用运维 (项目上线、业务部署、版本管理、灰度发布) 系统运维 (架构层面的分布式缓存、分布式文件系统、环境规划(测试、开发、生产)、架构设计、性能优化) 安全运维 (整体的安全方案、规范、漏洞监测、安全防护) 运维标准化 标准化是一切运维自动化的基础,无标准、不自动。所以自动化运维的前提条件是做好运维标准化工作。以下是自己总结的一些内容: 1、云端系统镜像(模板镜像命名规则)镜像一定要是干净的,如果不干净很有可能引起生产事故,包含各种服务客户端(如zabbix-agent、salt-minion) 2、系统优化标准参数、自动化一键优化脚本 3、操作系统命名规则site qa pre prd 4、软件安装版本标准化 5、软件安装目录标准化 6、应用系统名称命名规则、应用系统数据库命名规则 7、监控模板标准化、特殊监控特殊对待 8、综合管理机器 前期规划性能争取比较好,因为后期可能有很大性能需求 9、日志备份机器,磁盘以及性能尽量可能较高 10、ip地址管理(可以写脚本生产一个动态更新表) 11、自动化工具salt、ansible、Jenkins 12、监控标准化(基础cpu、内存、磁盘、网络流量、系统连接数、业务指标监控) 13、资源统计表标准化模板(云端ecs、slb、redis、rds…、专人负责统计、该员工负责资源开通、升配、降配) 14、运维各类实施文档(各种中间件部署、升级、问题解决) 15、安全审计-堡垒机或安全审计日志(密码+私钥访问) 16、权限标准化管理(专人负责) 17、自动化脚本编写 避免重复性工作,如创建用户 18、安全防护,云端ddos、waf,应用端如nignx有防sql注入、防爬虫等安全配置 19、端口统一规划表,需要统一管理 20、新开通资源第一时间增加监控、日志收集 22、运维制度或标准最小单元化,标准化最小单元化 其他:对于公司运维人员,一定要存在备份人员,杜绝某些系统只有某一位运维同学熟悉。这样容易导致人员离职,系统交接不到位,系统维护困难以及踩坑 一、物理设备层面: 1.服务器标签化、设备负责人、设备采购详情、设备摆放标准 2.网络划分、远程控制卡、网卡端口 3.服务器机型、硬盘、内存统一;根据业务分类 4.资产命名规范、编号规范、类型规范 5.监控标准 二、操作系统层面: 1.操作系统版本 2.系统初始化(DNS、NTP、内核参数调优、rsyslog、主机名规范) 3.基础Agent配备(Zabbix Agent、Logstash Agent、Saltstack minion) 4.系统监控标准(CPU、内存、硬盘、网络、进程) 三、应用服务层面: 1.Web服务器选型(Apache、Nginx) 2.进程启动用户、端口监听规范、日志收集规范(访问日志、错误日志、运行日志) 3.配置管理(配置文件规范、脚本规范) 4.架构规范(Nginx+Keepalived、LVS+Keepalived等等) 5.部署规范(位置、包命名等) 四、运维操作层面: 1.机房巡检流程(周期、内容、报修流程) 2.业务部署流程(先测试、后生产、回滚) 3.故障处理流程(紧急处理、故障升级、重大故障管理) 4.工作日志标准(如何编写工作日志) 5.业务上线流程(1.项目发起 2.系统安装 3.部署Nginx 4.解析域名 5.测试 6.加监控 7.备份) 6.业务下线流程(谁发起,数据如何处理) 7.运维安全规范(密码复杂度、更改周期、×××使用规范、服务登录规范) 五、总结: 标准化 (规范化 流程化 文档化) 目标:文档化 工具化:

  1. SHELL脚本 (备份、部署、功能性(流程)脚本、检查性、报表性)
  2. 开源工具:ZABBIX,ELK,saltstack,cobbler

目标: 1、促进标准化的实施 2、将重复的操作简单化 3、将多次操作流程化 4、减少人为操作的低效和造成的故障 痛点:

  1. 你至少要SSH到服务器执行。可能犯错
  2. 多个脚本有执行顺序的时候,可能犯错。
  3. 权限不好管理,日志没法统计。
  4. 无法避免手工操作。

Web化 运维操作平台 例子:JOB管理平台

  1. 做成web界面
  2. 权限控制
  3. 日志记录
  4. 弱化流程
  5. 不用SSH到服务器,减少人为操作造成的故障

DNS web管理 bind-DLZ 负载均衡web管理 JOB管理平台 监控web管理 ZABBIX 操作系统安装web管理 服务化(API化) DNS web管理 bind-DLZ dns-api 负载均衡web管理 slb-api JOB管理平台 job-api 监控web管理 ZABBIX zabbix-api 操作系统安装web管理 cobbler-api 部署平台 deploy-api 配置管理平台 saltstack-api 自动化测试平台 test-api

  1. 调用cobbler-api安装操作系统
  2. 调用saltstack-api进行系统初始化
  3. 调用zabbix-api 将该新上线机器加上监控
  4. 再次调用saltstack-api 部署软件
  5. 调用deploy-api 将当前版本的代码部署到服务器上
  6. 调用test-api 测试当前服务运行是否正常
  7. 调用slb-api 将该节点加入集群

智能化 智能化的自动化扩容、缩容、服务降级、故障自愈 触发机制–》决策系统–》 触发:

  1. 当某个集群的访问量超过最大支撑量,比如10000
  2. 并持续5分钟
  3. 不是攻击
  4. 资源池有可用资源

4.1 当前网络带宽使用率 4.2 如果 是公有云–钱够不够

  1. 当前后端服务支持量是否超过阈值 如果超过应该后端 先扩容
  2. 数据是否可以支持当前并发
  3. 当前 自动化扩容队列,是否有正在扩容的节点
  4. 其它业务相关的

基于ITIL的IT运维管理体系 服务是向客户提供价值的一种手段,使客户不用承担特定的成本和风险就可以获得所期望的结果 先有ITSM,后有ITIL ITIL是ITSM的最佳实践 成为一名运维经理:ITIL PMP


文章作者: 老王
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 老王 !
评论
  目录