IBM 的开放云架构
通过改变业务和社会运行的方式,云计算开启了丰富的创新途径。开发人员现在正将记录系统与参与性系统相结合,一种新的基于云的应用程序风格正在出现:交互系统。这些应用程序要可持续发展,云计算需要构建于开源和开放标准之上。本文仅做一些铺垫工作。
在 IBM Bluemix 云平台上开发并部署您的下一个应用。
简介
云计算正在改变我们看待技术的方式,它不会只是昙花一现。用户正在使用云存储音乐。创业公司正依靠云来起步和运行,摆脱巨额投资的需求。大型企业和政府正依靠云来使更多数据更容易访问。云计算正在改变企业和社会的运行方式,开启了丰富的创新途径。我们正在审视开发人员现在如何将记录系统与参与性系统相结合,我们看到了一种新的基于云的应用程序风格正在出现。这些应用程序就是交互系统。
这些应用程序要可持续发展,云计算需要构建于开源和标准之上。开源软件和开放标准的广泛采用应是每个人的目标。它意味着客户无需害怕供应商禁锢,组织可参与到欢迎广大云技术和服务提供商的增长市场中。
我们从经验中了解到,开源和标准使开发人员能够更快、更轻松且以更低成本共享信息。这带来了更加优秀的创新。我们处在一个拐点上。我们的行业正在关注重要的互操作性标准,他们的开源参考实现将:
- 确保最终用户在建立和采用云计算模式方面拥有有力的发言权
- 减少进入云计算的阻碍,比如开发技能和选择自由
- 增加如今的云投资的长期可行性
- 预防不必要的架构复杂性和碎片
IBM 的开放云架构
在 2013 年 3 月的 IBM Pulse 上,IBM 公开了它的开放云架构 和我们为我们在 OpenStack 上的所有云产品(从 IBM Smart Cloud Orchestrator 开始)提供基础的计划。这次公告是对与 OpenStack 的产品集成的一年投资的结晶,是对 OpenStack 社区的重大贡献,有助于改善 OpenStack 满足企业和云服务提供商需求的能力。通过采用结果,我们看到我们的产品以及整个活跃的 OpenStack 社区都已取得成功。
OpenStack 的演化
要了解 OpenStack 的发展程度和企业如何利用它,请访问 OpenStack 在 Slideshare 和 YouTube 上的频道。
如今有超过 189 个组织和 9,100 多名个人参与,OpenStack 是全球最大的活跃的开源、云项目社区。开发人员和云计算技术人员的这种大规模的全球协作,旨在为公共云和私有云生成一个无处不在的基础架构即服务 (IaaS) 开源云计算平台。
IBM 对成为 OpenStack 社区的非常活跃的成员很自豪,也对最新版本 Grizzly 中所反映的许多社区成就引以为豪。OpenStack 时刻准备者为 IaaS 应用程序带来大规模可移植性和互操作性。
升级产品栈
但是,我们并没有只关注 OpenStack。我们的开放云架构扩展了产品栈中的所有产品,从 IaaS 到 PaaS 和 SaaS。除了我们与 OpenStack 相关的所有工作,IBM 还在努力探索与我们的开放云架构相关的各种不同的技术,具体来讲它扩展到了 PaaS 和 SaaS 层中,将参与性系统、记录系统和物联网编织在一起,实现了我们所称的交互系统。我们将这些探索工作统称为 Project ET。我稍后还会更详细地介绍 Project ET。但是首先,我想分享一些有关我们的开放云架构的见解。
如今,业务部门面临着基于移动、社交、大数据和分析功能来创造新业务价值的巨大压力。这些新应用受新的、高度迭代式的开发模型的出现所推动,而这些模型使用服务合成、开放架构、开源组件和多语言编程模型来快速实现解决方案。两种额外的趋势是这种新的应用风格的重要推动因素,那就是 DevOps 和基于云的 PaaS 产品,比如 Heroku、Cloud Foundry 和 OpenShift。DevOps 使客户能够以一种敏捷、迭代且增量的方式实现业务成果:应用程序在几天或几星期内即可交付,而不是典型的几个月或几年。最后,为了实现这样的开发效率,PaaS 技术正在发展,支持开发人员以极快的速度(几秒)组装云中托管的大量中间件组件。
多租户、弹性(“云的原生特性”)软件服务是这种开发风格的动力。我们已看到 API 经济在过去 10 年中的不断演化和成熟,比如在programmableweb 等站点中为基于云的开发人员提供了超过 10,000 个服务。考虑到 IBM 的基于软件的服务的深度和广度,尤其是在移动、社交和分析领域,我们亟需向开发人员带来单击一个按钮即可访问的实现。。
尽管肯定有许多专用产品在尝试采纳这种新的开发和操作风格的不同方面,但我们观察到开放产品为客户带来了真正的价值,更可能被开发人员接受。
我们说的 “开放” 是何含义?
那么,我们说的 “开放” 是何含义?开放可能具有多种含义。
“开放” 的一个含义是开源软件 (OSS),比如 OpenStack,或者由 Linux、Apache 或 Eclipse Foundations 托管的或在 Github 上托管的许多项目之一。当然,不是所有 OSS 都是以同等的方式创建的。重要的是 OSS 组件拥有适当开放的许可,比如 Apache、Eclipse 或 MIT 等,同样重要的是,它拥有欢迎来自任何人、任何地方的无害的贡献和创新的开放治理模型。而且,它意味着 OSS 组件可使用相对稳定、成熟可靠的 API 来轻松地扩展,轻松地使用和集成,或者它提供了一种允许众多不同的插件或驱动程序的可插拔架构。
“开放” 的另一个含义是开放互操作性标准的实现,比如来自 W3C、IETF、OASIS 或 OMG 等的标准。当然,另一种形式的标准是事实标准,这通常借由接受特定的解决方案的市场来建立,无论该解决方案是专用的还是开放的。理想情况下,要保持开放,我们应避免受单个实体控制(使单个实体受益)的专用事实标准。
开源与开放标准之间日渐形成一种共生关系。例如,新兴开放标准的拥护者常常依靠开源来实现标准,将这作为提供参考以及促进采用的工具的方式。另一个示例是,开发开源项目的社区在感觉其项目的 API 和/或协议已经稳定时,通常会将它们记录在案。
IBM 的开放云架构
现在返回到 IBM 的开放云架构。这个措辞是何含义。从总体上讲,它表明我们的云架构统一基于某种开源组件组合,而且在可能的时候,可实现能够同时为客户带来互操作性和价值的开放标准格式、API 和协议。这个开放架构拥有许多好处,无论是对 IBM 还是对我们的客户。对 IBM,我们能享受在 OpenStack 等开源社区中找到的前所未有的创新。此外,我们还可得到从这些开源和开放标准计划发展而来的,活跃的 ISV 合作伙伴生态系统。我们的客户能够利用开源和开放标准 API 并扩展它们 — 通过第三方能力(利用我们选择的活跃的开源生态系统)或通过自己的创新和扩展。
通过在整个云产品组合中使用相同的开放云架构和技术来实现私有、公共和混合云解决方案,我们还可以在不同的产品中实现交互性和可移植性(不仅包括工作负载,还包括功能),这会让我们的客户受益。
事实上,选择基于开放标准的云计算的客户,可顺利地利用新机会。具体来讲,通过利用跨传统和移动设备的高价值业务分析,他们能够利用互联的数据。
IBM 对开放云架构的承诺
为了帮助实现此目的,IBM 打算应用它支持和验证开放标准的经验。IBM 继续与开源社区紧密合作,合作范围从 Linux、Eclipse 和 Apache 到云计算。为了使开放云架构变成现实,IBM 正在努力:
- 组建一个 400 人的 云标准客户委员会,该委员会成立之初只有 50 名成员
- 推进相关的云标准,比如 Open Service for Lifecycle Collaboration、W3C 中的 Linked Data 和 OASIS 中的 TOSCA,以增强云应用程序可移植性
- 专门安排 500 多名开发人员参与开放云项目
- 与 OpenStack Foundation 以及来自 87 个国家的 9,100 多名成员和 189 个公司赞助商紧密合作
我们来看一下技术方面
图 1 给出了如今组成我们的开放云架构的许多开源和基于开放标准的技术。当然,因为它是开放的,所以它将不断演化,并由 IBM、推进开源和开放标准的开放社区、客户和我们合作伙伴不断扩展。
图 1. 新兴的开放云架构中的开放工具和技术
OpenStack
正如我们 在 IBM Pulse 上宣布的,我们的开放云架构基于 OpenStack,它支持众多不同的虚拟化平台(比如 KVM、XEN、VMware、Hyper-V、PowerVM、ZVM 等),还基于运行在大多数 Linux 发行版之上的 Baremetal。我们选择 OpenStack 不仅是因为它的架构(我们发现它很有吸引力),更重要的是因为它的开发社区、开放治理,以及活跃的、不断增长的提供商、插件和加载项生态系统。
部署自动化
对于部署自动化,我们的产品通常支持 Chef 操作方式和秘诀。但是,我们还支持 Puppet 和 Juju,以便客户能够利用他们喜欢或已在使用的自动化工具。这是我们的开放云架构的另一个重要特征:它使客户能够自由选择。Chef、Puppet 和 Juju 本身都是开源计划,而且它们都拥有自己的越来越庞大的秘诀生态系统、清单和魅力(它们本身通常是开源的)。这些工具的开放性和各自的生态系统的活跃性,使得 IBM 和我们的客户都获益匪浅。
可移植工作负载定义和业务流程
对于可移植的工作负载模板定义,我们的开放云架构合并了 OASIS TOSCA 标准。TOSCA 是 IBM、SAP、HP、Rackspace 和其他许多公司开发的一项协作式开放标准。真正令人激动的是,这些公司中的许多公司还在协作实现对 OpenStack Heat 项目中的 OASIS TOSCA 模板描述的支持。最初,我们实现了我们的 IBM 模式部署功能,通过该功能导入和导出 OASIS TOSCA 模板格式。随着时间的流逝,我们可能会看到 IBM 功能向 OpenStack Heat 的过渡。
Linked Data 和 OSLC
最后,为了将软件定义的基础环境层与它之上的合成层(常常称为 PaaS)衔接起来,我们使用了一种称为 Open Services for Lifecycle Collaboration (OSLC) 的新兴开放标准,该标准基于 W3C 的 Linked Data。
OSLC 是一个开放社区,致力于使软件生命周期工具可互操作,使它们能够彼此共享数据。此工作涵盖众多开发、操作和管理学科,以及同样多样化的工具集。该社区的目的是以一种独特方式将工具相结合,连接和简化工作流以减少一个应用程序的整个生命周期中的工作、挫折和成本。
OSLC 受 Web 上的数据共享方式的启发,基于 W3C 的 Linked Data。Linked Data 实质上是一种在互联网上发布结构化数据的方法,它使结构化数据能够与类似数据相互链接,从而提高它的可访问性和适用性。Linked Data 的理念由 Tim Berners-Lee 最先阐明,依赖于 4 条基本原则:
- 使用 URI 作为事物的名称。
- 使用 HTTP URI,以便人们可以查找这些名称。
- 当有人查找某个 URI 时,利用标准(RDF* 和 SPARQL)提供有用的信息。
- 包含其他 URI 的链接,以便用户可以发现更多信息。
PaaS 结构
我们正在探索 PaaS 结构的许多开放替代方案,包括 OpenShift 和 Cloud Foundry。每个方案在支持各种不同的运行时环境(包括 Java、JavaScript、Python、Ruby 等)、流行的框架(比如 Node.js、Tomcat 和 Ruby on Rails 等)和众多不同的服务(NoSQL 数据库、排队、消息、缓存、分析、社交媒体、大数据等)方面提供了类似的特征,这为更多运行时环境、框架和服务的合并提供了一种开放架构。
社交
Activity Streams 是一种新兴标准,为开发人员提供了通用词汇表来描述业务事件,使应用程序能够实时地通过某些人来社会化数据和知识。使用现有和未来的 IT 架构实现,有助于简化用户中的信息和业务线可视性,为组织共享、评论和协作的能力提供支持。
OpenSocial 是一种基于标准的组件模型,适用于基于云的社交应用程序。该模型提供了一种集成现有应用程序的一致方法,能够在单一视图中添加第三方应用程序。这简化了用户体验,使用户能够以当时最适合他们的方式工作。信息可跨电子邮件、内容系统和富媒体进行集成,所有这些集成可在给定上下文中执行或跨平台执行。该项目通过 Apache Shindig 项目(OpenSocial 的一项开源参考实现)以及对领先的标准(比如 ActivityStreams 和 OAuth2.0)的支持 来实现跨行业一致性。
Activity Streams 和 OpenSocial 都有潜力通过实时信息共享帮助从传统的信息孤岛中解放数据。
物联网
在应对物联网时,可使用 MQ Telemetry Transport,这是一种轻量型发布/订阅协议,采用可预测的双向消息传送方式。它非常适合需要较少的代码的应用程序,或者在网络带宽有限时使用。物联网(传感器、连网设施和设备、智慧建筑及连网汽车)可从此协议的高效率中获益。
MQTT 社区目前正在努力利用 OASIS 来标准化该规范。此外,MQTT 协议有多种开源实现,包括 Eclipse Paho 项目和 Mosquitto 项目。
业务应用程序和 SaaS 层
在 SaaS 层,我们的开放云架构解决了安全和联邦身份(TLS/SSL、OpenID、OASIS SAML 和 IETF 的 OAuth2.0),支付(Google Wallet 和 Apple 的 Passport)和用户界面(W3C 的 HTML5、IETF 的 JSON、Apache Cordova 和 Eclipse)。
HTML5 是构建跨平台的富 Internet 应用程序的通用语言,但仍然支持没有插件的原生移动功能。它由 W3C 管理,代表着 HTML4 / XHTML 的演化。HTML5 还合并了 SVG 和 CSS 等标准。
HTML5 大大简化了应用程序开发,它提供了对跨众多桌面和移动平台的多媒体的原生支持。此外,它还提供了对一些高级技术的原生支持,比如离线存储和应用程序、设备访问、地理位置和语义数据。
Apache Cordova 是一种开源项目,它使用平台服务使 “编写一次,随处运行” 的混合应用程序变为现实。Cordova 专注于提供特定于设备代码来用作 “填充码”,使混合应用程序能够跨众多设备访问原生移动功能。该社区专注于对支持更多设备的代码的持续维护和增强。自 2010 年创立该项目以来,IBM 是一个重要的贡献者,增添了新功能并改善了对版本管理的注重度。HTML5 和 Apache Cordova 的结合对富移动应用程序的持续发展至关重要。
安全性
OAuth 是一个开放协议,允许采用某种简单的标准方法来保护对云、Web、移动和桌面应用程序的授权。具体来讲,它支持授权和访问在一个应用程序或基础架构中定义的 REST API 端点。OAuth 已成为将 REST API 集成到企业中的一项重要的安全技术,它可提供对防火墙内部或外部的服务的访问能力。
技术预览
IBM IMPACT 2013 的出席者可能已看到或听到过上面介绍的开放云架构中反映的 这项新兴功能的预览版本。
Project Icap
Project Icap 是一个技术预览版。Project Icap 结合了一个集成开发环境 (IDE),提供了开发工具来实现以云为中心的应用程序和移动应用程序所通用的快速、高度迭代式开发。该 IDE 提供了对 Java 的支持 (WebSphere Liberty Profile),具有针对 JAX-RS、Servlet 3.0 和 Spring MVC 的开发模板。此外,Icap IDE 还支持 JavaScript (Node.js) 和移动应用程序开发 (IBM Worklight)。Project ICAP 可作为 一个 Eclipse 插件 通过下载获得。
ICAP 的另一个特性是它的云浏览器,可用于发现和共享服务。
Project ICAP 还提供了一个可在本地运行的开发人员沙盒。该沙盒包含许多可用于创建应用程序的基础服务,比如一个基于 Derby 的关系数据库服务,一个基于 WebSphere Extreme Scale (WXS) 的弹性缓存服务 (ECaaS),一个允许您连接社交网络和社交媒体属性的简单社交服务(比如 Twitter 或新浪微博),以及示例位置服务(开发人员可将它们集成到其应用程序中,向移动应用程序提供位置感知功能)。
Project ET
另一个技术预览版是 Project ET,这是一个新兴的公共云环境,依照我们成功的 jStart 程序而建模。这个公共云环境提供了许多可通过 Project Icap 的沙盒提供的相同服务,这些服务可在一个 OpenStack 云上运行。目前我们在 OpenStack Folsom 上运行,但我们打算很快迁移到最新的 OpenStack 版本 Grizzly。
在此环境中,我们托管着一个新兴的开源 PaaS 平台,您可在其中利用一组托管服务开发以云为中心的应用程序,这些托管服务包括 PostgreSQL、MySQL、Redis、blob 存储、弹性缓存 (ECaaS)、示例位置服务、一个 SMS 服务、简单社交服务、RabbitMQ 和 MongoDB。我们打算以一种持续的操作交付模式,不断在线提供来自 IBM、开源和 IBM 合作伙伴的更多服务。我们特别关注您希望看到哪些服务的反馈。
Project ET 团队将与探索这两个预览性产品的客户紧密合作,收集反馈,理解哪些软件服务对他们很重要,以及如何管理开发、交付、管理和托管这些新型交互系统的各个方面。
参考资料:
英文版-IBM's open cloud architecture:http://www.ibm.com/developerworks/cloud/library/cl-open-architecture/
中文版-IBM 的开放云架构:http://www.ibm.com/developerworks/cn/cloud/library/cl-open-architecture/