DevOps之环境管理

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

什么是环境管理?


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

比如下面的配置信息:


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


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


为什么需要环境管理?

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


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


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


环境管理实践

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


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

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


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


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


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


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


目录
相关文章
|
8月前
|
安全 Devops 测试技术
DevOps高效开发管理-云效实践初体验
本实验带您体验通过云效产品,实现快速持续交付。
2039 0
|
存储 供应链 安全
聊聊DevOps制品管理-不止是存储制品这么简单
制品管理是DevOps实践过程中的重要环节,起着承上启下,收集过程信息的重要角色; 于此同时,制品的引入使用会存在安全风险,组织需要关注这一点,避免类似Log4j2安全事件带来的一系列风险; 作为实践者,在制品的管理上需要结合组织和流水线需要,指定相应的规范,避免混乱; 好的制品管理流程,可减少开发自测和测试人员进行接收测试衔接过程中的低效沟通;
656 0
|
运维 Devops 网络安全
DevOps实践-SCM代码仓库管理
人在不同的阶段对于同一件事会有不同的理解。而且每个人都来说个人方向选择、精力与经历都左右着对同一件事情的理解。
240 0
DevOps实践-SCM代码仓库管理
|
存储 jenkins Devops
DevOps实践-Jenkins的环境管理讨论
在经过公司内部自研持续交付环境,再到使用很长时间的Jenkins之后。
189 0
DevOps实践-Jenkins的环境管理讨论
|
存储 Kubernetes 负载均衡
kustomize (三) devops和开发配合管理配置数据behavior: merge、namePrefix、nameSuffix
kustomize (三) devops和开发配合管理配置数据behavior: merge、namePrefix、nameSuffix
|
敏捷开发 运维 安全
DevOps高效开发管理-云效实践初体验
欢迎来到我的小院,我是霍大侠。 最近因为团队成员扩大,产品线增多,产品功能也要求快速响应,这些问题一直让我非常烦躁。 之前也了解过DevOps理念,但是一直没有真正实施起来。 这次希望可以通过体验阿里云的云效产品,真正应用到团队中。
|
云安全 分布式计算 监控
云安全管理中的DevOps职责
通常,安全属于信息安全团队的工作范畴。这样的网络安全实现方式曾一度运作良好,直至最近几年才发生变化。
257 0
|
缓存 负载均衡 前端开发
DevOps之API管理
API驱动测试开发
1292 0
DevOps之API管理
|
运维 架构师 Devops
如何使IT服务管理融入Devops世界
尽管IT服务管理(ITSM)和IT基础设施库(ITIL)多年来一直都在发布更新,但它们如何与开发和运维(Devops)等Z代的方法相提并论?这是行业专家提出的问题。
|
存储 Kubernetes 安全
Kubernetes 1.4:一个DevOps工具管理所有的容器
本文讲的是Kubernetes 1.4:一个DevOps工具管理所有的容器【编者的话】有很多的DevOps工具管理容器,但Kubernetes迅速成为其中的佼佼者。
1845 0

热门文章

最新文章