0%

DevOps 环境管理

环境管理#

Overview [1]#

GitOps [2]#

GitOps = 版本控制系统 + 基础设施即代码
GitOps = GIT + IaC

  • 好处
    环境配置的共享和统一管理

  • 基于持续集成和持续部署的软件开发和部署流程。

开发人员提交代码改动到Git仓库,触发持续集成流水线,进行构建、测试和检查,生成新版本应用的制品并上传到制品库。

针对测试环境的配置仓库创建一个代码合并请求,将环境变更配置合入主干,并自动化地触发部署流水线,将新版本的应用部署到测试环境中。

测试通过后,将代码合并到主分支,再触发全面的集成流水线环节进行更加全面的测试工作。当流水线执行成功后,可以自动针对预发布环境的配置仓库创建一个合并请求,评审通过后,系统自动完成预发布环境的部署。

如果职责分离要求预发布环境的部署必须由运维人员来操作,将合并代码的权限只开放给运维人员。运维人员可以登录版本控制系统,查看本次变更的范围、评估影响、按照部署节奏完成部署。整个过程中的配置过程和参数信息都是透明共享的,使得开发和运维团队的协作更加高效和透明。

IaC(基础设施即代码) [2]#

  • 基础设施即代码
    用一种描述性的语言,通过文本管理环境配置,并且自动化完成环境配
    置的方式。典型的就是以 CAPS 为代表的自动化环境配置管理工具

  • 复用性
    通过将所有环境的配置过程代码化,每个环境都对应一份配置文件,可以
    实现公共配置的复用。

  • 自动化
    环境的配置过程,完全可以使用工具自动化批量完成。

  • Config Management

    • ansible
    • salt
  • infra Provisioning

    • Terraform

CMDB [1]#

存储跟硬件和软件相关的配置信息

  • 建模

  • 数据录入

    • 录入方式
      • 自动扫描
      • 人工录入
    • 数据
      • 环境中的物理服务器的信息
      • 环境中的部署服务的信息
      • 服务部署在哪些服务器上的信息
  • 对外的接口

    • 模型变更
    • 配置项变更
    • 查询接口
  • 与部署脚本集成

参考#

  1. 《10 环境管理:交付测试环境的迅猛方法》 lg2064-DevOps 落地笔记-拉钩专栏 V
  2. 《16 | 环境管理:一切皆代码是一种什么样的体验? 》 石雪峰