运维自动化内容的层级划分
- 服务管理 高层
- 运维总体支撑
- 流程规范
- 人力与成本
- 技术决策 中层
- 规划技术架构和方案
- 运营环境管理
- 技术执行 最底层 // <== 自动化的首要目标
- 线上业务部署
- 线上业务日期维护
构建思路
- 分析运维场景和痛点
- 深入运维一线,识别业务场景和痛点
- 对同类痛点抽象,形成模型
- 规划
- 起步阶段着眼全局,分层设计和开发
- 对运维事务流程提前规划对外接口,保证数据一致性
- 通用性
- 横向:方案适应多部门多平台
- 纵向:支持业务流程编排,单步动作解耦
- 与流程联动
- 联动职能部门、人员角色、操作执行各环节
框架分层
- 服务层:业务流程引擎
- 功能层:各应用组件接口
- 基础层:进程管控工具、cmdb、任务调度平台
- 运营环境:os、各类中间件
实施要求
- os层面
- 采集和输入的信息精准
- 统一管控入口
- 能远程批量管控主机
- 应用层面
- 应用接口 + 流程引擎 = 自动化
实施路线
前提条件:数据标准化
- cmdb
- 实施目标:信息数据统一维护,统一查询入口
- 功能块
- 基础架构信息
- idc节点管理
- 网络管理
- 服务器管理
- ip资源管理
- 业务信息
- 业务管理
- 公共接口管理
- 权限管理
- 审计
- 操作日志
- 基础架构信息
- 使用者
- web用户
- api调用
- 关键点
- ci及其属性需要结合实际,同时兼顾长远规划
- 维护ci的属性值,ci间的关系和状态转换机
- 可扩展性,允许添加新属性
- 任务调度平台
- 实施目标:批量执行运营环境的变更部署
- 功能点
- 可批量选择指定的运维执行对象
- 通过平台下发任务,执行并反馈结果
- 使用者
- 部署上线人员
- 关键点
- 平台与业务解耦
- 最大用户自由度
- 持续集成ci
- 建议
- 复用各种开源的部署系统,如puppet、salt、chef
- 使用web封装部署系统的api
- 对运维操作建模,分解为几类原子操作,自由组合
cmdb的核心是对运维元素ci的生命周期追踪和控制。
误区
- 一开始就追求大而全
- 对模型的粒度不易过小
- 全部自动化
- 20%的成本解决80%的痛点即可
成功要素
- 确定建设范围
- 当前现况了解
- 建议从资产管理起步
- 低成本,出短期成果
- 明确发展路线
- 对核心业务的支持
- 考虑公司未来成长的规模
- 使用合适的工具,容易扩容、招人、开源、易维护
- 适当的模型设计
- 明确顶层ci结构
- 控制ci的粒度
- 支持当前交付的业务
- 2/8法则
- 统一配置流程标准
- 按自动化程度控制模型
- 信息采集
- 属性标准化
- 可信验证
- 审计
- 变更追溯
- 持续优化-PDCA
- cmdb的分期建设目标
- 管控风险
- 逐步扩大管理范围
起步阶段常见问题
- 使用cmdb的部门是谁?负责人是谁?
- 对当前运维现况的评估
- 明确初期建设的范围
- 对用户培训
来源:oschina
链接:https://my.oschina.net/u/922576/blog/736210