基于亚马逊AWS的开发工作往往能够为一家企业带来部署的高效性和简易性,但是把应用搬回基于OpenStack的企业内部将赋予他们更多的控制权和更高的灵活性。
毋庸置疑,IT团队和其它很多人谈及公共云就会立即想到成本节省。虽然这一点确实如此,即把某些应用程序迁移至亚马逊AWS、谷歌或Azure是能够为企业节省开支的,但是万能的金钱并不总是驱动因素——成本并不总是推动选择供应商决策的决定性因素。
Lithium科技公司是一家位于旧金山的社交软件供应商,该公司于去年年底开始把他们面向客户的应用程序迁移至公共云。他们曾考虑过很多的云供应商,其中包括谷歌、Azure以及Rackspace等,但是最终还是选择了他们最为熟悉的供应商,公司的云工程师Justin Franks说。
“我们的一些工程师都非常熟悉亚马逊AWS,因此使用它作为第一步是很顺理成章的,” Franks说。
虽然工程师对亚马逊AWS的熟悉使得Lithium采用亚马逊AWS实施公共云变得更为容易,但是事实上这还是要花费大量时间和精力做好幕后工作的。Lithium公司的开发人员必须解决几个应用程序的弹性问题以确保应用程序能够适应云环境——在这个环境中实例所使用的资源是弹性变化的。该团队执行了弹性测试以确保该服务可以满足Lithium向其客户提供的服务等级协议以及所有相关的安全性要求。
新的应用程序是易于迁移至亚马逊AWS的:开发人员可以从头开发以便于充分利用云基础设施的优势。而遗留的旧应用程序将需要在不同的环境中重新开发以便于它们能够在公共云中正常运行, Franks指出。“我们将不得不重新编写程序以及使用诸如Consul 和Chef这样的技术以便于获得更多一点的弹性。这些应用程序将需要我们的开发人员花费更多的努力,”他说。
为了让这个公共云项目落地,开发商并没有非常在意成本优化, Franks指出。现在,应用程序已在新环境中启动并正常运行,IT人员都回过头去使用内部的和第三方的工具来实现跨亚马逊AWS的成本优化。
“亚马逊AWS中的成本监控工具还不够强大,因为它们不能提供为我们提供关于我们正在使用的虚拟机更为深入的分析,” Franks说。
Lithium还担心受制于特定厂商的问题,因此Franks非常谨慎地使用了由多家供应商提供的多种技术。我们的IT人员也相信他们应当能够在一个合理的时间段内把应用程序迁移至大多数的云供应商。
“如果亚马逊AWS有问题,那么我们可能需要让云供应商B来发挥作用,” Franks说。
为混合云找到甜区(最合适的发力点)
虽然还有这些诸如应用程序弹性和成本优化这样的小问题,但是Lithium从其公共云实施的高效中获得了实效——减少了开发时间,从几周减少到了几分钟。同时,Franks预计此举将显著节省对基础设施的投入。
“但是,当涉及经济规模时,这是一把双刃剑,”他警告说。
“当我们在亚马逊AWS中的服务器数量开始上升时,其单位成本就可能开始超过在数据中心内运行你自己硬件并在此基础之上构建我们自己云计算的成本和运行开支了。开发一个私有云意味着“一个用户正处于可以开始节省成本的十字路口”,他补充说。
Lithium开发了它的混合云——也就是它的OpenStack私有云和亚马逊AWS的混合,再加上一些其它的公共云计算供应商。一旦公司通过了这个“十字路口”,它就会较少地依赖于亚马逊AWS并有望在OpenStack上运行应用程序而实现显著的成本节省。
Lithium在生产环境使用了OpenStack以满足应用程序和服务等工作负责的要求。
“我们正在寻找它来完全替代我们的传统数据中心,但是在不是VMware的传统数据中心上有着一层虚拟化和敏捷性。,”Frank说。
但是把OpenStack用于生产环境并不是一件简单的事,它并不像在亚马逊AWS中迁移或开发应用程序一样。此外,Lithium开发人员并不像熟悉亚马逊AWS一样熟悉OpenStack。因此,它会寻求帮助。
“对于任何新技术,用户都应当耐心等待到它不再是前沿技术。但你也会希望尽快使用新技术以求提升企业竞争优势,Franks说。
公司使用其自有资源在OpenStack上做了一些研究和开发工作以确定它是单干还是聘请第三方供应商来帮助把工作负载迁出研发环境而迁入生产环境。最终,公司选择了后者——邀请OpenStack专家和第三方供应商来帮忙。
“OpenStack并不是你想要搞就能搞的东西,尤其是如果你将其用于生产环境。其中有很多的细节东西,” Franks 说。Lithium的开发人员还与其他在开发环境中使用OpenStack保持着长久的联系,他补充说,这是“一个非常小的百分比”。
对于是否在未来聘请OpenStack专家,Franks没有直接发表意见,但他表示公司一直在寻找相关人才。