掘金 后端 ( ) • 2021-11-29 16:37

需求

运维是事件驱动,还是自驱动可能是我们在运维工作中不太关注的问题。事件驱动让运维止步于故障,而自驱动让运维不止于建设。持续性的运维建设就需要一套自动化的运维体系,那么我们应该从何入手?

其实前期《运维思考》一系列文章已经给我们答案了,就是从运维框架入手分层建设、打好基础,记住“万丈高楼平地起,勿在浮沙筑高台”。

运维框架

运维体系架构.png

通常讲到运维建设,我们脑海中首先浮现的是“一团麻”,因为这不是一个人、一个岗位的工作,而是一整个团队的工作;所以我们将“这团麻”进行由底层向上可划分为:

  • IT基础设施层

    IT基础设施层,主要由基础运维团队负责,主要包括存储、网络、服务器、安全设备等硬件设施;

  • 数据层

    数据层,主要由DBA团队、大数据团队负责,主要包括数据库、缓存、数仓等;

  • 应用层

    应用层,主要由应用运维团队负责,主要包括基础服务、业务应用、中间件等;

  • 管理层

    管理层,主要由配置管理团队、安全团队、应用运维团队负责,主要包括各种自动化操作、安全管理、监控管理等;

  • 展示层

    展示层,主要由各团队综合管理,主要包括各种管理工具、监控工具等;

通过对运维框架的分解,对各种资源的逻辑隔离,让各个团队明确当前运维建设中的现状与不足。 如果我们能做到对运维框架的持续性关注,通过图片就可以明晰的知道哪个团队的不足,以及日后各团队的重点发力方向。

运维依据

如果你觉得运维框架还不够细致,那么针对框架中各个层次的工作拆解就来了,我们在此将其称之为运维依据

针对这些个运维依据,我们可以展开一些列的针对性措施,如制定规范、自动化流程,如此就能够不断丰富各个团队的制度、规范、流程,何乐而不为?

自动化运维体系.png

1.基础设施层

在基础的硬件设施管理之上,比较重点的工作是

  • 网络分区与隔离

    网络分区应考虑互联网接入区、普通生产区、数据区、外联区等各个区域,保证各区域的合理接入。

    网络隔离对测试、准生产、生产环境各环境进行隔离,避免访问权限混乱。

  • CMDB资产纳管

    CMDB用于管理基础设施层的各项资产,为上层应用提供数据支撑。使用CMDB一定要和业务应用紧密结合,一旦脱离于业务使用,那么CMDB将成为花瓶。

    相关场景可参考《运维思索:接地气的运维自动化建设》。

  • 内部dns

    通过内部dns可以将应用与IP解耦,一旦ip变更则不需要变更代码,生产环境应该尽量少做此种类型变更操作。

  • 服务器快速上架

    为满足业务日益增长的需求,应该具备服务器快速上架、资产实时记录至CMDB等一系列自动化流程。

  • 网络权限变更

    根据应用需求,快速登记并开通网络权限。

等等。

2.数据库

数据库除了特有的集群外,可以考虑数据库工单、sql审核优化等流程。

3.系统应用

  • 容量规划

容量规划是指根据业务用户流量增长、现有容量等一定的基础数据之上进行周期性的评估,如果有条件的话可结合压测实际情况,这样数据会更准确。通过容量规划可有效控制服务器规范,避免资源溢出。

  • 环境维护与部署

为避免因环境差异导致的问题,各环境应用部署需要遵循统一的目录规范,统一的自动化部署方式,分离的应用配置文件。

等等

4.配置管理

  • 统一账号管理

    所有和用户登录相关的平台、管理工具,尽量接入ldap统一账号管理,这样一个账号可以实现所有系统的统一登录。

  • 自动化配置中心

    在此秉承基础设施即代码的思想,通过ansible作为配置中心,在操作系统层面实现系统初始化、环境初始化、组件初始化、自动化备份等中心化管理,各环境交付统一规格的服务器。

  • 流程管理

    结合jira等工作流工具实现操作的流程化管理。

等等

5.CI/CD

基于统一的运维规范前提下,CI/CD可以真正的做到将以上各个层面的想法、解决方案进行落地。因此CI/CD能力很大程度上决定了我们自动化运维的高度。

  • 持续集成

    代码质量测试、单元测试、打包测试、自动化测试等。

  • 操作系统交付

    遵循统一的运维规范,交付统一规格的操作系统,完成对运维平台各个管理节点的资源注册。

  • 版本发布

支持版本平滑发布、回滚、重启等。

  • 自动打包

    Android/IOS 自动打包并上传至应用商店。

6.监控系统

  • 系统建设

    多维度收集、分析监控数据,实现不同层面的告警;

    对于多维度的数据能够进行分析,实现故障自愈;

  • 监控管理

    监控并不是只要做到告警进行了,而是要做到告警的准确性,因此对告警级别、告警收敛、故障自愈策略等的管理需要我们进行重点关注。

7.安全防护

通过必要的WAF、IDS、防火墙等安全设备进行安全防护、流量分析外,还要结合安全渗透去主动发现问题。

8.数据分析

通过对应用数据、业务数据、运营数据进行集中分析、展示,帮助我们更好的了解系统运行状况。

总结

通过以上各个层面的运维框架和运维依据,希望大家能够结合实际情况进行头脑风暴,做到不止于此。

当然自动化运维建设不是一蹴而就的,需要结合规范、制度、流程去逐步实现。

记住运维建设是过程,不仅仅是目标,我们需要跟随技术潮流趋势,持续的优化与丰富这个过程。