如何在跨多云平台实现部署管理

Chef:恰如其名,Chef把基础设施配置、部署 和管理等工作都集成在一起,可让任何运行Chef客户端的系统解释。当然,在后端还是存在着一些服务器复杂性的,但是,正如我在SearchAWS发布的“在AWS中使用Chef”一文中所详细介绍的那样,Chef可以管理云计算应用程序部署的所有工作,它可以在云计算本身内运行(即Chef服务器、开发人员工作站、系统节点和分析引擎等都可以作为IaaS实例运行)。Chef支持的主要云计算服务包括:AWS、Azure、Google、VMware(vCloud Air)、IBM公司的Softlayer以及SmartCloud Orchestrator 和 Rackspace/OpenStack。

Puppet:Puppet被称为是协调软件的开山鼻祖,该产品不仅自身成熟而且还受到了广泛支持。Puppet拥有一个基于类的领域特定语言(DSL),其设计灵感来自于Nagios配置文件格式,它类似于JSON。虽然它拥有一个Web用户界面,但是其高级配置需要编程和使用一个CLI。Puppet Razor是一个最新发布的工具,它可以自动发现和库存基础设施,并动态地为裸机管理选择一个首选的系统映像。

Ansible: 这是一个开源平台,其商业版已于近期被Red Hat公司收购,Ansible不需要软件代理;它可通过安全Shell连接进行完全运行。Ansible针对其配置“playbooks”使用了YAML,这主要是用于进行系统配置、部署和协调等工作。

SaltStack: 这是一个相对较新的平台,它主要侧重于速度和可扩展性方面,Salt有两种版本:开源代码和支持企业版。Salt使用YAML来描述系统状态;但是,整个平台包括了一组复杂的组件,这对于那些并不熟悉另一种自动化平台的用户来说就意味着一个艰难的学习曲线。

建议与用例

本文所介绍的任何自动化大平台都可在私有基础设施中和跨所有主要公有云平台正常运行;但是,具体的集成细节则大相径庭。

选择产品的决策应当从企业基础设施的复杂性和规模出发,关注IT/开发运营团队所拥有的专业知识。虽然诸如戴尔公司Cloud Manager(即之前的Enstratius)、RightScal或Scalr这类的集成SaaS产品在连接至内部基础设施时会有一些麻烦,但是它们都是最易于部署和操作的,这是因为它们都提供了全面的Web用户界面和预置模板,并与大型云计算服务相集成。在众多较为通用的工具中,Puppet是最为成熟的产品,这使得它在大型企业用户变得非常流行。此外,由于其无代理的设计和简单的YAML语法,Ansible可能更易于实施和学习。