在运维领域,运维自动化一直是运维技术造诣最重要的体现,也是运维的灵魂。同样,容器也在运维领域引领着运维自动化的技术变革。接下来主要介绍容器所引领的运维自动化发展的4个阶段。

人工阶段

在单机架构、集群架构的物理机IT体系下,服务器没有那么多,我们的日常运维全部依赖人工。日常运维维护需求全由人工输入命令解决,这是运维的最原始阶段。在人工苦力的阶段,我们完全没有精力考虑运维自动化,甚至连运维自动化这个概念可能都没听说过。

(1)和硬件相关的工作和硬件相关的工作主要分为以下两类:

  • 搬服务器,网络部署,机器上架。

  • 硬件日常维护:联系机房重启机器,更换磁盘,更换内存,解决硬件故障等问题。

(2)和系统相关的运维工作主要分为两大类:

  • 系统环境运维状态维护:环境安装配置、性能调优、安全加固、日常运维故障处理、运行状态监控及巡检等。

  • 业务代码变更发布:代码部署、代码日志查看、代码版本回滚、代码运行环境重启等。

脚本及工具阶段

开始将日常重复的工作通过脚本、工具来完成,以此替代人工方式,提升维护效率。运维自动化便是这个阶段开始发展起来的,这让大家明白了批量服务器通过脚本及工具进行集中化管理,是运维人员技术、效率最重要的价值体现。

传统运维中,要说运维脚本领域排行第一的,当属Shell脚本了。能把日常运维命令直接方便快捷地封装成Shell脚本,以此代替人工操作,实属不错的提升日常维护效率的办法。在云端运维中,Python却逐步成为运维脚本的首选编程语言。运维自动化工具方面,当属Ansible、SaltStack、Puppet这三大自动化工具。

在Ansible+Shell基础之上加入Rundeck后,可实现集中图形化管理,并且还可以根据不同角色来进行权限划分。这样一来,运维人员就不需要记住专业的自动化命令了,在页面上就能实现自动化管理。

平台化阶段

衡量自动化运维工作的情况就是登录服务器的次数。随着运维自动化的发展,运维自动化从脚本及工具阶段演变至平台化阶段,即运维自动化的终极目标就是不登录服务器,通过Web界面进行简单设置操作就能完成所有日常运维管理工作。

随着云平台的普及,云平台能对IT资源做自动化管理,所以本身云平台就是一个大的运维自动化平台。也是因为云平台的出现,运维技术直接跳过人工阶段、脚本及工具阶段,到了平台化这个阶段。用户不用熟悉及关心底层维护的技术,只需在控制台一键式完成IT资源管理维护,它能满足80%的中小型互联网需求。

平台功能模块概要如下:

  • 账号管理:运维平台的登录,通过公司内部的LDAP集中进行用户认证管理。

  • 客户管理:包含我们运维所有客户信息、运维档案信息,如我方架构师、运维人员、销售人员、客户对接人员等,以及客户拜访记录等。

  • 项目管理:项目总览、告警通知、接口管理、监控配置、堡垒机配置、告警记录模块。

  • 资源管理:项目相关的云资源,通过API查询各个云平台的资源进行汇总集中管理。

  • 系统管理:用户管理、分组管理、角色管理。

  • 配置管理:账户管理、堡垒机配置。

  • 任务管理:主要通过Ansible做任务下发及管理。

随着业务的发展,业务架构由传统的分布式架构演变成如今热门的微服务架构。采用微服务架构,其实是业务层的解耦拆分,主要带来业务上的重组及快速迭代等弹性优势。但随着微服务越来越多,维护的服务器也日益增加。在此基础之上GitLab+Jenkins+K8S+微服务是云端DevOps的最佳实践。

智能化阶段

AIOps的核心在于AI算法在运维领域的运用,但当前在市面上类似的成熟解决方案及产品少之又少,还处于概念期。需要针对用户的IT资源进行检测与诊断,从云平台、云主机到集群,为用户提供监控、安全、费用、优化等多方位的提醒、告警及实施方案,帮助用户大幅地缩短IT系统的平均诊断时间,提升IT系统管理效率。

智能扩容、故障自愈、智能分析等进一步减少了人为参与,也进一步提升了运维效率,这是未来运维的发展方向。