运维自动化平台之路


导读

  • 什么是运维
  • 自动化运维体系
  • 后记

      
运维自动化已经不再是新鲜名词,特别是随着Devops思想的影响下,越来越多的互联网产品公司已经开始搭建属于自己的运维自动化平台,甚至个别公司已经走在了AIDevOps实践的路上。那么,运维自动化的到底是什么,为什么需要自动化?如何落地呢?
       当然本文是基于中小型互联网公司自动化平台实践,大型公司的自动化不在讨论之列。另外,由于涉及数据安全等原因,每个公司都趋向于搭建各自的自动化运维体系,仁者见仁,智者见智。


什么是运维

  
在不同的企业中,关于运维的这个岗位的理解也有很多不同。有的说是网管、有的说是搞网络相关的、有的说是搞机房监控相关的、有的说负责备份与上线的、也有的说是写脚本和程序的,还有的人说是专业背锅的,其实所有的理解都是都对,这些都属于运维工作的一部分,只不过是不同层次、不同岗位的人负责而已,每一项技术都可以说是运维工作,所以不能否认任何人对运维的理解。
   运维的主要工作职责是保障业务的正常运行,不断的更新和提高产品技术的稳定性和安全性。运维部与研发部、测试部和系统管理部门统称为互联网产品技术支撑的四大部门。运维部门又可以大方向的分为:业务实施、应用实施、架构实施、自动化实施和安全管理实施。运维工程师是集合网络、系统、安全、监控、日志、数据、脚本、程序、虚拟化、云计算和集群分布式等所有技术为一体的自动化、结构化、智能化和全面化的岗位

  • 传统运维

  传统运维部门在制订IT设备和信息化系统管理目标时,关注的是一台台IT设备的故障率和一套套应用系统的可用性,在基础设施、数据库、中间件、灾备、存储等环节通常大量采用商业闭源的软硬件产品及其解决方案,设备的开放性差、标准也不统一,管理时遵循严格的ITIL管理体系,喜欢采用两地三中心这种典型的重量级、集中式运维管理方式。

  随着IT规模越来越大、系统越来越复杂,运维保障工作由最初的硬件运维不断细分,网络工程师、系统运维工程师、DBA、安全工程师等岗位加入到运维体系中。

  当业务系统发生故障时,IT主管首先召集自扫门前雪的各个运维岗位进行自检,查看各自负责的设备、应用组件、系统是否运行正常。

  所以,传统运维部门常常被称为“救火”队员,依靠人工巡检的工作方式,不但工作被动,而且效率低下。

  • 互联网运维

   到了互联网时代,一切以互联网为核心,IT的边界被完全打开,IT系统不再是为企业内部管理提供支撑,而是为亿万互联网用户提供各种线上服务。因此,IT部门成为了互联网企业的核心,而保障线上业务持续、稳定运行,也是互联网企业的第一使命。

  互联网运维最关注互联网用户体验,重视响应时间、可用率等性能指标,常常会要求系统可用性达到四个九。因此,互联网运维在基础设施、数据库、中间件、分布式存储、自动化部署等环节通常大量采用开源或基于SaaS的自动化运维监控工具,如Zabbix、Nagios和云智慧监控宝等,这些产品的横向扩展能力很强,具有分布式、轻量级、模块化、去中心化等特点。

  故障发生时,要求互联网运维能够第一时间发现问题,并快速定位问题。依靠人工巡检的传统运维管理方式严重落后,因此,自动化运维逐渐流行。这就对互联网运维工程师的开发能力提出了更高的要求,熟悉Python之类的脚本语言只是基础,玩得转各种开源监控系统,能够根据业务特点和企业需求定制开发自动化监控和告警工具。

  这一时期,运维和开发之间的边界变得模糊起来,DevOps成为互联网产品从开发到上线维护的新选择。同时,传统运维部门已经开始组建专业的运维开发团队来支撑自动化体系平台的搭建。运维人员也将通过自动化平台来完成服务器操作,从手工运维到自动化,到无人值守。


自动化运维体系

  以下是笔者针对公司某个阶段运维场景整合的自动化体系(公司处于快速成长期),这里仅供参考:

  •   运维体系采用自建服务器+云服务模式
  •   ETCP基础数据管理中心
  •   工单系统属于一个平台+工具套件,从入口到终端,实现一条龙运维。
  •   同时还有多种监控报警体系,实现人机互动,事前可预知,事后可追溯。
  • 平台的建立,解放运维,让更多相关人进入系统,基本实现自助式,自动化运维。
  • 不断整合,形成一个平台,让运维工作更聚焦。

  一幅小图,旨在抛砖引玉。往往看似简单的道理,每一点进步都或背后大量精细的的实践。其中涉及的技术和细节也是蛮多的多种主流操作系统,数据库,云平台,开发语言,安全,架构,算法等...

以下是平台的截图,可以吐槽一下,哈哈

运维知识体系

  这是一位互联网运维老兵总结的运维知识体系,感谢他的分享,希望对新人有所帮助。

任重道远

  坊间此前流行一句话,"能程序完成的事情尽量不要用人去干"。运维自动化道路并不是一帆风顺的,很多时候是需要自己造轮子。 每个公司发展状况不同,并且涉及各自公司的隐私,基本都有定制化的成分,你所要的工具网上可能都会有相关开源项目,但是需要自己整合到体系中。
自动化的下一步是智能化,未来还有更多的路要走。

后记

  鲁迅说过:"世界上本没有路,走的人多了,也就变成了路。"想做一个统一的运维自动化平台的产品或许不太可能, 但是做一点表准化自动化插件或者小工具,是有可能的,这个其实也是商机,你做到了,这条路便可以走的更远。