devops:改变思维,让一切更加高效

持续交付发布可靠软件的系统方法(交付生态圈)第十一章:基础设施和

2019-02-17  本文已影响70人  潘晓华Michael

《持续交付发布可靠软件的系统方法》读书笔记

基础设施与环境管理的目标是让所有测试环境(包括持续集成环境)都要与生产环境相似,特别是它们的管理方式。
环境是指应用程序运行所需的所有资源和它们的配置信息。有如下这些属性:组成运行环境的服务器的硬件配置信息:如CPU类型和数量、内存大小、硬盘和网卡等;应用程序运行所需要的操作系统和中间件:如消息队列、应用服务器、web服务器及数据库服务器等的配置信息。
基础设施代表了所在组织中的所有环境以及支持运行的所有服务,如DNS服务器、防火墙、路由器、版本控制库、存储、监控、邮件服务、日志服务等。
准备部署环境及管理它,要基于以下原理,用一个整体方法来管理所有基础设施:

为了减少在类生产环境中的部署风险,需要精心管理以下内容:

理解运维团队的需要

开发团队往往需要尽可能快地交付软件,而运维团队的目标是稳定性。所有人的共识是:让发布有价值的软件成为一件低风险的事情。做这件事的最好方法是频繁发布,每次发布的变更很小。
运维团队使用熟悉的技术,在各个环境统一部署技术栈。开发人员是最开始部署环境的,所以一开始运维团队也需要在最开始写脚本的时候就加入其中。
对应用程序配置、中间件配置、操作系统配置、数据库配置等都需要进行统一管理。将它们像源代码一样加入版本控制库中,同时它们的配置也是部署流水线的一部分。

基础设施的建模和管理

如果项目处于开始阶段,这是制定基础设施配置管理策略的好时机。如果是一个遗留系统,并且没有好的控制规范的话,就要找出让它处于受控状态的方法。

对基础设施的修改是一个严肃的问题,在个问题上对测试环境与对生产环境同等重要。如果无法通过一个自动化过程从头重新创建基础设施的话,首先要实现访问控制,没有审批,不得对基础设施做任何修改;接下来在不关闭访问控制的情况下,创建自动化过程来管理基础设施。当然对测试环境的变更审核可以比生产环境的变更审核更容易些。
对基础设施进行修改的关键特征

服务器的准备及其配置的管理

服务器可以使用PXE来做自动化的远程安装,或者使用虚拟化技术。同时服务器的配置需要添加到版本控制库中进行统一管理。一旦安装好操作系统后,就必须保证任何配置的修改都是以受控方式进行。除了运维团队外,任何人不能登录到服务器上,同时所有的变更都使用自动化系统来执行。

中间件的配置管理

中间件如果是系统标准安装的部分,直接使用配置管理工具进行部署;而如果不是系统标准安装的部分,可以将中间件打包,并将它放在包管理服务器上,然后使用同样的方式对其进行管理;最后对于没有考虑脚本化或者后台安装的产品,需要对其进行改造,并将配置相关的文件进行版本控制。

基础设施服务的管理

经常会出现已经成功完成部署流水线并在生产环境中运行的软件因为基础设施问题而不同正常工作。如DNS服务问题等。这种问题一般会比较难以诊断。有以下几个建议:

多宿主系统

生产系统中一个重要的增强部分是不同类型的流量使用多个隔离网络,并与多宿主服务器结合使用。多宿主服务器多个网络,一个用于运行备份,一个用于服务器的监控与管理,一个用做服务器间数据传输。

基础设施和应用程序的监控

创建监控策略时,需要考虑以下四点:

监控数据类型

上一篇下一篇

猜你喜欢

热点阅读