随着互联网发展迅猛不同的公司IT基础设施面临的增长和快速发展。从人肉维护建设到半自动全自动由此产生的自动化体系/运维工具越来越多前大多数运维IT环境架构主要分为3种技术体系:

1)开源工具

2)自研发工具(更多的是包含和利用开源软件优秀的特性进行定制化开发)

3)从0自主研发,底层改造到应用层开发


  

开源的代表作有很多比如:puppet,saltstack,Ansible,Nagios,Zabbix,cobbler,Docker,KVM,Openstack等主流开源软件。

自研:资产管理系统发布系统监控系统配管系统工单系统等。


总结运维自动化已经是成熟的代名词了无论从网上搜索还是各大技术分享都有很多不错的案例和实施过程。

但也很多朋友觉得实施起来很困难复杂但是看似很简单。


困难和复杂想不通如何把重复性不可规整/聚合业务连接成一线枢纽。

看似简单因为有人/其他互联网运维团队实施出来了实现的还不错看似近在迟尺。



1)定义:

先定义后实施这个是关键点想明白才去做没想明白千万别去做否则只有推翻重来或者坑越来越多。


定义分为三个层面:

1.数据的定义

2.事件的定义

3.流程的定义


1.数据的定义

一切的基石基于数据第一步数据的纬度要设计好

1.机房的定义比如北京机房上海机房香港机房等

2.机器类型定义私有云公有云物理机公有云:ali,aws等细化纬度。

3.业务定义比如官网业务订单业务等纬度细化。

4.存储的定义比如根据自家公司的业务和技术体系来设计

比如哪些基础信息是需要的哪些信息看似可要/可不要的要做好取舍。

数据存储的信息一定要是展现出来有实际意义的数据存储不在于多而是在于价值繁重的数据越来越多如果定义很多可有/可无的数据存储对于一个IT基础资产库来说也是种负担。

数据的存储考量唯一的有价值的可维护可扩展的四个原则。

5.协同的定义当拥有一份完整的IT基础资产库的时候只是一份基石基石铺垫好了才有上升的扩建空间数据的标准接入协同分为二部分

1)内部的系统/资源运维内部的系统

2)外部的系统/资源  (业务安全的系统


内部系统/资源和外部系统/资源对资产信息库的对接关系策略纬度

1.可增加/删除的初始化类型数据系统/可移除的资源数据系统比如自动化装机系统

2.可获取的获取的信息纬度哪些类型比如发布系统监控系统(拿到资产信息库的业务类型主机/IP信息等。

3.可查询的单条件查询多条件查询连同条件查询比如安全审计系统业务类型系统对外/对内访问IP区分等。



2)事件的定义:

第一要点的数据定义已经设计好有了完整规范的数据格式来定义围绕基础信息库基石上扩展事件。

事件定义的逻辑方法论事件设计-事件构建-事件交付-事件数据汇总


每个自动化操作都依据某个事件场景来实施实施的策略很多也需要平衡好优缺点。

1)数据的初始化录入系统俗称自动化装机系统

自动化装机系统初衷

1.需要人工重复性操作

2.快速交付时间周期慢

3.技术提升优势不大

4.用事件根据场景来优化


自动化装机系统交付要点(根据不同主机类型来构建事件场景):

1.物理机类型硬件层面不同硬件厂商的类型比如远程卡,BIOS初始化,RAID阵列自动划分软件层面:cobbler)

2.公有云类型  (服务商的Api或者SDK接口

3.私有云类型 (Openstack,Docker,KVM私有云规范的Api接口或者自己构造一份标准的接口).

4.从类型选择初始化配置-内部DNS数据接入-获取主机信息资源-启动新主机。

5.数据完整保存方便以后分析和进一步优化。比如成本的使用/扩展业务方机器资源使用率分析对该事件场景构建优化提升之处。


发布系统,运维日常支持工作占到百分之50%或者更多。代码发布也是运维考核的和支持最重要的一项日常工作。

发布环境常用的包含:local,beta,demo,gray,online

发布的代码类型混合型居多。

通常情况下人肉支撑的耗时重复性自检成功/失败发布排查故障周期很长。尤其是对于重要业务平滑耗时的情况更多。

而发布系统满足重要的三个因素

1.自动无损平滑发布支持多种负载均衡策略发布代码不重启服务策略环境组主机流量自动切换和可视化实时过程/结果查看。

2.稳定并行的构造多环境/多业务发布即使某个业务出问题对于整个发布平台/其他业务发布也是无感知无影响。

3.权限安全隔离完整的审计功能让研发自助的发布。

4.数据的完整保存分析目前业务发布测试/迭代资源调度率发布时间点全年发布优化指标等。


总结以上就举2个事件场景构建的案例一切事件构建皆为场景场景的价值在于数据是否帮助/量化改进业务层面/运维层面的持续增长/交付。



3).流程(一切入口,规范,从流程抓起)

为什么最后才是流程因为在没有数据做基础铺垫事件场景构建一切谈流程都是空话虚拟的。


流程基于实施的要素

1)基于一切数据+事件的入口配置

2)流程不在于复杂在于易用快捷可塑造。

3)源地址-目的地址全部过程保存可追踪。



自动化价值:

1)价值性产出:站在业务/团队角度去思考,不追从完美产品方案,只选择合适的产品方案,同时在一定程度上做好取舍。

2)从小而做到细,从细扩展到大,才是本质。

3)  自动化产出一切为数据,对数据定义要设计好,宁愿设计周期长些,也不要盲目实施。