一种自动化运维架构的概述

前言

自动化运维架构,是一种综合了管理机制、权限划分、软件和人员支持的综合架构。在建设和优化的过程中,需要设计人员不断根据产品现状进行调整。这篇文章主要从 测试环境、造数规范、运维入口、服务器和软件规范、网络隔离级别 几个方面入手,阐述实用的运维架构的编制方法。

目录

  • 什么是自动化运维
  • 运维入口的一致性
  • 入口一致性之测试篇
  • 入口一致性之人员篇
  • 入口一致性之服务器篇
  • 入口一致性之软件配置篇
  • 入口一致性之网络篇

这里的自动化运维,主要是应用上线后的  测试环境管理 / 应用更新 / 监测机制 。读者可以参照这些机制,按照现有或将来的技术发展、选择适合自己的软件和设备来实现架构。

当然,自动化是运维发展到一定程度(注意:不是一定规模)的自然需要。在此之前,运维入口的一致性(如:统一抽取日志 / 统一监控等软件的安装位置 / 统一系统用户权限等)、服务器规范和软件规范的一致性必须得到保证。下面就笔者掌握的经验来谈谈。

首先从测试环境管理机制讲起。测试环境与生产环境相比,除了代码的差异外、还有系统数据的差异。而两种环境之间,应该共享一套用户认证机制(如采用相同版本的 CAS 、 LDAP 等统一访问协议)和网络划分 / 权限管理方法。此外,数据库安装位置和参数设置也应尽量和生产环境对齐、以便复现问题和减少排查工作。

服务器 数据库 涉外文件服务器 / CDN
认证方式 建议与生产一致 建议与生产一致 建议与生产一致
账号规范 建议与生产一致 建议与生产一致 建议与生产一致
部署方式(DevOps 、 Yum 安装、NPM 安装等) 建议与生产一致 建议与生产一致
请求网关(Nginx 、Httpd等)
安装位置 建议与生产一致 建议与生产一致
日志采集 建议与生产一致 建议与生产一致 建议与生产一致
应用数据规范 需要区分 需要区分
网络权限 建议与生产一致 建议与生产一致

如上表所示,空白的部分建议按需考虑。测试环境不是简单复制了生产环境,有一些部分还需要进行调整、因为测试环境是针对设计场景和生产问题而服务的。测试环境非必要不引进生产的数据。一般在涉及基础软件(如应用框架版本 / 服务器操作系统 / 数据库版本变更)的修改时,才需要引进生产环境的真实数据。

与真实数据相对,我们需要测试环境的造数规范。测试环境应该有一套完整的用户、物料、组织单元、系统权限名称(等)的命名规则。如所有测试用户都以 “测” 开头,且名字应该随机生成。各测试系统间的接口 / 直联数据库等应该实现自动生成;避免开发和测试人员在不同系统间,重复录入测试信息。

业务流程所需集成环境 单据生成 其他
生产 可以按各自规范集成 可以按需使用模板或手工生成
测试 需要一键集成、节省测试时间 建议按业务场景预制模板后,用模板生成

接下来,我们具体谈运维入口的一致性。业务系统各模块应该有对应的责任人(Owner),对系统的原始数据拥有使用权。如果该模块使用了其他模块的数据,则按原始数据的模块 Owner 一同会签管理。当需要进行运维,应当由各模块的 Owner 以书面形式提交到工作台。工作台在明确需求后,如需要开通访问权限,则通过脚本在目标机器生成临时账号,使用后及时删除该账号。如需进入超级用户操作应用,则需工作台人员输入账号密码、并全程在工作台人员陪同下操作。

还有服务器规范。服务器安装应该按应用机、数据库机、堡垒机(集群)进行网段划分。特别是数据库和应用服务器,单体应用通常采用数据库和应用在相邻 IP 地址部署(好朋友天天见?)。而且堡垒机应该设置对应的令牌、限制单次访问的会话长度。

还有软件规范。软件安装应采用统一的目录。如 Windows 机器可以专门安装在非系统盘的某个固定位置、Linux 机器可以在 /etc 等位置统一安排、保证需要访问的软件之间互通目录权限。并且,需要分开安装目录和备份目录。备份规则可以是 【软件名字】+【备份时间】+【 生产/  测试 / 开发】。这里的目录和软件权限,可以和各生产 / 测试环境的账号权限管理结合起来。下面举例说明一些用户名字和访问权限的关系。同一个用户(主账号)可以绑定多个下面的权限账号。且当主账号所属人员离职和调动后、原有权限账号可以统一停用;或按下面规则转移一个或多个权限账号给交接的主账号。

名字 权限 使用范围
zhangsan_prd_guest 常规权限,访问管理员以外的目录;可以用作文件传输、数据处理等。 生产环境
lisi_dev_dataquery 数据库权限,专门访问数据库查询;建议只能访问数据库所在目录。 开发环境
wangwu_uat_datamaster 数据库权限,包含创建表和删除表的权限;建议只能访问数据库所在目录。 测试验收环境
gongliu_prd_admin 可以访问 linux 的 /home 目录或 windows 系统盘,具有完全操作权限。 生产环境
zhaoqi_dev_appadmin 可以访问配置好的 http 服务器(IIS / nginx / tomcat / Webshpere 等)目录,具有启动和停止应用的权限。适合进行日志调取、故障排查等场合。 开发环境

还有补充网络隔离级别的规范。

总结

以上是对于自动化运维架构的一些想法和编制思路,希望能帮到大家。

(完)

你可能感兴趣的:(架构与项目形态,自动化,架构,运维,集中监控)