运维自动化发展的 4 个阶段
在运维领域,运维自动化一直是运维技术造诣最重要的体现,也是运维的灵魂。同样,容器也在运维领域引领着运维自动化的技术变革。接下来主要介绍容器所引领的运维自动化发展的 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 系统管理效率。
智能扩容、故障自愈、智能分析等进一步减少了人为参与,也进一步提升了运维效率,这是未来运维的发展方向。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/a7f8efde8fd082365751c0299】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论