背景:Crowbar是一种开源云部署框架。最初,戴尔开发它用来支持OpenStack  Hadoop解决方案。最近,其范围得到扩展,可以进一步支持包括DevOps运行模式以及面向其它云应用的部署。
从我们2011年6月OSCON(全球开源大会)实现戴尔Crowbar项目的开源仅仅几个月,但是,我们的Crowbar项目却进展快速并产生了极为强烈的反响。Crowbar正转变为一种社区工具,该工具与硬件、操作系统和应用无关。因此,对于刚刚了解这一项目的人们,我希望对Crowbar再次做一下介绍。
起初,Crowbar的设计非常简单,只是作为“戴尔OpenStack™云解决方案”的安装工具。它的目标是在4小时内,将到货的服务器部署成为一个功能完备的云系统。这个目标意味着要在短时间内,完成与创建一个完善的云基础架构相关的所有操作和配置,具体包括:BIOS、RAID、运行服务(DNS、NTP、DHCP 等)、网络、操作系统等的安装和系统配置。这是一项艰巨的工程。在我们早期的云架构安装项目中,由于缺少Crowbar的支持,我们一直要耗费很大的精力来逐一完成安装工作的每一个环节。Crowbar项目的一个关键部分是,在许多系统配置任务中与Opscode Chef server协作。最终,我们实现并超越了最初的设计目标,可以在2个小时内全面完成OpenStack的安装工作。
在将Crowbar作为安装工具交付的过程中,我们意识到Chef和类似的工具都是称为DevOps的更大的云行动的组成部分。
DevOps的部署方法是在分层的模式中构建系统,而不是采用封装的映像(packaged images)。此分层的模式意味着部分系统是相对独立的并且具有较大灵活性。用户可以选择他们要部署的系统组件以及放置组件的位置。例如,在默认情况下,Crowbar可以部署Nagios。但是,用户还可以禁用该组件并安装他们自己的监控系统。此外,它还允许新的组件识别Nagios的存在,并将它们自动地注册为客户端并设置应用的具体配置文件。这样,Crowbar使用DevOps分层的部署模型可以为模块化和集成的云部署都提供灵活性。
我们相信,采用分层部署方式是成功的必要条件,因为它们让客户可以应对快速发生的变化。我们将这种云数据中心的模型称为“CloudOps”
基于Crowbar的灵活性,我们的团队决定将Crowbar作为我们Apache™ Hadoop™项目(戴尔 | Apache Hadoop 解决方案)的部署模式使用。这是个不错的选择,但是增加了Hadoop要求在多个重要方面对Crowbar进行扩展。
  1. 我们必须在安装中做出重要调整,并创建适合支持多种操作系统的流程(2011 年 10月前包括RHEL 5.6和Ubuntu 10.10)。
  2. 我们提出称为“barclamps(模块)”的模块化概念。它会封装部署基础架构的单个层。这些Barclamps可以从最低的系统级别(IPMI、BIOS 和 RAID)到最高的系统级别(OpenStack和Hadoop)。
Barclamps是面向Crowbar的非常重要的体系结构模式:
  1. Barclamps允许其它应用程序插入框架并利用解决方案中的其它barclamps。例如,VMware创建了Cloud Foundry barclamp,而Dream Host创建了 Ceph barclamp。这两个barclamps都是利用Crowbar进行可重复和可预测的云部署的应用程序的例子。
  2. Barclamps是独立的模块,具有它们各自的生命周期。每个Barclamps都有各自的代码库,初始部署后可将其导入运行的系统之中。这样,在初始部署后,客户便可以对他们自己的系统进行扩展和管理。
  3. Barclamps 拥有许多组件,例如:Chef Cookbooks、用于配置的自定义用户界面、依赖图以及本地化支持。
  4. Barclamps提供其它barclamps可使用的服务。网络barclamp可交付许多重要的引导云服务,包括IP分配、网卡捆绑(NIC teaming)以及节点VLAN配置。
  5. Barclamps提供可扩展的逻辑,用于评估系统并提出部署建议。目前为止, barclamps还只是提供最基本的提议。但是,Barclamps拥有进行更复杂分析的潜力。
这些改变是戴尔做出的重大投资,然而,这也极大地提高了社区参与Crowbar开发的能力。我们相信,这些改变对于我们团队的开放和协作开发的核心价值非常必要。
最近,我们的团队开放了Crowbar的开发。这种改变在我们的OpenStack Diablo (+ Keystone and Dashboard)工作中得到了体现,还获得了OpscodeRackspace Cloud Builders的支持。我们不但在内部工作和根据时间表不断推出更新,现在,我们通过Github上的Crowbar代码库直接编码。必须指出的是,出于许可方面的原因,戴尔尚未开源可选的BIOS和RAID barclamps。这样的开放水平让我们可以更好地与 crowbar社区协作。
对于一个新的项目,我们为在Crowbar方面所取得的进步感到自豪。我们正在掀起一个崭新的篇章,这会带来一些新的挑战:例如提高社区参与度和路线图透明度,以及提高戴尔的支持能力。您还将会看到能够与专有和授权的硬件和软件互动的可选barclamps。在支持一个生机勃勃和丰富的生态系统的框架中,所有这些改变都是不断成长的Crowbar的一部分。
我们希望大家能够轻松地成为Crowbar社区的一员,为此我们正在全力以赴。请加入邮件列表,下载开源代码或ISO,创建barclamp,并提出您的意见和建议。戴尔正在为该项目的核心开发提供资金支持,欢迎您联系戴尔销售人员并且告诉他们,您感谢我们所做的努力,这是对我们的巨大支持。