私有云市场日渐式微,但千万不要怪OpenStack。因为从一开始,关于私有云的想法可能就错了。
如同AWS被认为是云端服务标准,VMware被认为是本地服务器虚拟化标准,而OpenStack则被一度誉为是VMware的开源实现,它催生了很多私有云创业公司和私有云产品。但现在谈到OpenStack,大家都褒贬不一。
据BusinessInsider四月的一篇文章中介绍,OpenStack基金会与大量技术供应商合作,但每个合作方都是为了在其中刻上自己的烙印。作者写道,该项目提供『终生支持』,并『为OpenStack的创业公司提供风险投资支持,但是似乎资源都干涸了。』
一些支持者认为OpenStack项目(声称是不可否认的)需要假以时日变得成熟并赢得用户,但是另外一些人则指出,用户成长慢于预期,而且一些高调的初创公司业务变化或者关闭是非常不好的预兆。
某些怀疑是公平的,但问题的核心是,OpenStack ——既不会空前也不会绝后 —— 它正在云软件层玩一场不可能赢的游戏。因为Opentack正在和其它同领域的私有云技术一起,试图打造一个本地化的AWS。
云简史
在本世纪初,就有不少关于什么是私有云系统本质性技术的探讨。他们还定义了相关的术语,如网格计算,效用计算和弹性应用平台。技术术语不同,但总的想法是一样的:创建一个资源池,为应用程序提供所需要的资源,并提供可调度,高可用性和故障转移等特性。
我们经常用电网来类比云计算,这样的比喻可以让我们更直观的理解这些技术。从理论上讲,我们不需要关心单个服务器,就像我们不需要关心电网内某一个发电机的情况一样,我们只需要将『应用程序』接入到电网,然后就能获得所需要的电力资源。
在2006年底,亚马逊AWS发布了令人眼前一亮的弹性计算云。你不需要拥有本地服务器,所有运算都在亚马逊的数据中心运行!你可以付费,按小时租用这些资源!(Sun Microsystems公司提出了原始设想,但AWS第一个实现并推广此模式,并使它成为主流。)
随着AWS的不断创新,它逐步推翻了原有的服务器使用方式,但却也暗示了服务器的重要性。与以往任何时候相比,用户可以即快又容易的部署设备,获取计算能力,但同时用户仍然租用包括CPU、内存和本地存储分配在内的虚拟机,以及自己唯一的IP地址。
基础设施即服务,即IaaS,这意味着研发人员应该尽可能的少去考虑服务器,但他们还是不得不考虑。
这也是云计算厂商们一直努力的方向。当大家都意识到云计算就是未来之后,Microsoft Azure、Google App Engine和Heroku都试图把应用平台从服务器管理层面抽象出来,这也就是后来的平台即服务,也就是PaaS。
但是事实已经是这样了,不管或好或坏(可能在很多方面更好),AWS的模式已经赢了。传统应用供应商面临全部关闭或被遗忘的危险,而被采用亚马逊模式的私有云初创公司和大型应用供应商的蓝海取代 -——这催生了OpenStack及围绕其生态系统的创业公司和大量采用这类技术的大型应用供应商 。另外即使原来的PaaS产品仍然存在,微软和谷歌最终也被迫推出与AWS类似的IaaS云服务。
私有云窘境
尽管如此,技术上说,重建类似AWS的平台,很多私有云缺乏资金、知识储备和眼光,更不用说创新。要知道,当OpenStack在2010年推出的时候,AWS已经花了近4年来增加新的功能和服务。
在一定程度上,打造各行各业的普适产品,与其说这就是AWS,还不如说是资源密集型平台。特别是在最初几年,AWS就是打算一次性部署好平台,然后告诉用户要么接受,要么离开。如果问题的实质是配置虚拟服务器、共享存储和网络,另外还可能有一些认证需求,那么AWS和VMware早已经存在。
这很容易理解为什么人们会兴奋的谈到私有云,然后就谈OpenStack为基础的私有云。但是,当他们等待这些技术变的成熟和产品化后,似乎很多人只会说,『好吧。我们将使用AWS和VMware』。
也许一些大的IT厂商正在推动OpenStack成为基础私有云,其目的更多是为了给企业级用户提供一个愿景。任何一个客户如果有足够的资金、智慧和经验,他们也可以这样做(译者注:使用OpenStack搭建私有云)。或者,无论他们和这个世界将如何变化,拥抱云计算已经是大势所趋。
分布式应用的兴起
几年前,有两个重要的转变几乎同时发生:开发人员以及大规模Web应用的兴起。事实证明,两者交织在一起使他们几乎形影不离。它们有助于鼓励创新,使人需要重新思考私有云的本质是什么。
对于应用开发者来说,AWS意味着自由。通过方便地访问计算资源和服务,他们开发出更多的应用程序,并设法使他们的生活更轻松。这种模式产生出很多新工具和新技术的 —— 一个全新的商业市场,一个以开发者为中心,大幅提高开发者生产力的模式。
其中有些是非常成功的,从媒体报道、用户数量和投资情况来看,Docker、MongoDB和Elastic,每个都在过去的几年中筹得超过1亿美元的风险投资。 New Relic的现在已经是一个上市公司。其他几个家喻户晓的厂商包括GitHub和Stripe。
但他们只是冰山的一角。无论你走到哪里,总会有另一家创业公司或开源项目,他们试图改善数据库的用户体验,或者通过API提供一个业务流程分析,或以其他方式加快从概念到代码,从测试到生产的过程。
当AWS把开发人员解放出来,让他们以新视野看这个世界的同时,一些大型的互联网公司,如谷歌、Facebook、LinkedIn、雅虎和 Twitter都已经有很大的规模 。为了应对具有服务于数百万,甚至几十亿用户需求所带来的疯狂挑战,他们开始雇佣最聪明的计算机科学家在世界上建立全新的数据库,基础设施以管理和分析数据。
然后他们开始谈论这些系统 - 在许多情况下开源它们。这在很大程度上要归功于这些公司,使我们可以使用例如Hadoop(和Hive)、Cassandra、Mesos和Kafka,以及其它数十项重要开源技术。即使他们不总是很容易使用,但他们确实总是强大。
当基于云的应用(大部分还是基于AWS)用户量逐渐增加时,开发者就需要构建一个可扩展的应用。有些云应用会每月稳步增长,而某些应用则可能一夜之间病毒式的传播开来。
突然之间,谷歌的可扩展性挑战成为Pinterest的(或Airbnb的,或Instagram的,或Spotify的)可扩展性的挑战。谷歌分析用户数据的机会,也一下成为了Pinterest的,Instagram的和Spotify的机会。
一个良性的循环已经开始。现在,创业公司从一开始就采用这些超分布式技术,最终使得他们的项目受益,并经常开源自己的工具,以使其它更多人受益。这种循环已经影响到每一个行业内的初创公司。
云计算的真正价值
随着开发者和分布式应用的发展和融合,其重要性已经毋庸置疑。这需要我们对云计算的本质进行反思。至少这远远不是从如亚马逊、微软或谷歌购买虚拟服务器和采取了一些他们所创建的技术那么简单。
如今,各种规模的企业都意识到,无论他们基础架构运行在云中或在自己的数据中心,他们都需要像经营大规模网络公司那样的系统 —— 灵活,高效和自动。这需要从硬件层面(开放计算)到网络层面(软件定义网络)、再到调度层面(Mesos)、应用层面(容器)的变化。
后两个层面是特别有趣,因为他们需要重新思考如何在云中(共有或私有)部署应用程序。最后,云计算成为主导标准十年后,我们应该会停止谈论服务器,就像效用计算那些伙计们给我们描绘的愿景一样。
谷歌和微软已经不用再担心这些,因为他们可以管理自己的数据中心和应用。最著名的例子是谷歌的Borg系统(以及随后的Omega系统),他们通过运行在Linux的control group中,承担智能调度工作,确保应用获得所需的资源。开发人员只需要指定服务的链接资源,以及他们的应用程序所需要的资源,剩下的都由智能调度系统来完成了。
但是到目前为止,Borg和Omega,仍是谷歌内部使用。在世界其它地方,只能是通过其它类似的技术实现的,如Mesos、Docker和 Kubernetes(谷歌贡献)。Docker使开发者发现了一种更加容易和移植的配置应用方法,而Mesos和Kubernetes让开发商可以动态横向扩展他们基于容器的应用。
这种组合,以及其它一些重要的新技术,可以允许尖端公司以一种池化的方式来管理所有服务器(物理或在云中)。大数据和数据库系统和Web服务在同一集群上运行,智能地共享资源,而不是互相争夺资源。可动态扩展技术使得若干服务器宕机并不那么重要,微服务架构正在取代垄断式应用程序架构。
这种架构,对管理数据中心和建立自己应用架构是非常强大的,而且AWS、Google和微软也证明了这点,他们已经每年从出租虚拟服务器业务上获利数十亿美元,而现在也迅速转向了基于容器的管理平台,然后,迅速在界面上出现了关于容器方式的管理选项。
服务器和虚拟机都不会消失,但我们与他们之间直接的互动将会越来越少。
大型互联网公司在过去十年中发展出的可扩展的、分布式的、基于服务的架构将会深刻影响未来。但是昨天的架构不一定就不适合明天的应用,前提是是否能够提高开发者的工作模式,提高运维团队的工作模式,从而使得公司更加有竞争力。如果不能做到,那么必将会有所替换。