DevOps之环境管理

简介: 微服务架构下环境管理越发重要

什么是环境管理?


环境是指应用程序运行所需要的所有资源和配置信息

比如下面的配置信息:


  • 服务器的硬件信息,比如 CPU 的类型和数量、内存大小、硬盘和网卡信息,以及服务器之间互联使用的交换机信息。
  • 操作系统的信息,操作系统的类型和版本,操作系统的优化配置,如文件描述符的数量。
  • 应用程序运行所需要的中间件信息,如消息中间件 Kafka 的版本及配置信息。
  • 应用程序本身的版本、数据及配置信息。


环境管理就是准备部署环境的过程以及部署之后对环境的管控。既能保证准备环境的快速和一致性,又使得部署后的环境能够有效利用。希望你学习完本课之后能够达到这个目标。


为什么需要环境管理?

在之前的开发过程中,环境部署基本都是 IT 人员手动完成的。手动部署环境就会导致很多问题,比如:


  • 手动配置环境很容易出错。由于环境的配置项较多,哪怕是改错一个配置项,都会让整个应用无法启动,或者影响服务的性能。
  • 手动配置环境非常低效。通常以周为单位,拖慢了开发、测试的进度。
  • 手动配置环境不方便测试验证。如果出现问题,很难复现,因此给测试验证带来了很大的困难。


因此,我们需要一种能够完全自动化的创建环境的过程。这不仅降低了环境管理的成本和风险,能够快速的交付环境,并且自动化的过程使得环境的部署是可重复的、时间是可预测的。


环境管理实践

为了解决上面提到的问题,每个企业的实施方案并不完全一样。这就要根据落地 DevOps 的过程,采用中因地制宜的方法。有的企业环境的数量、用途是固定的,SIT 测试环境就是用来做集成测试的;性能测试的环境就是用来做性能测试的。一般情况下,环境的物理服务器、操作系统是不会经常发生变化的,变化的只是上层应用程序以及依赖的中间件服务。


基于 Git 的配置管理方式来快速创建环境

image.png这个方案主要包含三个内容,Git 仓库、配置管理数据库(CMDB)和部署平台。


  • Git 仓库:用于存储创建环境的部署脚本,并能够实现版本控制。部署脚本中尽可能将变化的信息抽取成变量,在部署的时候从 CMDB 中获取。比如,在哪些服务器上部署,部署哪些服务,用哪个操作系统镜像等。因此,这里的部署脚本可以理解为模板。


  • CMDB:用于存储每个环境相关的配置信息。包含硬件信息,如物理服务器的信息,CPU型号和数量,内存大小,以及硬盘、网卡等信息;软件信息,如部署哪些应用服务以及服务本身的启动参数和运行参数(数据库连接池大小等)。为了实现模块化部署,每个服务可以设置是否安装等参数。


  • 部署平台:用于从 Git 仓库克隆部署脚本模板,从 CMDB 获取指定环境的硬件配置信息和软件配置信息,用 CMDB 中的数据填充部署脚本模板中的变量。然后执行具体的部署任务,创建出符合要求的环境。


这种基于 Git 版本控制系统存储脚本模板,利用CMDB存储个性化的配置项,最终通过部署平台进行组装的方式,可以快速地、可重复地创建一致性的环境。即通过这种方式,每次创建的环境 A 都是一样的。如果这个环境的配置信息发生改变,只需要在 CMDB 中进行变更即可,再次部署时就会应用到新的环境中。


目录
相关文章
|
Java Linux Docker
阿里云云效流水线自动化构建Java项目并发布到docker环境
阿里云云效流水线自动化构建Java项目并发布到docker环境
821 0
|
6月前
|
监控 Kubernetes 测试技术
阿里云云效产品使用问题之一个模块分别有三个环境,如何通过一条流水线完成
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
敏捷开发 监控 Java
阿里云云效产品使用合集之Codeup WebIDE环境下,如何使用通义灵码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
数据采集 安全 网络安全
阿里云云效产品使用问题之流水线的环境可以在什么地方进行配置
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
运维 Kubernetes 安全
阿里云云效操作报错合集之发布报错,该怎么进构建环境
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
JavaScript IDE 持续交付
阿里云云效产品使用合集之如何配置 Node.js构建任务让其在Windows环境中进行
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
前端开发 Devops 测试技术
阿里云云效产品使用问题之更换所部署的环境关联的ACK集群该如何实现
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7月前
|
运维 安全 Devops
云计算环境下的网络安全策略与挑战构建高效稳定的云基础设施:DevOps与自动化运维实践
【5月更文挑战第27天】 随着企业数字化转型的加速,云计算已成为支撑现代业务架构的关键基础设施。然而,数据存储和服务交付模式的转变也带来了新的安全风险和挑战。本文探讨了在云计算环境中实现网络和信息安全的策略,并分析了当前面临的主要安全威胁。通过深入剖析云服务模型、加密技术、身份认证机制及合规性要求,我们提出了一系列创新的安全框架和解决方案,旨在为组织提供全面的安全防护,同时促进云计算资源的高效利用。
|
安全 Devops 测试技术
DevOps高效开发管理-云效实践初体验
本实验带您体验通过云效产品,实现快速持续交付。
|
存储 供应链 安全
聊聊DevOps制品管理-不止是存储制品这么简单
制品管理是DevOps实践过程中的重要环节,起着承上启下,收集过程信息的重要角色; 于此同时,制品的引入使用会存在安全风险,组织需要关注这一点,避免类似Log4j2安全事件带来的一系列风险; 作为实践者,在制品的管理上需要结合组织和流水线需要,指定相应的规范,避免混乱; 好的制品管理流程,可减少开发自测和测试人员进行接收测试衔接过程中的低效沟通;
862 0