想扩展您的DevOps实践吗?Mulesoft的成长经历或许能给你带来一些启发。 在MuleSoft,我们致力于通过产品投资和工程方面的卓越运营帮助我们的客户实现价值。创新/发布新功能的速度越快,客户就越能主动改进他们的业务。而作为实现快速发展的方式之一,我们开始全面迁移到基础设施即代码(简称IaC)。 IaC是什么? IaC是指通过多套模板,使用代码管理和配置基础设施及其配置的过程。这意味着你只需要在配置文件中定义创建一个工作环境(包括虚拟机、子网、负载均衡器、数据库等)。您可以将其用作制定资源规划和设计其相互关系的蓝图。这种方法提高了透明度,同时帮助团队顺利工作并快速做出改变。 IaC之前:配置管理 这里不提配置管理之前的痛苦回忆,直接切入DevOps团队2012年开始的配置管理工作。目前可用的相关工具包括: Puppet和Chef是最受欢迎的选项,但我们选择了SaltStack,因为它很有前途并且是用Python编写的(我们需要使用多个define函数,所以它有一个优势)。 虽然Salt做得很好,但我们的基础设施在继续扩展后需要其他解决方案的补充。具体来说,Salt可以对实例的各个方面进行微调管理,但虚拟机之外的任务仍然需要手动处理。 同样,如果你想复制环境(例如,将某种工作负载从开发环境移动到质量保证环境),你需要手动执行各种步骤。如果需要修改,我们必须手动调整。 进入基础设施即代码 手动创建基础设施和服务器配置通常非常耗时、难以排除故障并且可能容易出错。IaC使整个过程透明化,帮助每个人准确了解他们的基础设施是什么,并以一致的方式管理变更。 定义完善的IaC片段,便于随时迭代、修改、克隆,让所有人都可以在一个窗口中管理所有资源。在这种情况下,团队中的新人也可以快速了解现有的操作系??统。 还有一件事-文档非常重要!! 如何将SaltStack与Terraform一起使用 SaltStack仍然是我们在AWSEC2中最重要的主机管理工具。如果我们需要一个新的应用服务,我们可以使用指向特定服务的元数据来创建相关的实例,SaltStack将相应地完成其余的配置工作。 但是如果我们需要ELB,怎么实现呢?我们如何选择它的安全组?这种工作还是需要人工来完成,这在面对上千主机的挑战时又是一种让人头疼的问题。 Terraform由HashiCorp开发,允许您声明资源及其必要的配置,然后将它们应用到实时基础设施。它提供了各种有趣的功能,包括多供应商支持和依赖管理。 前进 使用IaC机制,我们能够节省大量时间和资源,用于构建创造性的新功能和产品迭代,从而更好地服务客户。我们还不断研究新方法,使我们的基础架构更快、更简单、更可靠,从而加快和改进生产中的代码执行。
