运维自动化已经再也不是新鲜名词,特别是随着Devops思想的影响下,愈来愈多的互联网产品公司已经开始搭建属于本身的运维自动化平台,甚至个别公司已经走在了AIDevOps实践的路上。那么,运维自动化的究竟是什么,为何须要自动化?如何落地呢? 固然本文是基于中小型互联网公司自动化平台实践,大型公司的自动化不在讨论之列。另外,因为涉及数据安全等缘由,每一个公司都趋向于搭建各自的自动化运维体系,仁者见仁,智者见智。ios
在不一样的企业中,关于运维的这个岗位的理解也有不少不一样。有的说是网管、有的说是搞网络相关的、有的说是搞机房监控相关的、有的说负责备份与上线的、也有的说是写脚本和程序的,还有的人说是专业背锅的,其实全部的理解都是都对,这些都属于运维工做的一部分,只不过是不一样层次、不一样岗位的人负责而已,每一项技术均可以说是运维工做,因此不可否认任何人对运维的理解。 运维的主要工做职责是保障业务的正常运行,不断的更新和提升产品技术的稳定性和安全性。运维部与研发部、测试部和系统管理部门统称为互联网产品技术支撑的四大部门。运维部门又能够大方向的分为:业务实施、应用实施、架构实施、自动化实施和安全管理实施。运维工程师是集合网络、系统、安全、监控、日志、数据、脚本、程序、虚拟化、云计算和集群分布式等全部技术为一体的自动化、结构化、智能化和全面化的岗位算法
传统运维部门在制订IT设备和信息化系统管理目标时,关注的是一台台IT设备的故障率和一套套应用系统的可用性,在基础设施、数据库、中间件、灾备、存储等环节一般大量采用商业闭源的软硬件产品及其解决方案,设备的开放性差、标准也不统一,管理时遵循严格的ITIL管理体系,喜欢采用两地三中心这种典型的重量级、集中式运维管理方式。数据库
随着IT规模愈来愈大、系统愈来愈复杂,运维保障工做由最初的硬件运维不断细分,网络工程师、系统运维工程师、DBA、安全工程师等岗位加入到运维体系中。安全
当业务系统发生故障时,IT主管首先召集自扫门前雪的各个运维岗位进行自检,查看各自负责的设备、应用组件、系统是否运行正常。服务器
因此,传统运维部门经常被称为“救火”队员,依靠人工巡检的工做方式,不但工做被动,并且效率低下。网络
到了互联网时代,一切以互联网为核心,IT的边界被彻底打开,IT系统再也不是为企业内部管理提供支撑,而是为亿万互联网用户提供各类线上服务。所以,IT部门成为了互联网企业的核心,而保障线上业务持续、稳定运行,也是互联网企业的第一使命。架构
互联网运维最关注互联网用户体验,重视响应时间、可用率等性能指标,经常会要求系统可用性达到四个九。所以,互联网运维在基础设施、数据库、中间件、分布式存储、自动化部署等环节一般大量采用开源或基于SaaS的自动化运维监控工具,如Zabbix、Nagios和云智慧监控宝等,这些产品的横向扩展能力很强,具备分布式、轻量级、模块化、去中心化等特色。运维
故障发生时,要求互联网运维可以第一时间发现问题,并快速定位问题。依靠人工巡检的传统运维管理方式严重落后,所以,自动化运维逐渐流行。这就对互联网运维工程师的开发能力提出了更高的要求,熟悉Python之类的脚本语言只是基础,玩得转各类开源监控系统,可以根据业务特色和企业需求定制开发自动化监控和告警工具。分布式
这一时期,运维和开发之间的边界变得模糊起来,DevOps成为互联网产品从开发到上线维护的新选择。同时,传统运维部门已经开始组建专业的运维开发团队来支撑自动化体系平台的搭建。运维人员也将经过自动化平台来完成服务器操做,从手工运维到自动化,到无人值守。模块化
如下是笔者针对公司某个阶段运维场景整合的自动化体系(公司处于快速成长期),这里仅供参考:
一幅小图,旨在抛砖引玉。每每看似简单的道理,每一点进步都或背后大量精细的的实践。其中涉及的技术和细节也是蛮多的多种主流操做系统,数据库,云平台,开发语言,安全,架构,算法等...
如下是平台的截图,能够吐槽一下,哈哈
这是一位互联网运维老兵总结的运维知识体系,感谢他的分享,但愿对新人有所帮助。
坊间此前流行一句话,"能程序完成的事情尽可能不要用人去干"。运维自动化道路并非一路顺风的,不少时候是须要本身造轮子。 每一个公司发展情况不一样,而且涉及各自公司的隐私,基本都有定制化的成分,你所要的工具网上可能都会有相关开源项目,可是须要本身整合到体系中。 自动化的下一步是智能化,将来还有更多的路要走。
鲁迅说过:"世界上本没有路,走的人多了,也就变成了路。"想作一个统一的运维自动化平台的产品或许不太可能, 可是作一点表准化自动化插件或者小工具,是有可能的,这个其实也是商机,你作到了,这条路即可以走的更远。
听说今天是724运维日,祝各位互联网的幕后英雄节日快乐!