近年来,Openstack 与 CloudStack 项目的成功有目共睹,比如思科、红帽子基于 OpenStack 的发行版,以及 Citrix 将 CloudStack 贡献给 Apache 软件基金会的同时发布的 Citrix CloudPlatform。
Puppet Labs 和 Zenoss 都参与了这些开源云项目,并且愿意分享他们的观点,为计划实施或已经实施开源云项目的组织提供参考。所有成功实施的开源云项目的共同点是有深厚的技术背景积累、恰当的实施时机以及事先的筹划。
如何成功地启动 Openstack 云项目
实施 Openstack 云项目需要做出的第一个决定是,购买还是自建?基于自身情况做出这个决定是非常重要的。
如果选择自建,需要考虑的最重要因素是:自身是否拥有安装、排除故障、定位可能发生的问题的技术能力。OpenStack 是一个 API 抽象层,它将计算、网络、存储资源的管理功能抽象为 API 并提供给用户。运行 OpenStack 环境的公司需要多个层面的技术知识,比如底层系统、网络故障排除的知识、以及包括精通 python 在内的软件层面的知识。虽然 OpenStack 已经封装了管理计算资源的细节,但是这些资源依然需要人来管理。
另外需要考虑的是,是否需要根据应用场景进行定制扩展。OpenStack 的扩展性很好,但是扩展工作需要许多 Python 开发经验并且能够与 OpenStack 中的各种项目交互。
如果技术不是你的核心业务关注点,你或许应该考虑采用以下三种形式之一购买 OpenStack:发行版(从那些附带技术支持的公司购买发行版 [如 Cisco,RedHat,Nebula])、应用(购买预安装完成的硬件来运行完整的 OpenStack 环境 [如 Morphlabs])、购买咨询(Mirantis)。
如何成功启动 CloudStack 云项目
尽管 CloudStack 更像一个“移交钥匙”解决方案,但是构筑 CloudStack 与构筑 OpenStack 并非完全不同。CloudStack 管理组成公有云、私有云、混合云基础设施的网络、存储和计算节点。同时 CloudStack 还处于 Apache 软件基金会的孵化项目阶段,而且只是刚刚发布了 Apache CloudStack4.0 版本。
如果你打算自己构筑 CloudStack,Apache CloudStack 社区提供了极好的文档和技术经验。另外,CloudStack 的安装由管理服务器和云基础设施构成。管理服务器包含了 web 接口、API、管理以及提供了配置 CloudStack 云的单个节点。同时云基础设施可以嵌套并可分成区域、箱(pods)、集群。在安装 CloudStack 前熟悉 CloudStack 的术语、安装、管理是非常重要的。
CloudStack 像 VMware Nicira NVP 和 Trend Micro SecureCloud 那样通过插件提供扩展。为此,CloudStack 提供了 Java 语言的插件 API 并暴露了一个预定义功能集。因此,要写插件(还有一些平台和代理的 API),你必须精通 Java。当然,并非所有人都需要这样,你还可以购买 Citrix CloudPlatform,由 Citrix 的认证伙伴 CloudStack 提供技术支持。另外,Citrix 提供了其它的增值解决方案,比如 CloudPortal、XenServer、NetScaler 云网络。
已经开始?最大化利用开源云部署方案
如果你已经开始部署 OpenStack 或 CloudStack 云项目,要获得成功你还需要记住许多事情。许多组织所犯的最大错误是低估了开源项目的优点——代码的开放仅是其很小的一部分价值。除了代码开放,开源软件还有其他方面的优点——设计、已知问题和开发过程也是透明的。
CloudStack 与 OpenStack 未来特性的设计以及项目路线图也是完全开放的。因此你可以清楚地了解项目的演进方向并做出长期规划。这可以帮助你定义和规划项目的未来,从而满足你的需求。
积极地参与到开源社区可以让你与其他组织的人建立关系,也许他们正在解决与你正在解决的相同的问题。这种联系对分析最佳实践和排除故障都非常有帮助。
如何从实施开源云中受益,我们还有其他的小建议:
- 跟踪变化和新版本。由于这些项目的快速开发,跟踪更新和 bug 修改比跟踪成熟、更新慢的项目更困难。比如,OpenStack 有基于时间的发布流程——每 6 周发布一个新版本。你可能有充分的理由不更新到最新版本,但是知道有哪些改变和更新将有利于你以后做出决策。许多用户都会为解决相同的问题贡献出滞后的代码,而这些代码去却未跟进更新和信息,这意味着你只好依赖于内部的迂回方案,或者错过一些重要的新特性。
- 成为社区的贡献者。我推荐将那些非关键业务点回馈社区——即使你正在开发基于 OpenStack 或 CloudStack 产品。如果一切都是自家的,那只有你的组织能够维护它。你的时间更应该花在关键业务上,而非维护那些针对你的云部署而做出的特有改变。多向社区贡献代码能够极大的减少维护代码的负担。
有助于构筑、维护工作的工具
构筑、维护 OpenStack 和 CloudStack,你需要一些关键工具。同时,你还肯定想使你现有工具与之保持一致,从而简化 IaaS 环境的运维。
运行在裸金属上操作系统、Hypervisor 以及 penStack 软件,需要 Puppet Labs 这样的供应商提供的资源和配置管理软件。这个提供 OpenStack 或 CloudStack 基础设施的裸金属解决方案,能够提高往云中增加新的计算资源的效率。
配置管理对确保部署的始终可靠以及将应用快速部署到 IaaS 层,都是非常重要的。Puppet 实验室已经加入 OpenStack 和 CloudStack 社区,他们提供自动化工具,用以构筑 IaaS 环境和在这些环境中自动分配虚拟机。
监控和度量对于了解环境的性能和可用性、以及确保服务的可靠都是必不可少的。Zenoss 为 OpenStack 和 CloudStack 提供了监控套件 ZenPacks,它可以集成到 Puppet 之类的解决方案中,从而实现自动故障停机以及按需扩容减容。服务保障功能让 IT 部门能够管理服务而非单个组件。以上这些对于 OpentStack 或者 CloudStack 都是必须的,它们让 IT 运营能够看到基础设施内部的复杂和动态的关系。
成功的开源云实施项目是这样的
衡量 OpenStack 或 CloudStack 实施成功的最显著标志是其是否能够满足业务目标。虽然有很多让人印象深刻的技术架构,但是衡量成功的标志不会改变。OpenStack 在生产上最近的成功案例有 Cisco 使用 OpenStack 整合 WebEx 的基础设施以及 Comcast 采用 Cisco 提供的 OpenStack 产品。
同时,CloudStack 正助力于许多世界级的电信和科技公司,如 BT、中国电信、KDDI、NTT、Nokia 和 Datapipe 等。
最后一条建议
如果你正在认真考虑 OpenStack 或 CloudStack,并且有专门的 IT 团队付出时间并掌握必须的技术,我们强烈推荐参加会议,以更好地理解技术以及其他人是如何使用的。在开始项目之前了解当前用户的使用情况绝对是个明智的选择。参入社区并贡献代码以及必要时获取帮助,那么在开源云实施上你就迈出了成功的一大步。
关于作者
Dan Bode 是 Puppet Labs 的集成专家。他作为咨询师和软件开发者在科技工业界工作了将近 10 年。过去四年他花费大量时间构筑了基础设施自动化解决方案并且教授人们如何使用 Puppet。它限制工作在 Puppet 实验室的业务开发部,在那里他研究技术,并思考如何通过集成 Puppet 提供价值。
Puppet 实验室的 IT 自动化软件能够使系统管理员实现云计算企业级的运行敏捷性和效率,从百余节点的规模到上万节点的云。Puppet 正在用于包括 Twitter、Yelp、eBay、Zynga、JPMorgan Chase、美国银行、Google、迪士尼、Citrix、Oracle、Viacom 等上千家公司。
Floyd Strimling 是 Zenoss 的社区与技术推动业务的副总裁。Floyd 已经在云计算 / 自动计算(以及之前)、数据中心自动化、虚拟化、网络以及安全领域工作 10 多年。在 Zenoss 之前,Floyd 是 AlterPoint/Versata 的首席技术测量师。 Floyd 的推特帐号是:Twitter @PlatenReport .
Zenoss 是物理的、虚拟的、基于云的基础设施管理软件的领先供应商。世界各地的 35000 多个组织部署了 Zenoss 来管理他们的网络、服务器、虚拟设备、存储以及云基础设施,获得 IT 运维的完整的可见性和预见性。客户包括 Rackspace、VMware、Hosting.com、LinedIn、Motorla 和 SunGard。
查看原文链接: How to Succeed with an OpenStack or CloudStack Project
感谢马国耀对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论