配置漂移指南及其预防方法
配置漂移对所有IAAC开发人员来说都是一个重要的问题。本文将介绍配置漂移管理、其重要性、原因和潜在解决方案。
什么是配置漂移?
应用程序所有者必须随着时间的推移不断改变他们的应用程序和基础架构以持续增强它们。这些客户可以是公司内部或外部的。
由于这些更新和更改,应用程序和基础架构的配置也会发生变化。这些修改可能对系统的硬化状态有益,也可能导致系统变差。这就是配置漂移。
配置漂移的工作原理
配置漂移的可能性随着复杂的链接和交付系统的增加而增加。代码通常从开发人员的工作站传输到共享的开发环境,然后到测试和QA环境,最后到演练和生产环境。
随着漂移发生的管道越长,其潜在影响也越大。甚至是开发人员笔记本电脑上安装的软件包版本与测试服务器上安装的版本之间的微小差异都可能导致问题的延迟。通常,只有演练和生产环境被视为彼此的副本。由于许多企业每天都会部署新代码,所以压力非常大。
配置漂移的常见原因
缺乏沟通
有时上游团队未能与下游合作伙伴沟通他们所做的更改,这导致整个下游系统崩溃。
热修补
热修补是对代码进行的更改,用于解决无法等到应用程序的下一个计划更新的紧急问题。有时,解决问题的工程师未能对管道中的其他环境进行相同的更改或记录相同的修复方法,导致了漂移。通常,重新引入原始问题可以解决这种漂移。
关键软件包更新
关键软件包更新与热修补有些类似。两者都是以快速的速度进行的。主要区别在于关键软件包更新是为了避免未来的事故而进行的。因此,这样的更新可能会导致漂移,就像热修补一样。
缺乏自动化
自动化不能完全消除配置漂移的可能性,但可以减少它的发生几率。
便捷性更改
有时开发人员所做的更改是暂时的。例如,如果开发人员在测试服务器上安装了一个新的软件包来测试某些功能,并忘记将其恢复到原始状态,就会发生漂移。
为什么配置管理很重要?
配置漂移之所以如此具有破坏性,其中一个原因是如果没有人持续关注它,漂移可能会逐渐破坏您基础架构的基础,就像房子后面的一个小漏洞一样。
当发现配置漂移时,找出导致其发生的配置漂移的根本原因需要时间,而在紧急情况中,时间是一种宝贵的资源。
在软件开发中,漂移是慢速发布周期的重要原因。它可能导致不必要的工作和阻碍。
降低成本
当您详细了解您的IT基础设施时,您可以通过识别重复或过度配置来降低整体需求量。
提高生产力
具有稳定和熟知配置的集群可以实现批量管理和基础设施构建。此外,通过限制唯一(或雪花式)服务器,可以减少手动管理个别设置的需求。
更快的调试
一致的配置可以帮助调试团队排除配置错误。团队可以集中精力处理其他潜在原因,解决问题更快,因为他们不需要在服务器、服务器群集或环境之间寻找配置差异。
由配置漂移引起的问题
安全问题
不安全的配置是安全漏洞最常见的原因之一。即使您从一个受保护的配置开始,配置漂移可能会导致其他攻击和网络入侵更有可能发生。
停机时间
由于配置错误导致攻击者利用漏洞或者威胁关键服务器,可能会导致长时间的停机。而且,假设您修改了网络设备的配置以影响性能,您总可以回到您的“黄金配置”,对吗?如果该配置有缺陷,恢复服务将需要更长的时间。
不符合规定
符合像ISO 27001,PCI-DSS和HIPAA这样的法规所需的严格安全控制是必要的。如果不阻止配置漂移,可能导致不符合规定。
性能下降
配置通常是在其预期状态下时处于最佳状态。临时修改可能会导致瓶颈和冲突,从而阻碍了优化尝试。
浪费时间
如果您不了解或者网络与您的网络文档不匹配, 那么解决网络问题将会花费很长时间。这意味着配置漂移可能会导致IT故障排除问题,这些问题可能本来不存在,或者如果网络处于预期状态,解决起来会更容易,此外还会给用户带来停机时间。
在监控配置漂移时要注意的常见错误
在一个完美的世界中,开发人员的所有环境服务器(Dev/QA/Staging/Prod)应该具有相同的配置。然而,商业环境中,当软件引入新功能时,应用程序所有者经常修改基础架构。
监视配置漂移对于确保软件环境尽可能均匀非常重要。配置管理可以降低成本,提高生产力和调试时间,并增强user experience。
为了尽可能成功地进行监控,组织在使用配置管理和监视配置漂移时必须避免错误。
常见的错误如下:
未维护配置管理数据库(CMDB)
保持配置管理数据库(CMDB)更新是配置管理的重要组成部分。通过配置管理数据库提供网络硬件和软件安装的信息,可以在一个地方进行检查。为每个资产或配置项收集数据,提供工作场所的可见性和透明度。
未维护CMDB会使企业面临不完全了解一个配置如何影响另一个配置的危险。组织在不了解后果的情况下,有损其基础设施和安全。
CMDB可能难以管理,特别是资产数量增加时,但有效的数据库组织和管理对于成功跟踪配置漂移和理解基础设施至关重要。
没有监控配置漂移的计划
组织通常拥有庞大而复杂的基础设施需要监控。确定哪些组件最需要监控是至关重要的。否则,配置管理可能迅速变得难以管理和混乱。
组织必须明确指定哪些资产对公司和特定业务单位至关重要。最关键的系统将受到监控,这将因单位和行业而异。
不自动监控
组织可以通过多种方式监控配置漂移。然而,有些方法比其他方法更精细和成功。
手动监控配置漂移是昂贵且耗时的。手动监控也会存在人为错误的可能性。除非您的公司基础设施非常小,否则这不是监控配置漂移的最佳技术。
自动监控是保持配置处于所需状态的最先进和有效的方式。专用配置监控系统可以立即检测到漂移,并经常提供解决方案,包括快速校正。这确保企业的基础设施尽快返回所需状态,并尽可能地减少影响。
如何监控配置漂移:
一旦意识到配置漂移可能造成的损害,就会明显地意识到检测配置漂移应该是头等大事。了解要保留的内容及其为何被呈现为创建漂移的更改是该过程的第一步。
了解您要寻找的内容
通过确定对整个组织至关重要的组件和对每个业务单位至关重要的组件,可以对组织进行分级处理。
这在各个单位之间存在差异,并且在高度管制的行业可能是广泛的,或者仅专注于更窄的系统关键文件/应用程序。系统的重要性将决定监控系统的频率和严重程度。
设置基准线
由于各种设置,生产环境和测试阶段之间始终会存在差异。通过定义每个步骤应该是什么以及允许的偏差类型,可以创建用于检查漂移的基准线。
早期测试阶段可能比用户验收设置或零漂工厂阶段更适合较高的漂移容差。
监控您的系统
所需的监控级别将根据组织的成熟度、当前系统、工具、需要检查的配置总数以及所需的审查级别而异。根据要求和合规性,监控在组织内的每个单位可能有所不同。
如何预防配置漂移
在定义配置基准和允许的差距之后,监控必须确保基础设施保持在适当的配置中。没有监控策略,构建配置计划和文档都是浪费时间。
可以采用各种方法来监控配置漂移,许多企业将根据其成熟度和需求结合方法和工具。
持续手动监控
可以手动审查并将个别机器配置与已知配置文件进行比较。由于人为因素,这个过程仍然存在错误的可能性,并且在员工工时方面昂贵。它只适用于少量特定服务器集群或具有较小基础设施占用的公司。
审计
作为配置审计的一部分,团队会手动检查服务器配置,并将其与指定模型进行比较。由于需要专业知识来确定应如何构建系统,然后对任何未记录的更改进行彻底调查以确定是否应该保留,因此这些审计可能很昂贵。
审计团队还对下次审计期间将应用的配置文档进行必要的调整。由于时间和成本的考虑,审计通常保留在高价值或合规性重的集群中,并定期执行,通常一年多次。
审计确保了服务器配置在预定的时间表上始终保持一致和可重复。
然而,在下次审计之前,设置将会漂移并变得越来越多。
实时自动监控
自动实时监控是保持配置处于期望状态的最复杂的方法。为此,必须创建服务器或服务器组,并描述它们应该如何配置,利用设置工具。
这些程序将使用轻量级代理来监视该组中的服务器配置,并将其与其定义进行比较。
这个自动化过程会立即警告有关漂移,并通常提供几种选择来纠正服务器漂移。
最后的话:
计算机或设备之间的不一致的配置项是配置漂移的根本原因。当软件和硬件修改没有经过彻底记录或跟踪时,配置漂移在数据中心环境中自然发生。
许多高可用性和系统故障都归因于配置漂移。管理员应该详细记录硬件设备的网络地址,以及安装在其上的软件版本和已进行的升级,以最小化配置漂移。