OpenStack正逐渐被接受为企业级框架,用于自动化数据中心基础设施,并使企业能够运营各种各样的应用程序和服务。

 

2010年,该平台作为托管服务提供商Rackspace和NASA的联合项目出现在市场上。目前,它已经发展成为迄今为止最大的开放源码项目之一,其版本发布由OpenStack社区一年两次的会议推动,每次会议一般会公布下一个版本的优先事项。

市场研究表明,越来越多的企业OpenStack部署正在从试点项目(测试和开发平台)转向全面的生产状态,但还有一些待解决的问题——其中最主要的是确保在升级到最新版本时能平滑更新构成OpenStack的无数组件。

OpenStack早期版本的升级总是有问题的,部分原因是那时候大部分开发工作侧重于保证其作为IaaS平台充分运行所需的功能。

早期采用者经常发现自己面临着难以置信的选择——要么在安装新代码的同时将OpenStack基础设施脱机,要么简单地将工作负载迁移到基于新代码的、完全独立的部署。

较新的OpenStack版本,例如今年早些时候公布的Ocata版本,更侧重于稳定性和可靠性,强调所有模块在升级时尽可能接近零停机时间。

然而,最新用户调查结果显示,有一半以上的OpenStack用户仍然运行着比最新版本老两个以上版本的平台。

 

这意味着按照OpenStack官方的生命周期,这些用户的版本“不受支持”。打包和分发OpenStack构建的公司通常会提供更长时间(通常是三到五年)的商业支持。

更重要的是,这可能意味着他们正在使用自发布以来就被认为具有安全漏洞和问题的OpenStack软件模块

 

早期采用者使用旧版本

许多用户仍在运行旧版本。作为早期采用者,他们修改自己的OpenStack构建,使其更符合自己的要求,或者更好地适应现有的IT环境。

“很多OpenStack的早期采用者认为它将在敏捷性和灵活性方面提供巨大的潜力,但也可能需要一些工作来适应并与自己现有的平台和系统整合。“Canonical的OpenStackUbuntu产品经理Mark Baker表示。

这可能涉及自定义代码,或者可能从上游导入模块——这意味着他们已经采取了诸如Keystone认证服务的项目,并部署到这一服务开发前的OpenStack构建中。

“我们已经看到有基于最早Ubuntu 14.04版本的客户,把一些想要的特定网络或虚拟化功能通过打补丁实现了。”Baker说。

由于OpenStack已经成熟并能够利用虚拟化层中的优势,早期采用者可能已经将更新版本中的虚拟化堆栈或Open vSwitch等拉进自己的旧版本中,最终他们运行的是无法标准升级的混合环境

 

升级OpenStack

在某些情况下,升级OpenStack也意味着更新操作系统层,无法再使用可用的自动更新工具来实现,尽管OpenStack适应企业确切要求的能力是其主要卖点之一。

OpenStack的价值主张在很大程度上围绕着它很容易定制和高度可插拔的。 Mirantis联合创始人Boris Renski说,在云中断时,这个本来非常有价值的主张就有问题了,因为基础设施堆栈高度垂直整合。

Mirantis认为自己是“纯粹”的OpenStack分销商,因为它提供了一个直接构建平台的服务和支持,而不是将其与一个版本的Linux集成在一起——这正是许多其他经销商(如Canonical和Red Hat)所做的。

Mirantis一直在告诉用户部署标准版OpenStack的好处,并使用诸如持续集成/持续部署(CI / CD)等技术来保持用户的基础设施和最新版本同步。

OpenStack定制的复杂性

这并不意味着OpenStack用户应该避免定制自己的部署,但在对实际代码本身进行更改时一定要小心。

OpenStack的一个优点在于它有一套全面的应用程序编程接口(API)服务,你可以将不同的存储技术和不同的网络技术插入其中,并且围绕OpenStack和发行版有一个非常健康的生态系统。

OpenStack与第三方模块结合使用的挑战并不多,因为大家都在这样做。这本身不是问题——问题在于那些开发自己OpenStack的公司,要么从上游代码开始,要么基于分发版自定义代码、包装和工具。

Renski支持这一观点,并倡导使用“标准部署范式和插件”,因为整个社区广泛使用。

可以或多或少地调整一些knob,或者与外部系统如(轻量级目录访问协议)LDAP或计费进行集成,但应该不惜一切代价避免堆栈的变化。

企业采用开源的途径

OpenStack供应商认为应该坚持使用官方发布的代码,并部署有供应商提供商业支持的OpenStack分发版

在过去20多年间,Linux被企业接受也是走的类似的道路。虽然Linux仍然是开源的,但企业现在通常只会从少数商业供应商(如Red Hat、Canonical或Suse)中获取Linux。

这表明了,虽然许多开源软件项目可以免费下载和使用,但是当你的业务依赖于任何特定技术的顺利运行时,就值得为技术支持和运营协助付钱。

更多的OpenStack用户正在转向分发渠道,因为他们不想投入宝贵的开发资源来创新基础设施层。他们希望将这些资源集中在应用领域的创新,从而更有效地参与竞争。

然而,这并不能帮助那些面临棘手手动升级过程的早期采用者,他们很有可能需要开发人员或顾问的帮助。

根据Ovum首席分析师Roy Illsley的说法,所有这一切都表明,部署和维护OpenStack基础设施的过程需要改进。

OpenStack必须提供一个更简单的升级过程(这在下一个版本的路线图上),这样才能不会让在受支持的版本上运行的不受支持的版本有越来越多的工作负载。

 

OpenStack Foundation的生命周期政策需要调整吗?

此外,Illsley对OpenStack Foundation的生命周期政策提出质疑,因为该政策仅支持最新版本及其前一版,而版本之间的间隔只有六个月的时间。

他说,目前根据时间来结束支持的方法对于用户来说显然不起作用,所以OpenStack必须改变思考方式,并使用可组合的概念来开发更好的模式。

这意味着OpenStack需要变得更加模块化,以便堆栈的各个组件可以更容易地替换成别的东西来满足特定的用户需求。

 

这似乎正是OpenStack基金会现在推动其开发团队所去的方向。在最近的波士顿OpenStack峰会上,首席运营官Mark Collier谈到了“可组合的开放式基础设施”,并呼吁OpenStack开发人员努力实现这一模式。

他说,通过将不同的项目、不同的服务组合在一起,带来更多价值的机会比以往任何时候都要大,但如果我们不以可组合的方式来做,这就是一个大挑战。

 

去除复杂性

设计为可组合意味着模块之间必须有良好的接口,但开发人员需要减少不必要的复杂性。

Collier引用的一个例子是Swift对象存储模块,它被开发用于为OpenStack部署提供存储支持,但也可以在其他环境中作为软件定义的存储平台进行部署和操作。

Collier说,Swift可能是最具前瞻性的项目之一,因为它是从第一天开始就是可组合的,这意味着它可以与其他OpenStack组件一起使用,也可以不一起使用。

所有这些都似乎在告诉OpenStack用户:别担心,只要相信我们,未来会更好

 

 

 

编译:Jonathan Zhang

作者:Daniel Robinson 

来源:http://www.computerweekly.com/feature/Getting-stuck-on-OpenStack-Overcoming-the-open-source-cloud-platforms-upgrade-barriers

投稿邮箱:openstackcn@sina.cn