什么是配置管理?

配置管理是公司或组织定义和跟踪其基础设施资源状态的过程。 封装在这些资源中的是物理硬件和软件。 这是一种确保在对系统进行更改时跟踪这些更改的方法,以适应最终的预定义标准,即状态应该是什么。

此外,配置管理的自动化对于构建和维护更复杂的系统是不可或缺的。 要了解配置管理在当今复杂的技术生态系统中的重要性,想象一下反过来意味着什么是有用的。

没有配置管理

考虑一个基于 Web 的服务,它的环境由多个服务器实例组成。 一些服务器负责提供 Web 流量,其他服务器负责负载平衡、数据库节点、缓存节点等。 此 Web 服务有一个系统管理员负责维护这些服务器和应用程序的正常运行时间。

有一天,在一个特别高流量的事件中,用户开始报告服务中偶尔出现的错误代码。 系统管理员开始进行故障排除并意识到其中一个 Web 节点不再为流量提供服务。 在对其中一个无响应的 Web 节点进行故障排除时,系统中的其他 Web 节点开始出现流量过载。 随后出现了多米诺骨牌效应,突然间,用户根本无法访问该服务。

系统管理员意识到首先关闭的 Web 节点已将其磁盘填满。 他们迅速解决了这个问题,让它和其他网络节点重新上线,一切又开始顺利运行。 但是,他们注意到引发级联故障的原始 Web 节点上的磁盘继续被填满。 经过进一步调查,系统管理员确定某些服务的详细日志记录已启用。 此设置被确定为服务器磁盘已满错误的根本原因。 他们调整系统配置以关闭该功能,并且高流量事件继续没有问题。

通常,启用详细日志记录功能来解决问题。 它没有关闭的事实导致应用程序停机。 如果应用程序具有适当的配置管理和自动化,则 Web 节点的期望状态将得到执行,并且事件可能不会发生。

配置管理的好处

配置管理可确保以集中方式记录和控制变更,无论多么小。 通常,使用 Puppet、Ansible、SaltStack 或 Chef 等配置管理工具部署的设置是经过编码的。 配置本身可能由代码组成,但通常是某些版本控制系统的一部分,该系统跟踪每个建议的调整。

在一个广泛的分布式系统中,手动识别、修复和验证解决系统问题的配置更改可能是不可能的,并且可能变得昂贵和复杂。 通过使用配置管理工具使这些过程自动化,在环境中持续执行所需状态可以提高稳定性和可靠性。 通过使用配置管理工具使这些过程自动化,在环境中持续执行所需状态可以提高稳定性和可靠性。

配置.mgmt5

在开发和生产环境之间适当地保持相同是配置管理的一个相当大的好处。 当确信该环境与用户交互的环境之间没有差异时,在发布之前使用开发环境来测试代码会更有意义。 开发环境本质上是一个测试场,但这并不意味着它不应该是代码最终部署位置的有效表示。

代码中的配置管理

配置.mgmt4

配置管理不仅仅存在于系统管理的上下文中。 持续集成和持续交付的概念深深植根于配置管理中。 将代码从版本控制系统带到较低环境并进入生产的软件管道是配置管理。

通常,这些管道负责针对单元、集成和功能测试套件运行已提交的代码。 最终,这些管道还可以创建已测试代码的打包可部署版本,甚至可以将该代码推送到生产环境。 这些是一系列步骤,提前配置,朝着期望的状态前进。

配置管理工具

今天有许多配置管理工具可用。 使用正确的工具很大程度上取决于组织的需求。 它们都致力于使定义、构建和维护系统的过程自动化。 目前使用率很高的配置管理工具的一些示例包括 Ansible、Chef、Puppet 和 SaltStack。

其他配置管理工具采用了不同的方法。 厨师,为 example, 具有命令式配置风格。 这实质上意味着用户定义了配置的每个步骤。 每个步骤完成后,Chef 将继续执行下一个步骤,依此类推。 动作可能相互依赖,它们的隐含定义最终决定了系统将到达的状态。

配置.mgmt6

另一方面,Puppet 采用声明性范式。 这里最大的区别是实现所需状态所需的各个步骤的抽象级别更高。 用户将声明所需的状态是什么,然后信任 Puppet 来处理其余的事情。 可以多次应用人偶配置以确保实现所选设计。

Ansible 和 SaltStack 是采用混合方法的配置管理工具的示例。 Ansible 和 SaltStack 最初都是作为执行引擎构建和设计的。 这意味着它们被构建为能够在多台机器上同时运行命令。 他们可以根据所需状态的声明推断应该发生什么,或者根据隐式指令执行配置。 这些指令通常以 playbook 或 SLS 文件中提供的基于 YAML 的语言编写。 尽管在执行和设计上存在差异,但所有配置管理工具都可以促进对配置的集中修改,将不同的系统分类,识别不合规的结构并提供补救。

结论

通过网络或其他方式提供的服务将不可避免地变得更加复杂。 产品本身将变得更加直观,并将满足更细微的兴趣领域。 反过来,这些服务的实施也将不可避免地变得复杂。

提供一致的性能对于创建高质量的用户体验至关重要。 无论系统设计得多么好和冗余,如果没有适当的配置管理和配置管理的自动化,提供高可用性和流畅的用户体验几乎是不可能的。 在系统配置和更改中及其周围实施适当的控制过程将确保更高水平的系统可靠性,从而提高用户对该系统的信心。

立即开始您的稳定之旅!

立即致电 1.800.580.4985 联系我们,与知识渊博的托管解决方案提供商交谈,他们可以立即为您提供所需的信息,以便做出明智的决定。

太忙没时间说话? 点击 这里 打开与我们的快速聊天以了解更多信息。 您想在闲暇时查看电子邮件中的信息吗? 立即给我们发送电子邮件,以获得关于哪些产品最适合您的需求的可靠建议。

我们期待您的回音!