盘点:云架构配置、编排和管理的自动化最佳工具
众所周知,云迁移是项艰巨的工作,如果有自动化工具的帮助则事半功倍,让迁移任务变得更加轻松!
云迁移的最大好处之一是有机会降低运营成本,其中最重要的因素之一就是新的云基础架构的自动化和配置。通过自动执行基于云的基础架构的配置和管理,企业可以腾出时间和资源进行关键任务创新,而不是日常维护。
幸运的是,有许多云基础架构自动化工具可用来帮助加快此过程。另外,许多相关工具也可能有所帮助。尽管没有单一的工具适合所有情况,但本文可帮助你考虑所提供的各种优势,并选择最适合你的云基础架构需求的优势,无论你的迁移目标是公有云,私有云还是混合云架构。
AWS CloudFormation
为确保其在云中的领先地位,亚马逊的AWS CloudFormation允许你使用YAML或JSON对资源进行建模,并将其自动化,然后将其部署到基于AWS云的基础架构中。
如果你计划使用基于AWS的云产品,CloudFormation可帮助确保你所有团队的配置尽可能简单。
CloudFormation允许你立即运行其他AWS工具的大量列表,包括Amazon CloudWatch和AWS Elastic Beanstalk。CloudFormation还处理跨区域帐户的自动化管理,使你可以随着业务规模的扩大轻松扩展到新的区域设置。CloudFormation变更集是在基础架构发生变化之前预览即将到来的变更的好方法。
Puppet
作为配置自动化市场的长期领导者,Puppet帮助当今一些最大的软件团队建模,配置并系统地实施其基础架构的所需配置。借助Puppet Enterprise,你可以规模化(例如,基本部署的20000个节点以上)管理基于云计算的基础架构的各个方面,从计算到存储到网络资源。它适用于公有云,私有云和混合云。可以使用Puppet领域特定语言(DSL)编写模块,为你在每个节点上安装的代理强制执行的配置提供代码。
借助Puppet Enterprise,你可以获得开箱即用的编排和基于任务的命令执行以及多设备管理。它的GUI控制台可以轻松分类和管理你部署的所有云计算主机。虽然Puppet DSL以花费时间学习而闻名,但回报很大。
Puppet保持与微软,VMware,Google和亚马逊等主要玩家的整合和合作伙伴关系。例如,针对Puppet Enterprise的AWS Opswork提供了用于管理基于云的基础架构的完全集成的自动化工具套件。
Ansible
在RedHat旗下Ansible正迅速成为基于其易于使用,基于任务的基础架构自动化的行业标准。Ansible声称,你不需要计算机的高级学位,就可以用简单的语言编写自动化,配置或编排任务,并将其包装在“playbooks”中。此外,你可以轻松管理云基础架构的各个方面,而无需在云基础架构的任何位置安装单个代理。
Ansible Tower的主要功能包括作业调度,基于GUI的库存管理,多playbooks工作流程以及灵活的REST API,使你可以将Ansible Tower嵌入几乎任何基于任务的配置管理流程中。
主要集成包括AWS,微软Azure,VMware,Rackspace,Digital Ocean和Google云。
Chef
Chef是基础架构配置领域里另一位经验丰富的玩家。像Puppet一样,Chef提供自己的DSL来帮助你执行从配置策略到生产代码的连续传送的所有功能。对Chef Automate用户(Chef的商业版本),你可以按小时自动管理自托管的基于AWS的基础架构,也可以使用适用于Chef Automate的AWS Opswork。
借助Chef Automate,可以获得关键功能,如详细的合规性管理,高可用性和基于GUI的工作流程管道创建。
主要集成包括AWS,微软Azure,VMware和Google云。
Kubernetes
Kubernetes最初是由Google开发的,它是一个容器编排平台,用于自动化容器应用的部署,扩展和管理。实际上,它已成为容器编排的事实标准,并且是CNCF基金会的旗舰项目,由谷歌,AWS,微软,IBM,英特尔,思科和RedHat等关键厂商支持。
虽然它绝不是一个真正的基础架构配置管理工具,但Kubernetes可以轻松地基于几乎任何云的微服务架构部署和运行应用程序。通过在一组主机上创建抽象层,开发团队可以部署应用并让Kubernetes管理诸如控制应用或团队的资源消耗,在主机基础架构中均匀分布应用负载以及自动调用负载平衡请求跨应用的不同实例。
Terraform
基础设施管理的另一个方面是“基础设施即代码(infrastructure as code)”的想法。简而言之,Terraform是一个开源工具,用于编写声明性配置文件来创建和修改基础架构,但它不完全是“配置自动化工具”。
如果你在基于云的工作流程中使用该公司的商业产品Terraform Enterprise,那么你需要编写一些模块,这些模块是版本控制的配置,用于声明创建或修改高级资源,例如Amazon EC2实例或亚马逊关系数据库服务(RDS)资源。Terraform可以帮助你在广泛的资源图形和执行计划的帮助下自动配置这些资源。但你仍然可能需要像Puppet或Chef这样的配置管理工具来帮助你在这些资源上自动设置和执行软件。
Terraform的主要集成包括AWS,Google云,微软Azure和Oracle云。Terraform非常重视“基础设施即代码”。你会得到你所期望的强大,稳定的声明式配置。
Google云部署管理器(Cloud Deployment Manager)
如果你计划通过Google云构建云基础架构,要关注Cloud Deployment Manager。可以使用并行,可重复的部署和模板驱动的配置自动配置和部署Google云。云部署管理器提供了丰富的从CLI和API到GUI的一系列工具,用于管理基础架构配置和管理的所有阶段,从资源创建到删除。
微软Azure自动化(Azure Automation)
Azure Automation提供基于云的自动化和配置服务,可在Azure和非Azure环境中提供一致的管理。它由流程自动化,更新管理和配置功能组成,旨在帮助你减少错误并缩短在基础设施部署上花费的时间。Azure Automation还提供对维护和合规性运行的自动化控制。
最重要的是,它不仅仅适用于Windows!借助Azure自动化,可以使用通过PowerShell或Python Runbook触发的自动化获得Windows或Linux主机的异构部署。
微软清楚地向现代DevOps从业者展示了其想法。如果你需要运行多种操作系统,Azure可能是一个很好的方式。
思科智能云自动化(Intelligent Automation for Cloud)
思科提供了多种云产品,从私有到公有到混合解决方案。除了这些产品之外,思科智能云自动化还提供从基础架构即服务(IaaS)到在思科云或其他云环境(包括AWS,OpenStack和VMware)中运行的实例的动手调配和管理的所有功能。
主要功能包括为你的云用户提供自助服务门户,多租户和网络服务自动化。尽管思科利用思科自己的云基础架构产品进行了明确的创建,但思科智能云自动化的优势在于能够将自动化工具扩展到其他生态系统中。
SaltStack
Saltstack最初是一个像Puppet和Chef这样的开源项目,主要关注自动安全合规性。与Ansible一样,SaltStack可以无代理运行(但如果你的工作流程需要,也可以运行代理)。
SaltStack提供了一个与云服务提供商交互的界面,名为Salt Cloud,因此你可以使用Salt来配置和管理基于云的基础架构的各个方面。
SaltStack的主要功能包括无代理节点管理和安全合规工具。它还与AWS,微软Azure,VMware,Rackspace,Digital Ocean,OpenStack和Google云进行了主要的集成。
VMware vCenter配置管理器(VCM)
VMware可帮助你配置和维护VMware云环境(运行在AWS和RackSpace等供应商上),以满足运营,安全和合规要求。
VCM提供了一个中央位置来控制基于VMware的基础架构的配置,无论它是在Windows,Linux还是Unix操作系统上运行。还可以轻松选择VMware集成,这有助于使用许多VMware工具(包括vCenter,vCloud Director和VMware vCloud Networking)来跟踪配置数据,更改数据,网络配置、合规性策略、安全。
Cfengine
CFEngine是一种经典的配置管理工具,长期以来一直用于各种规模企业的IT基础架构自动化。与需要中央管理服务器的Puppet等工具不同,CFEngine依靠每五分钟运行一次的“自治代理”来执行主机的配置。CFEngine满足每台管理服务器最多5000台主机。
Foreman
如果需要一个轻量级工具来管理服务器的整个生命周期,从裸机到配置到编排,开源Foreman项目都可以提供帮助。但是请注意,Foreman依赖与开源Puppet进行深度集成来配置管理节点,但它还拥有与Chef,Ansible和Salt等其他管理方面的插件支持。
其专用的开源社区维护着广泛的插件库。可以在主要提供商(例如Amazon EC2,Google云,OpenStack和VMware)上使用Foreman配置云实例。
总结
每个基础设施自动化工具都有其优点,缺点和学习曲线。在选择工具时,需要找到最适合你项目需求和团队需求的工具。云提供商构建的工具可以提供最简便的方式,让你在开始云计算迁移时轻松实现云端运转,尤其是“一站式”的情况下。
也就是说,像Puppet,Chef和Ansible这样的工具已经在管理各种云环境中的基础架构的DevOps从业者中建立了口碑,并且他们与各种云平台和产品集成证明了这一点。但一定要做足功课,因为一些相关的工具可能正是你所需要的。事实上,在很多情况下,可能会发现最好的方法是将两个或更多这些工具组合在一起。