当前位置: 首页 > 科技观察

七大自动化基础设施即代码工具_0

时间:2023-03-18 15:42:42 科技观察

【.com快译】自十多年前诞生以来,基础设施即代码(IaC)一直在改变着每个企业的IT架构设置和管理方式。过去,对于IT人员来说,构建新的基础设施意味着在一个强大的数据中心中堆叠各种物理服务器、配置不同的网线、添加各种硬件设备。今天,我们可以仅通过软件配置来创建性能更高、成本效益更高且更安全的基础架构。此外,通过采用一致的变更和配置流程,组织现在可以帮助他们的团队在几分钟内推出完全经过验证的无人值守配置,这与过去需要数天才能运行的传统变更管理流程形成鲜明对比。手表的新工艺。今天,IaC可以从源代码的角度为开发者提供丰富的云服务和IT基础设施的相关工具,而不是手动配置。在IaC中,我们可以将服务器、网络、数据库等云元素视为不同的软件资源,进而实现全自动化配置。通过这种将基础设施视为软件和数据的方法,企业开发团队可以实施一系列DevOps和敏捷(Agile)实践,并在技术价值流(technologyvaluestream)工作流程中推动快速和高质量的开发。其中,我们可以参考和利用的实践包括:持续集成(CI)、持续交付(CD)和测试驱动开发(test-drivendevelopment,TDD)等。同时,企业还可以提升通过优化部署编排、自动化测试库和使用版本控制系统(VCS)来提高现有系统的统一性和容错性。可以看出,IaC在不断的实践和快速的发展中,通过各种自动化工具,使得企业的各种业务流程和关键环境更容易实现和实施。下面,我们就来盘点七款能够提供此类自动化工具的云平台。1.AWSCloudFormation这种集成的AWS服务专为在AWS云中工作的用户而设计。凭借其在云环境中的市场份额,AWSCloudFormation拥有超过350,000名开发用户。目前已成功配置342个AWS资源类型。CloudFormation允许用户方便地在JSON(参见https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/WordPress_Single_Instance.template)或YAML(参见https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/WordPress_Single_Instance.yaml)模板文件,通过其提供的各种模板,构建不同复杂度的安全基础设施模型。同时,该服务还可以通过自动化功能帮助用户以可重复、可管理的方式部署手头的各种资源。而且,您只需为使用的资源付费,而不是服务本身。因此,您只需根据自己的应用规范配置相应的模板,CloudFormation即可为您处理剩下的工作。AWSCloudFormation的参考文档链接是:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.Walkthrough.html。2、AzureResourceManager为竞品,微软为用户提供的IaC工具为:AzureResourceManager。用户可以通过Azure资源管理器(ARM)的不同模板来配置自己的基础架构并无缝循环地处理各种依赖项。您可以在模板中使用那些已经声明并以JSON格式描述的资源,也可以在同一个ARM模板中声明多个Azure资源来搭建一个整体的项目环境。由于ARM模板是幂等的,您可以无限次重复使用相同的模板并获得相同的结果。同时,还可以使用VSTS(译者注:VisualStudioTeamSystem,微软开发的一套生命周期开发工具)dashboard,可视化监控所有构建和发布,快速了解整体云环境健康和模板质量.此外,ResourceManager还支持服务器的实例分组,不同分组的统一管理。AzureResourceManager的参考文档链接为:https://docs.microsoft.com/en-us/azure/azure-resource-manager/。3.GoogleCloudDeploymentManager顾名思义,GoogleCloudDeploymentManager(CDM)是一个基于GoogleCloudPlatform配置文件(YAML)和模板(JINJA2或PYTHON)的自动化执行工具。它允许用户同时定义和部署各种系统资源。在其Beta和Alpha版本的功能中,用户还可以使用自动扩展和负载平衡等功能编写所有部署脚本。同时,GoogleCDM还支持预览功能。这意味着:您可以直接看到部署和更改的影响,而无需直接提交更改。此功能不仅可以帮助用户避免人为错误,还可以加强和稳定整体基础架构。GCDM的参考文档链接为:https://cloud.google.com/deployment-manager/。4.Terraform以上三个IaC工具都是为特定的云环境设计的,而Terraform不是。不仅幂等,在多云环境下还是一把“瑞士军刀”。由HashiCorp(开发Vault和Nomad的同一家公司)开发,Terraform独立于任何云平台。它帮助用户轻松处理具有复杂分布式应用程序的大型基础架构。凭借其灵活性,Terraform的自动化有多种表现形式,主要服务于核心规划和应用周期。虽然有些团队选择在本地运行Terraform,但他们会使用各种包装器脚本(wrapperscripts)为Terraform运行设置一个一致的工作目录。其他开发团队可能会在Jenkins等备用编排工具中运行Terraform。与GoogleCDM类似,Terraform也支持更改和配置的预览。同时,用户还可以使用它来复制各种现有的部署,以及单个服务器实例。此外,Terraform还深化了版本控制和远程状态管理服务,可以为远程团队协作提供集中的数据源。Terraform的参考文档链接为:https://learn.hashicorp.com/terraform/。5.ChefChef是CI/CD人员常用的IaC工具。它的优势在于使用了基于Ruby的领域特定语言(DomainSpecificLanguage,DSL)。它可以通过独特的Cookbook式版本控制来保持用户配置的一致性,从而确保基础架构能够跟上其托管应用程序的快速增长。Chef在其核心配置中封装了各种模板和模板集合,以满足用户开箱即用的需求。其中,一本Cookbook(一种模板)只对应一种任务。它可以根据涉及的资源提供不同的服务器配置。例如,带有数据库的Web应用程序可以有两个配方(另一种模板)共同实现存储任务。由于支持特定于云的API,Chef还可以与其他IaC工具(包括Terraform)和各种其他云环境很好地配合使用。Chef的参考文档链接是:https://docs.chef.io/quick_start.html。6、虽然AnsibleChef是大多数人的选择,但是对于RedHat环境下的用户来说,他们更喜欢使用Ansible。Ansible,专为自动化而设计,专注于提供极其简化的配置语言,无需修改即可管理各种云实例。不局限于特定的配置管理,Ansible还适用于任意IT编排,例如零停机(无中断)滚动更新和修补程序。您不必像过去那样将系统作为一个孤立的单元来管理,而只需要清楚地描述组件和系统之间的相互关系,Ansible可以为您处理剩下的事情。作为一个灵活的IaC工具,您不仅可以使用Ansible提供的现有功能,还可以通过开发自己的模块和规则来满足各种特定需求。当然,Ansible也可以提供友好的GUI设置和监控功能。Ansible的参考文档链接是:https://www.ansible.com/resources/get-started。7.PuppetPuppet采用了更全面的IaC设置和自动化方式。目前,它正在支持Reddit、戴尔、谷歌等大公司的数据中心,以及通过各种先进的接口技术支持各种操作系统的运行。作为一种老式工具,Puppet使用基于Ruby的DSL来定义基础设施的最终状态。Puppet监控基础设施以确定是否发生了偏离既定状态的变化,然后自动纠正它。此外,拥有大量的企业用户和社区支持,非常适合系统管理员进行功能开发。Puppet的参考文档链接为:https://learn.puppet.com/?_ga=2.121922253.792795342.1550743099-1090453039.1547698716&_gac=1.146748870.1549008273.Cj0KCQiA-c_iBRChARIsAGCOpB1vRaPt-ltx4_GiXxqHX7AaW5SnqQs9U6wzndUPPqoxrRg-AjhSgJUaAqVGEALw_wcB。SummaryTosumup,youneedtochoosetheappropriate基于您的个人喜好和特定需求的自动化IaC工具。此外,由于你不可避免地需要花费一定的时间来定义相关内容,因此在选择时还需要考虑团队使用的编程语言、团队之间的沟通、云环境的一致性等问题.如果您有兴趣进一步阅读,请参阅文章《IaC的安全挑战以及克服方法》。原标题:用于自动化的七大基础设施即代码工具,作者:NarendarNallamala