如果一个技术团队希望部署一个开源且平台中立的云解决方案,而这个解决方案可以自己创建无需采购,OpenStack自然是不二的选择。OpenStack能够在标准化的硬件上运行,同时拥有全球性的、庞大而充满活力的用户社区。
以复杂著称的OpenStack是否支持小型技术团队DIY方式的部署?答案是肯定的。在4月召开的奥斯汀OpenStack Summit上,Puppet的首席系统运维工程师Cody Herriges介绍了其团队在OpenStack DIY领域的实践进展。
借助代号为SLICE(即自动式低阻抗计算环境,Self-Service Low Impedance Compute Environment的首字母缩写)的OpenStack测试环境,Herriges的团队成功部署并运营了OpenStack系统。这个小型的技术团队只拥有一名全职人员和两名兼职员工。最终,他们花了20个月的时间重新编写了4000行自动化代码和10个社区模块。
“我们需要一个安全、灵活的环境。在这个环境中,人们能够尝试并试验一些新的东西。它们必须快速而流畅,几乎没有延时。”Herriges 说。
Herriges的团队在部署新软件解决方案时遇到了现实中常见的挑战,即缺乏OpenStack的相关知识。Herriges说:“我们认为自己拥有实现自动化的工具和部署整个堆栈的能力,因而不需要太了解它们,但是事实与我们预想的恰恰相反。”
该团队花了一些额外的时间了解没有内置自动化的OpenStack,以便于在发生问题时,团队能够彻底解决这些问题,而不是依赖于临时性补救措施。
OpenStack有一些已知的问题,包括至今未得到解决的SSL漏洞。不过,Herriges在herrig.es/os-ssl-issue上公布了其团队的解决办法。在这个链接里,Herriges将他们团队解决的一些其他问题也一并放入进去了。
团队最后还需要确定OpenStack是否能够满足了他们的高可用性需求。OpenStack Rally能够帮助团队以更高的水平管理东西,即便Puppet成为了他们虚拟基础设施中的主要组成部分也是一样。“这让我们对我们向用户交付的平台更有信心。”Herriges说。
对于正在考虑紧跟Puppet虚拟化步伐的团队,Herriges给出了以下的9个建议。
1. 追求简洁化。因为越复杂,项目中的故障点也将越多。他说:“我们应该尽可能地避免复杂化。”
2. 中立化非常关键。所选择的解决方案和技术应该有能力解决特定的问题,但前提并不能是它们提前预想了事情“应该”如何解决。Puppet团队为他们的软件包创建系统选择了synthOS 而非Debian,原因在于前者在长期的运行中可让东西更为容易地实现整合,而不是因为他们在运行企业Linux时有什么偏好。“如果你在部署细节上越是死板,那么增加部署时你将面临更多的复杂问题。”Herriges说。
3.要从生态环境自身考虑问题。团队最初设计的架构会满足他们内部的所有需求,但是当从Puppet转向其他项目后,他们会发现当时的解决方案会带来许多管理方面的问题。
4. 小型团队在部署OpenStack时仅部署实际需要的模块。“不要部署所有的服务,因为有些服务在今后的使用中可能无人问津。”他说。Herriges指出,我们在后面的使用中会一直增加许多东西,但是不要增加那些对自己的目标没有价值的东西,使用那些能够满足自己需求的模块即可。
5.知识与技能的补充。如果对选择的打包系统没有深刻的理解和充足的信心,那么OpenStack部署团队还需要掌握Python知识。Herriges说:“我们不希望在部署后再加入补丁代码。这将导致版本追踪和升级程序极为困难。”
团队还需要能够追踪软件包和管理问题,以及掌握一些SQL知识。这将有助于消除故障,发现问题。Herriges说:“不是的有的事情都是可以通过公共API来解决的。”
6. 建议将重点放在Active/Active(主主)高可用性配置方面。这将让OpenStack部署变得更加容易维护,降低全面瘫痪的可能性。另一个选择是,将重点放在Active/Passive(主从)方面,这需要创建更多的自动化并且需要人工介入。
7. 应该选择成熟的自动化解决方案。更新的解决方案看起来很酷,但是在这类部署上,我们还是应该选择更具活力,并且拥有完善文档的自动化系统。Herriges还建议称,团队不要尝试着大范围部署他们自己的解决方案。
“不要尝试那些看起来很独特的东西。应该使用那些已经得到了市场证明,并且能够驱动真实工作负载的工具。”他提醒道。
8. 与早期部署者多沟通。不妨通过早期部署者逐步推广OpenStack部署,因为他们对OpenStack有着更为深刻的理解,你可以收获很多宝贵的意见和建议,也便于建立示范效应。
9. 最后,Herriges当然还建议小型团队考虑PuppetOpenStack系统。因为他所在团队的成功和推出的解决方案都是基于这个系统的。目前,很多主流的OpenStack部署工具的部署逻辑都建立在PuppetOpenStack之上,而像时代华纳有线等诸多大型客户也在使用它们。
编者注:本文编译自superuser.openstack.org,作者为Rob LeFebvre,编译者Frank Chan。