去年夏天我评估了CloudFoundryPaaS(PlatformasaService),重点关注Pivotal和ActiveState这两个开源解决方案。对于此测试,我将重点关注IBMBluemix,这是一个托管在SoftLayer上的多租户PaaS,它将CloudFoundry与改进的在线用户界面以及来自IBM和第三方的服务相结合。Bluemix上最具特色的服务基于Watson,这是一个提供自然语言处理、假设生成和评估以及动态学习的认知系统。Bluemix中的其他几个服务和集成填补了CloudFoundry开源版本的空白,例如自动缩放、移动、大数据和企业集成服务。请注意:在不分叉CloudFoundry代码的情况下已经填补了空白。事实上,Bluemix的技术官BalaRajaraman非常坦率地告诉我:“我们不会对代码进行分叉。”相同的。我为开源CloudFoundry安装的boshPaaS配置命令行程序和Bluemix工程师内部使用的是一样的,但是Bluemix用户根本不需要学习使用bosh,因为IBM对Bluemix的计划是让用户无需操心PaaS管理,专注于服务,让用户只专注于构建应用。我赞成这种做法。作为一名开发人员,我发现学习和使用Bosh有点麻烦;我认为配置PaaS的繁重工作应该留给运营团队。对我而言,PaaS和开发运营(devops)有望实现“低摩擦”的基础设施供应和管理,以构建和部署软件。让开发人员将大部分时间花在设置PaaS所需的繁琐操作工作上,违背了使用PaaS的初衷。同时,我喜欢能够在笔记本电脑上单独运行单个VM进行实验的“微云”PaaS,这就是为什么我也看到了ActiveStateStackato和可下载的PaaSVM映像的价值。由于Bluemix建立在未经修改的CloudFoundry之上,它也拥有CloudFoundry架构中的一切:Droplet、DEA(DropletExecutionAgent)和构建包等,在虚拟机中运行。CloudFoundry部分如下图架构图左下方浅蓝色虚拟机框所示。图1:Bluemix架构图。请注意:Bluemix基本上是一个预装的CloudFoundry虚拟机,外加改进的用户界面和附加服务。Bluemix还使用CloudFoundry架构:它具有与其他CloudFoundry解决方案相同的CloudFoundry构建包和服务,并添加了一些自己的。我们将把它分解成样板,也称为快速入门包或应用程序商店;运行时环境,也称为构建包;和服务。Bluemix包括针对Watson、移动、DevOps、Web和应用程序、集成、数据管理、大数据、安全性、业务分析和物联网的服务。我在下面描述了所有这些服务。IBM、社区或第三方公司,所有各方都可以支持Bluemix服务。实验服务是免费的、不稳定的,并且可能会发生变化,这可能会导致向后兼容。因此,不建议将它们用于生产环境。Beta服务是免费的,但尚未在实际环境中进行广泛测试。所有Watson服务目前都被归类为测试版。Bluemix样板从图2中可以看出,Bluemix当前提供13种不同的“样板”或快速启动包。虽然他们中的大多数都有IBM版本,但这不一定是坏事。提供的一些样板可能需要一些解释。例如,InternetofThingsFoundationStarter样板提供了一个Cloudant(兼容CouchDB)NoSQLJSON数据层和一个托管在Node.js运行时环境的SDK上的Node-RED应用程序。Node-RED是一种可用于连接硬件设备、API和在线服务的工具。Node-REDStarter样板类似,但有社区支持。JavaCacheWebStarter模板结合了LibertyforJava(轻量级WebSphere配置文件)、DataCache服务以及监控和分析服务。就免费版而言,DataCache只有50MB大小,MonitoringandAnalytics服务缺少更深入的性能监控和诊断功能。移动云样板结合了Node.js、移动应用程序安全、IBM推送消息和移动数据(带有多租户Cloudant后端)。它包括适用于Android、iOS和JavaScript的SDK。就免费版而言,它限制为2GB存储空间、每月100万条推送通知和每月375GB小时。MobileFirstServicesStarter样板类似,但包括推送通知和专门针对iOS8的安全性。三个UserModelingWebstarter样板将WatsonUserModeling服务与运行时环境和一些示例代码相结合。WatsonUserModeling利用语言分析技术,从个体的交流方式中提取出一系列个性和社会特征,旨在实现个性化交流。Vaadin是用于富Internet应用程序的开源Web应用程序框架。Vaadin入门样板使用DB2数据库在LibertyforJava中运行框架。图2:一组现有的Bluemix样板,也称为快速启动包或应用程序商店。Bluemix运行时环境,也称为buildpackBluemix上可用的运行时环境集包括图3中所示的七个命名buildpack,以及已获准用于CloudFoundry的任何其他buildpack。图中所示的六个运行时环境你应该很熟悉;第七个是Sinatra,是一种DSL(领域特定语言),用于快速轻松地在Ruby中构建Web应用程序。PHP构建包支持PHP5.4/5.5/5.6、Nginx1.5/1.6/1.7和ApacheHTTPD2.4。PHPbuildpack支持的Python版本为2.6.6,目前不是最新版本。另一方面,Pythonbuildpack支持十几个版本的Pypy,外加几十个版本的Python2和Python3。CloudFoundry的社区构建包包括Clojure、Haskell、Mono和Erlang运行时环境。事实上,我发现Perl是CloudFoundry不支持的唯一一种流行的Linux兼容应用程序服务器语言。图3:Bluemix上可用的运行时环境范围包括上面提到的七个buildpack,以及已获准与CloudFoundry一起使用的任何其他buildpack。图中所示的六个运行时环境大家应该很熟悉,这七个Sinatra是一种DSL(domain-specificlanguage,用于在Ruby中轻松构建web应用程序。#p#WatsonserviceinBluemix目前的七个Watson服务可用的(图4)是概念扩展、语言识别、机器翻译、消息共鸣、问答、关系提取和用户建模。它们都仍处于测试阶段。我之前描述了用户建模,这里还有其他六项服务。概念扩展服务分析文本并根据其在其他类似上下文中的使用来解释其含义。例如,它可能将“大苹果”解释为“纽约市”。它可用于编写相关单词和概念的词典,以便可以更清楚地理解和分析委婉语、口语和其他模棱两可的短语。这个免费的Bluemixbeta服务具有预定义的数据集和域,因此非常适合生产环境nments在语言识别方面没有用。语言识别服务检测文本是用哪种语言编写的。这有助于为进一步的步骤提供信息,例如翻译、语音到文本或直接分析。该服务可以与机器翻译服务结合使用。如今,该服务可识别25种语言。机器翻译服务将以一种语言输入的文本转换为用户所需的目标语言。可在英语、巴西葡萄牙语、西班牙语、法语和阿拉伯语之间转换。图4:Bluemix提供七种Watson服务和八种移动服务。许多Watson服务目前仅限于一个域。MessageResonance服务分析草稿内容并评估其被特定目标受众接受的可能性。该分析基于目标受众自己撰写的内容,例如某些运动队的粉丝或有新生儿的父母。虽然未来的版本将允许用户贡献自己的社区数据,但目前仅对积极使用云计算或参与云计算讨论的人开放分析;在云计算之外,测试版服务在生产中毫无用处。问答服务直接从先前在数据存储库(语料库)中选择和收集的主要数据源(宣传册、网页、说明手册和记录)解释和回答用户问题。该服务会返回可能合适的答案以及相关的置信度和支持证据的链接。Bluemix上的现有数据主要集中在旅游和医疗保健行业,因此对其他领域毫无用处。关系提取服务分部分分析句子并识别各部分之间的关??系。它可以处理以前从未在上下文分析的帮助下分析过的新词(例如新闻内容中的名称)。句子部分包括词性(名词、动词、形容词、副词和连词)和功能(主语、宾语和谓语)。该服务映射句子部分之间的关??系,以便用户或分析引擎更容易理解每??个句子和文档的含义。测试版服务通过单独的API针对英语或西班牙语的新闻文章或其他新闻相关文本进行了优化。你不能在随机性领域使用它并期望得到正确答案。从图5可以看出,它并不总是返回正确的答案,即使是新闻文章也是如此。一旦您提供了自己的训练集(一组数据),您就应该能够在域中调整服务。总的来说,Bluemix上的betaWatson服务看起来很吸引人,但还没有完全准备好。图5:我在一篇随机选择的新闻文章上测试了关系提取服务。如您所见,并非所有提取的关系都是正确的。移动和应用程序服务我们之前讨论了Bluemix上可用的八种移动服务中的六种。另一个是移动质量保证,一项支持多种功能的服务:移动应用程序测试、用户验证和带有情绪分析的简化质量反馈;无线版本分发;自动崩溃报告;应用内软件错误报告和用户反馈。然后是第三方语音、消息和VoIP服务Twilio。Bluemix中有19种类型的Web和应用程序服务。这里讨论的太多了,但有一些服务值得一提。RapidApps是一项功能有限的测试版服务,声称可以让您“使用可视化工具快速开发以数据为中心的Web和移动应用程序,而无需编写代码”。RapidApps应该是针对业务分析师的;阶段,似乎还远未成熟,但未来或许值得关注。在BusinessRules服务获取您使用RuleDesigner(规则设计器)创建的自然语言规则后,它会在您的应用程序调用时执行这些规则。该服务似乎也针对业务分析师,尽管在现阶段它比RapidApps更成熟。DevOps服务BlueMix上的八项DevOps服务包括五项来自IBM和三项来自第三方。TrackandPlan服务让您可以创建故事、任务和缺陷来描述和跟踪项目工作,还可以使用敏捷规划工具处理产品待办事项、发布和开发周期。该服务实际上为您提供了用于Git或Jazz软件存储库的RationalTeamConcert(团队协作工具)。DeliveryPipeline服务可让您自动执行构建和部署、测试代码执行、配置构建脚本以及自动执行单元测试。我喜欢这两个服务将Jazz接口与Bluemix集成的方式。我们已经探索了JavaCacheWebstarter下的监控和分析服务。Auto-ScalingforBluemixAdd-on使您能够自动增加或减少应用程序的计算能力/容量。AppUserRegistry允许您保护应用程序的资源,或开发基于OAuth2.0的客户端应用程序。三个第三方DevOps服务是BlazeMeter、LoadImpact和NewRelic。其他服务Bluemix中只有两个集成服务,但它们都值得关注。云集成服务使用户能够将云服务与企业记录系统集成;它将后端系统公开为RESTAPI,供应用程序使用。实验性容器服务允许您在Bluemix上运行Docker容器,可以将Bluemix开放给几乎任何东西。在Bluemix上的10项数据管理服务中,两项针对MySQL(一项开源,一项容错),两项针对Postgres(同上),三项针对NoSQL数据库,一项针对DB2。另外两个数据管理服务是对象存储(测试版,基于OpenStackSwift)和DataWorks,其中包括用于加载数据、清理美国邮政地址和分类数据的API。正如您所料,五个Bluemix大数据服务中有两个是基于IBMBigInsightsforHadoop的,一个是单节点解决方案,另一个是集群解决方案。其他三个是基于Informix、地理空间分析和dashDB数据仓库和商业智能/分析解决方案构建的时间序列数据库。Bluemix中的业务分析服务之一是EmbeddableReporting,它允许您在自己的Bluemix环境中运行IBMCognos商业智能报告。BusinessAnalysisServices在受支持的JDBC数据源连接上运行。在安全时代,Bluemix提供了AppScanforWeb、AppScanforAndroid和SSO(单点登录)。SSO服务结合了BYO社交ID、IBMID和多因素身份验证。Bluemix有大量Bluemix服务供您使用。不幸的是,正如我们所见,其中许多仍处于试验阶段和测试阶段,或者存在使其不适用于大多数生产应用程序的局限性。与其他CloudFoundry解决方案相比,Watson可能是Bluemix的最大区别,但它们都处于测试阶段并且基于非常有限的领域。幸运的是,其余服务往往相当可靠。我会毫不犹豫地在Bluemix上构建Web或移动项目,无论它是针对初创公司的全新应用程序还是针对需要集成遗留服务器和记录系统的企业的遗留应用程序。但是,我会认真考虑应用程序的安全和法规要求。Bluemix可以满足欧盟的地理数据要求,因为它在伦敦有一个数据中心。最终可能会在数据中心层面申请认证以符合《联邦信息处理标准》(FIPS)、《健康可携性及责任性法案》(HIPAA)和《支付卡行业数据安全标准》(PCI-DSS)等标准;目前,它在这些方面还处于起步阶段。我给Bluemix的评分高于CloudFoundry,因为它填补了开源CloudFoundry解决方案中的空白。管理、安装和设置都更好,因为Bluemix在内部处理了所有繁重的工作。我对这两种产品的文档评价都一样高;Bluemix的文档更详细一些,但只是稍微好一点。我给Bluemix和CloudFoundry(强调Pivotal解决方案)的价值打了9分,但原因略有不同。事实上,Bluemix的价值主张是可以免费上手,小规模免费运行,然后随着规模的扩大而按量付费。在我看来,免费的Bluemix运行时环境配额足够慷慨,可以让大多数人轻松上手。当您的应用程序超出免费服务的限制时,您可能对应用程序的投资回报有了很好的了解,并且可以证明成本合理或退出。英文原文链接:http://www.networkworld.com/article/2873094/paas/review-ibm-bluemix-bulks-up-cloud-foundry.html
