CFEngine是市场上的第一个配置管理解决方案,虽然我们在此期间对CFEngine进行了许多重大的更改和改进,但我们忠于使其成为如此伟大的产品和技术的原则。
市场上有许多事情发生了变化,至少在竞争形势下是这样,我们认为从根本上说,许多挑战保持不变。因此,不应该为了短期炒作而牺牲好的架构。
在这篇简短的博客文章中,我将回顾一些导致CFEngine卓越、在市场上长盛不衰以及目前强势地位的因素。
CFEngine提供了一种声明性策略语言,它侧重于您想要实现的结果,而不是实现该结果所需的指令或步骤。虽然其他一些自动化解决方案只提供一组指令或工作流,但CFEngine不采用此方法。
为什么不行?因为只有当我们真正知道我们从哪里开始的时候,一系列的指令才会导致正确的结果。我们无法针对我们想要减轻的特定错误状态或错误配置进行计划,因此声明性方法是实现大规模自动化最稳定的方法。
随着时间的推移,任何给定的状态都可能发生,这是我们从未计划过的。为了始终如一地达到期望的状态或结果,承诺是你所需要的。在使用CFEngine时,您会发现自己编写的策略只承诺一些关于结果的内容,而不关注过程。
这使得CFEngine的体系结构非常高效,提供了强大的跨平台支持,并使其在实现所需状态方面非常有效。
然后,代理将按照承诺行事,有时会采取不同的方式,但总是会导致可预测的结果。我们称这为收敛。
当我们在CFEngine中使用“Promise”这个词时,它来自于Promise理论,这是CFEngine的创始人马克·伯吉斯(Mark Burgess)开创的一个研究领域。
也许你从未听说过“承诺理论”,也许你是“承诺理论”的铁杆粉丝。无论哪种方式,使用CFEngine都与当今的承诺理论无关。那么承诺理论对CFEngine意味着什么呢?简而言之,这意味着CFEngine以严格的科学框架为基础,我们知道您使用我们的政策语言实施的承诺将得到遵守,并以某种方式行事。
在这里,这里和这里,有很多关于承诺理论的很好的资源。学习承诺理论,甚至知道它是什么,并不是使用CFEngine时的要求或优势,但对于那些好奇的人来说,看看可能会很有趣。
以承诺为基础的“单位”,使我们能够帮助您解决一些最棘手的问题。在这里,我们将介绍一些最佳实践和思维方式,以最大限度地利用您的基础设施和CFEngine。
基础设施即代码长期以来一直是许多组织的目标。这不应该是白日梦,事实上,这正是您使用CFEngine可以轻松实现的。
通过修改您的CFEngine策略,或者更好地修改您的策略所利用的数据,可以轻松地对您的基础架构进行任何更改。如果要将机器从测试切换到生产,只需更改一个变量,其余的由CFEngine负责。
您是否需要跨50或50,000台机器升级软件版本、数据库类型或任何默认设置,使用CFEngine同样简单。您越是可以依赖代码来驱动您的基础设施,效果就越好。而CFEngine让这一切变得简单起来。
要进一步简化,请为您的框架构建策略,并为快速变化的变量使用外部数据源。CFEngine成功的一个关键是以双重心态工作。让策略定义您的体系结构,变量应全部来自外部数据文件,如MDR或CMDB系统。这样,任何具有适当访问权限的人都可以轻松地修改例如整个基础架构中的应用程序版本,而无需修改基础策略。
这种工作方式的一个很好的例子是我们的成功故事LinkedIn,你可以在这份白皮书中阅读到更多关于它的信息。
快速修复和快速即席更改不是CFEngine的设计模式。虽然我们不建议这样做,但我们提供了一些简单的方法来确保您可以在进行必要的更改以避免首先发生此类火灾之前扑灭火灾。
借助功能强大的Task Portal UI,您可以发现问题并深入到基础架构中的任何主机。如果某些内容配置或实现不正确,最好的解决方案通常是修复策略,这样问题既不会在该服务器上重复出现,也不会在其他任何地方重复出现。在您有机会做到这一点之前,CFEngine使您可以轻松地与Ansible或其他专注于小规模基础设施和临时手动消防流程的工具集成。您应该始终使用最适合该任务的工具。
CFEngine是您可以做出的最佳选择,不仅适用于大型基础设施,而且适用于复杂且难以管理的系统。CFEngine在复杂、多操作系统、复杂的时间尺度和众多具有不同需求的用户中蓬勃发展。
CFEngine背后的主要思想是让基础设施为您工作,而不是反过来。一旦定义了策略,您就可以开始工作了。不需要像鹰一样照看或照看您的配置。
CFEngine Enterprise拥有市场上最好、最轻松的大规模报告功能。
通过简单易用的Task Portal UI设置自定义报告、通过电子邮件自动将其发送给管理层、获取深入的合规性数据以及更多内容。
您的基础架构中的每台主机都将收集大量信息,其中一些信息是开箱即用配置的,但选项是无限的。该体系结构经过高度优化,因此在您的节点上消耗的容量最少。与运行不到10MB内存的代理相比,运行需要数百MB内存的代理的成本很快就会增加。然后,这些信息都会传播到报告中心,在那里可以进行分析。与许多其他公司不同的是,我们使所有数据立即可用,您可以查询我们的数据库以获取您想要的任何信息。
简而言之,我们认为CFEngine是执行一系列自动化、配置、安全和报告收集任务的最佳工具。CFEngine是第一个在配置管理领域取得成功的工具,此后一直在该领域开辟道路。您应该始终为您需要完成的工作选择最好的工具。您应该选择CFEngine!