运维自动化流程

  • A+
所属分类:自动化运维

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

  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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: