环境管理#
Overview [1]#
GitOps [2]#
GitOps = 版本控制系统 + 基础设施即代码
GitOps = GIT + IaC
好处
环境配置的共享和统一管理基于持续集成和持续部署的软件开发和部署流程。
开发人员提交代码改动到Git仓库,触发持续集成流水线,进行构建、测试和检查,生成新版本应用的制品并上传到制品库。
针对测试环境的配置仓库创建一个代码合并请求,将环境变更配置合入主干,并自动化地触发部署流水线,将新版本的应用部署到测试环境中。
测试通过后,将代码合并到主分支,再触发全面的集成流水线环节进行更加全面的测试工作。当流水线执行成功后,可以自动针对预发布环境的配置仓库创建一个合并请求,评审通过后,系统自动完成预发布环境的部署。
如果职责分离要求预发布环境的部署必须由运维人员来操作,将合并代码的权限只开放给运维人员。运维人员可以登录版本控制系统,查看本次变更的范围、评估影响、按照部署节奏完成部署。整个过程中的配置过程和参数信息都是透明共享的,使得开发和运维团队的协作更加高效和透明。
IaC(基础设施即代码) [2]#
基础设施即代码
用一种描述性的语言,通过文本管理环境配置,并且自动化完成环境配
置的方式。典型的就是以 CAPS 为代表的自动化环境配置管理工具复用性
通过将所有环境的配置过程代码化,每个环境都对应一份配置文件,可以
实现公共配置的复用。自动化
环境的配置过程,完全可以使用工具自动化批量完成。Config Management
- ansible
- salt
infra Provisioning
- Terraform
CMDB [1]#
存储跟硬件和软件相关的配置信息
建模
数据录入
- 录入方式
- 自动扫描
- 人工录入
- 数据
- 环境中的物理服务器的信息
- 环境中的部署服务的信息
- 服务部署在哪些服务器上的信息
- 录入方式
对外的接口
- 模型变更
- 配置项变更
- 查询接口
与部署脚本集成
参考#
- 《10 环境管理:交付测试环境的迅猛方法》 lg2064-DevOps 落地笔记-拉钩专栏 V
- 《16 | 环境管理:一切皆代码是一种什么样的体验? 》 石雪峰