去年夏天我測評了Cloud Foundry PaaS(平臺即服務(wù)),當(dāng)時著眼于Pivotal和ActiveState這兩種解決開源方案。這回測試時,我將關(guān)注IBM Bluemix,這是在SoftLayer上托管運行的多租戶PaaS,它結(jié)合了Cloud Foundry和經(jīng)過改進的在線用戶界面以及來自IBM和第三方的服務(wù)。
Bluemix上最具特色的那些服務(wù)基于Watson,這個認(rèn)知系統(tǒng)提供了自然語言處理、假設(shè)生成及評估以及動態(tài)學(xué)習(xí)等功能。Bluemix中的另外幾種服務(wù)和整合填補了開源版Cloud Foundry的缺口,比如自動擴展、移動、大數(shù)據(jù)和企業(yè)整合服務(wù)。
請注意:不用分叉Cloud Foundry代碼,缺口也已經(jīng)填補。實際上,Bluemix首席技術(shù)官Bala Rajaraman很坦率地告訴我:“我們不會分叉代碼。”我當(dāng)初為開源Cloud Foundry和Pivotal CF安裝的cf應(yīng)用配置命令行程序與Bluemix的配置命令行程序一樣。我為開源Cloud Foundry安裝的bosh PaaS配置命令行程序與Bluemix工程師內(nèi)部使用的一樣,但是Bluemix的用戶們根本不需要學(xué)用bosh,因為IBM在Bluemix方面的打算是,讓用戶無需操心PaaS管理,專注于服務(wù),好讓用戶只要一心構(gòu)建應(yīng)用程序。
我贊同這種做法。身為開發(fā)人員,我發(fā)覺bosh學(xué)用起來有點費勁;我認(rèn)為,配置PaaS方面的繁重任務(wù)應(yīng)該交給操作團隊完成。對我來說,PaaS和開發(fā)運營(devops)有望讓基礎(chǔ)設(shè)施的“低摩擦”配置和管理有助于構(gòu)建和部署軟件。讓開發(fā)人員把相當(dāng)多一部分時間用于建立PaaS所需的繁瑣操作事務(wù),這違背了使用PaaS的根本目的。與此同時,我喜歡能夠在筆記本電腦上單獨運行單個虛擬機的“微云”PaaS,用于試驗,這就是為什么我還認(rèn)識到ActiveState Stackato和可下載的PaaS虛擬機映像具有的價值。
由于Bluemix建立在未經(jīng)改動的Cloud Foundry上,它同樣有著Cloud Foundry架構(gòu)的一切:Droplet、DEA(Droplet執(zhí)行代理)和構(gòu)建包等等,在虛擬機里面運行。下面架構(gòu)圖左下方的淡藍(lán)色虛擬機方框中顯示的就是Cloud Foundry部分。
圖1:Bluemix架構(gòu)圖。
請注意:Bluemix基本上一個預(yù)裝的Cloud Foundry虛擬機,外加經(jīng)過改進的用戶界面和額外服務(wù)。
Bluemix同樣使用Cloud Foundry架構(gòu):它同樣有其他Cloud Foundry解決方案上可用的Cloud Foundry構(gòu)建包和服務(wù),又添加了自己的一些東西。我們會將這一切細(xì)分為樣板(boilerplate),其他地方又叫快速啟動包或應(yīng)用程序商店;運行時環(huán)境,其他地方又叫構(gòu)建包;以及服務(wù)。Bluemix包括眾多服務(wù),面向Watson、移動、開發(fā)運營、Web及應(yīng)用程序、整合、數(shù)據(jù)管理、大數(shù)據(jù)、安全、業(yè)務(wù)分析和物聯(lián)網(wǎng)。我在下面會介紹所有這些服務(wù)。
IBM、社區(qū)或第三方公司,各方都能支持Bluemix服務(wù)。試驗服務(wù)是免費的,不太穩(wěn)定,很容易出現(xiàn)變化,可能會導(dǎo)致無法向后兼容。因而,不建議它們用于生產(chǎn)環(huán)境。測試版服務(wù)是免費的,但還沒有在實際環(huán)境中得到廣泛測試。所有Watson服務(wù)目前都被歸為測試版。
Bluemix樣板
正如你能從圖2中看到的那樣,Bluemix目前提供13種不同的“樣板”或快速啟動包。雖然其中大多數(shù)都有IBM版本,但這未必是件壞事。
提供的一些樣板可能需要一番解釋。比如說,Internet of Things Foundation Starter樣板提供了Cloudant(與CouchDB兼容)NoSQL JSON數(shù)據(jù)層,以及在面向Node.js運行時環(huán)境的軟件開發(fā)工具包(SDK)上托管運行的Node-RED應(yīng)用程序。Node-RED這個工具可用來把硬件設(shè)備、API和在線服務(wù)連接起來。Node-RED Starter樣板很相似,不過得到社區(qū)的支持。
Java Cache Web Starter樣板結(jié)合了Liberty for Java(一種輕型WebSphere配置文件)、DataCache服務(wù)和Monitoring and Analytics服務(wù)。就免費版而言,DataCache只有50MB大小,Monitoring and Analytics服務(wù)缺少更深入的性能監(jiān)控和診斷功能。
Mobile Cloud樣板結(jié)合了Node.js、Mobile Application Security、IBM Push消息和Mobile Data(帶多租戶Cloudant后端)。它包括面向安卓、iOS和JavaScript的SDK。就免費版而言,它僅限于2GB存儲空間、每月100萬則推送通知和每月375GB-小時。MobileFirst Services Starter樣板很相似,但含有推送通知和專門針對iOS 8采取的安全。
三種User Modeling Web starters樣板將Watson User Modeling服務(wù)與運行時環(huán)境和一些示例代碼結(jié)合起來。Watson User Modeling利用語言分析技術(shù),從個人的交流方式提取一系列個性和社會特征,旨在實現(xiàn)個性化交流。
Vaadin是一種開源Web應(yīng)用框架,面向豐富的互聯(lián)網(wǎng)應(yīng)用程序。Vaadin starter樣板在Liberty for Java中運行框架,使用DB2數(shù)據(jù)庫。
圖2:現(xiàn)有的一系列Bluemix樣板,其他地方又叫快速啟動包或應(yīng)用程序商店。
Bluemix運行時環(huán)境,又叫構(gòu)建包
Bluemix上提供的一系列運行時環(huán)境包括圖3中顯示的七種命名構(gòu)建包,外加已批準(zhǔn)用于Cloud Foundry的其他任何構(gòu)建包。圖中所示的六種運行時環(huán)境對你來說應(yīng)該很熟悉;第七種Sinatra是一種DSL(特定領(lǐng)域語言),它用于快速、輕松地用Ruby來構(gòu)建Web應(yīng)用程序。
PHP構(gòu)建包支持PHP 5.4/5.5/5.6、Nginx 1.5/1.6/1.7以及Apache HTTPD 2.4。PHP構(gòu)建包中支持的Python版本是2.6.6,目前它不是最新版。另一方面,Python構(gòu)建包支持Pypy的十幾種版本,另外還支持Python 2和Python 3各自的幾十種版本。
Cloud Foundry的社區(qū)構(gòu)建包包括Clojure、Haskell、Mono和Erlang運行時環(huán)境。實際上,我發(fā)現(xiàn)Perl是在Cloud Foundry上唯一不支持的很流行的與Linux兼容的應(yīng)用服務(wù)器語言。
圖3:Bluemix上提供的一系列運行時環(huán)境包括上述七種命名構(gòu)建包,外加已批準(zhǔn)用于Cloud Foundry的其他任何構(gòu)建包。圖中所示的六種運行時環(huán)境對你來說應(yīng)該很熟悉,七種Sinatra是一種DSL(特定領(lǐng)域語言,它用于輕松地用Ruby來構(gòu)建Web應(yīng)用程序。
[page]Watson服務(wù)
Bluemix中目前提供的七種Watson服務(wù)(圖4)是Concept Expansion、Language Identification、Machine Translation、Message Resonance、Question and Answer、Relationship Extraction以及User Modeling。它們都仍在測試階段。我前面描述了User Modeling,這里介紹另外六種服務(wù)。
Concept Expansion服務(wù)分析文本,并根據(jù)在其他類似上下文中的使用來解讀其含意。比如說,它可能把“大蘋果”解讀為“紐約市”這層含意。它可以用來編撰相關(guān)單詞和概念組成的字典,那樣就能更清楚地理解和分析委婉語、俗語及原本含糊不清的短語。這種免費的Bluemix測試版服務(wù)有預(yù)定義的數(shù)據(jù)集和領(lǐng)域,所以對生產(chǎn)環(huán)境而言它毫無用處。
Language Identification服務(wù)可檢測文本是用哪種語言所寫的。這有助于為下一步提供信息依據(jù),比如翻譯、語音轉(zhuǎn)換成文本或直接分析。該服務(wù)可以結(jié)合Machine Translation服務(wù)使用。如今,該服務(wù)可識別25種語言。
Machine Translation服務(wù)將使用一種語言輸入的文本轉(zhuǎn)換成用戶所需的目標(biāo)語言。可以在英語、巴西葡萄牙語、西班牙語、法語和阿拉伯語之間轉(zhuǎn)換。
圖4:Bluemix提供七種Watson服務(wù)和八種移動服務(wù)。許多Watson服務(wù)目前局限于一個領(lǐng)域。
Message Resonance服務(wù)分析草案內(nèi)容,并評估被特定的目標(biāo)受眾接受的可能性有多大。這種分析基于目標(biāo)受眾本身撰寫的內(nèi)容,比如某些球隊的粉絲或剛添寶寶的家長。雖然未來版本讓用戶可以提供自己的社區(qū)數(shù)據(jù),如今只能針對積極使用云計算或參與云計算討論的人進行分析;就云計算之外的領(lǐng)域而言,該測試版服務(wù)在生產(chǎn)環(huán)境下毫無用處。
Question and Answer服務(wù)直接根據(jù)之前被選擇并被收集到數(shù)據(jù)資料庫(corpus)中的主要數(shù)據(jù)源(冊子、網(wǎng)頁、說明手冊和記錄),解讀和回答用戶問題。該服務(wù)返回可能合適的答案,附有相關(guān)的置信水平和支持證據(jù)的鏈接。Bluemix上的現(xiàn)有數(shù)據(jù)側(cè)重于旅游和醫(yī)療保健行業(yè),因而對其他領(lǐng)域而言毫無用處。
Relationship Extraction服務(wù)將句子分成多個部分來加以分析,辨別諸部分之間的關(guān)系。它能借助上下文分析功能,處理之前從未分析過的新詞語(比如新聞內(nèi)容中的人名)。句子部分包括詞性(名詞、動詞、形容詞、副詞及連詞)和功能(主語、賓語及謂語)。該服務(wù)將各句子部分的關(guān)系對應(yīng)起來,那樣用戶或分析引擎就更容易理解每個句子和文檔的含意了。
該測試版服務(wù)針對采用英語或西班牙語的新聞文章或其他新聞相關(guān)文本進行了優(yōu)化,通過單獨的API來優(yōu)化。你無法把它用于隨意性領(lǐng)域,指望獲得正確的答案。正如你從圖5看到的那樣,即便針對新聞文章,它也并不總是返回正確的答案;一旦你能提供自己的訓(xùn)練集(training set,一組數(shù)據(jù)),應(yīng)該能夠根據(jù)自己感興趣的領(lǐng)域來調(diào)優(yōu)服務(wù)。
總的來說,Bluemix上的測試版Watson服務(wù)看起來引人入勝,但是它們還沒有完全作好準(zhǔn)備。
圖5:我對隨機挑選的一篇新聞文章測試了Relationship Extraction服務(wù)。正如你所見,并非所有提取的關(guān)系都是正確的。
移動和應(yīng)用程序服務(wù)
我們前面已經(jīng)討論了Bluemix上可用的八種移動服務(wù)中的六種。另一種是Mobile Quality Assurance,該服務(wù)支持多種功能:移動應(yīng)用程序測試、用戶驗證及借助情緒分析簡化質(zhì)量反饋;空中下載的版本分發(fā);崩潰自動報告;應(yīng)用程序內(nèi)軟件錯誤報告和用戶反饋。另外就是Twilio,這是一種第三方語音、消息和VoIP服務(wù)。
Bluemix中有19種Web和應(yīng)用服務(wù)。太多了,這里就不一一討論了,不過有幾種服務(wù)值得一提。RapidApps是一種功能有限的測試版服務(wù),聲稱讓你可以“使用可視化工具,迅速開發(fā)出以數(shù)據(jù)為中心的Web和移動應(yīng)用程序,不需要編寫代碼。”RapidApps應(yīng)該面向業(yè)務(wù)分析人員這個群體;現(xiàn)階段,它似乎遠(yuǎn)未成熟,不過將來可能值得關(guān)注。
Business Rules服務(wù)拿來你用Rule Designer(規(guī)則設(shè)計器)創(chuàng)建的自然語言規(guī)則后,在被你的應(yīng)用程序調(diào)用時,執(zhí)行規(guī)則。該服務(wù)似乎同樣針對業(yè)務(wù)分析人員,不過現(xiàn)階段它比RapidApps來得成熟。
開發(fā)運營服務(wù)
BlueMix上的八種開發(fā)運營服務(wù)包括來自IBM的五種服務(wù)和來自第三方的三種服務(wù)。Track and Plan服務(wù)讓你可以創(chuàng)建故事、任務(wù)和缺陷,以描述和跟蹤項目工作,另外使用用于產(chǎn)品待辦事項、版本發(fā)布和開發(fā)周期的敏捷規(guī)劃工具。該服務(wù)實際上為你提供了面向Git或Jazz軟件庫的Rational Team Concert(團隊協(xié)作工具)。
Delivery Pipeline服務(wù)讓你可以實現(xiàn)構(gòu)建和部署自動化、測試代碼執(zhí)行、配置構(gòu)建腳本以及實現(xiàn)單元測試的執(zhí)行自動化。我喜歡這兩種服務(wù)將Jazz界面與Bluemix整合起來的方式。
我們已探討了Java Cache Web starter下的Monitoring and Analytics服務(wù)。Auto-Scaling for Bluemix Add-on讓你能夠為自己的應(yīng)用程序自動增加或減少計算能力/容量。App User Registry讓你可以保護你申請的資源,或者開發(fā)基于OAuth 2.0的客戶應(yīng)用程序。三種第三方開發(fā)運營服務(wù)是BlazeMeter、Load Impact和New Relic。
其他服務(wù)
Bluemix中只有兩種整合服務(wù),但它們都值得關(guān)注。Cloud Integration服務(wù)讓用戶能夠?qū)⒃品?wù)與企業(yè)記錄系統(tǒng)整合起來;它將后端系統(tǒng)作為REST API來展現(xiàn),供應(yīng)用程序使用。試驗階段的Containers Service服務(wù)讓你可以在Bluemix上運行Docker容器,這可能會讓Bluemix向幾乎一切敞開大門。
在Bluemix上的10種數(shù)據(jù)管理服務(wù)中,兩種面向MySQL(一種開源,一種容錯),兩種面向Postgres(同上),三種面向NoSQL數(shù)據(jù)庫,一種面向DB2。另外兩種數(shù)據(jù)管理服務(wù)是Object Storage(測試版,基于OpenStack Swift)和DataWorks,后者包括可裝入數(shù)據(jù)、清潔美國郵政地址以及分類數(shù)據(jù)的API。
正如你預(yù)料,五種Bluemix大數(shù)據(jù)服務(wù)中兩種基于IBM Big Insights for Hadoop,一種是單節(jié)點方案,另一種是集群方案。另外三種是基于Informix而建的時間序列數(shù)據(jù)庫、Geospatial Analytics,以及dashDB數(shù)據(jù)倉庫和商業(yè)智能/分析解決方案。
Bluemix中的一種業(yè)分析服務(wù)是Embeddable Reporting,它讓你可以在自己的Bluemix環(huán)境里面運行IBM Cognos商業(yè)智能報表。業(yè)務(wù)分析服務(wù)在得到支持的JDBC數(shù)據(jù)源連接上運行。
在安全時代,Bluemix提供了AppScan for Web、AppScan for Android和SSO(單次登錄)。SSO服務(wù)結(jié)合了BYO社交ID、IBM ID和多因子驗證。
供你差遣的Bluemix
Bluemix服務(wù)有好多。遺憾的是,正如我們所見,其中許多仍處于試驗階段和測試階段,或者受到的限制讓它們并不適合大多數(shù)生產(chǎn)環(huán)境的應(yīng)用程序。Watson也許是Bluemix相比其他Cloud Foundry解決方案最大的差異化因素,但都處于測試版階段,基于上局限于很有限的領(lǐng)域。
幸好,其余服務(wù)往往非??煽?。我會毫不猶豫地在Bluemix上構(gòu)建一個Web或移動項目,無論是為初創(chuàng)企業(yè)開發(fā)一個全新的應(yīng)用程序,還是為需要整合遺留服務(wù)器和記錄系統(tǒng)的企業(yè)開發(fā)一款老式應(yīng)用程序。
不過,我會認(rèn)真考慮應(yīng)用程序在安全和監(jiān)管方面的要求。Bluemix能滿足歐盟的地理數(shù)據(jù)要求,因為它在倫敦設(shè)有一個數(shù)據(jù)中心。它最終可能會申請相關(guān)認(rèn)證,以便在數(shù)據(jù)中心層面符合《聯(lián)邦信息處理標(biāo)準(zhǔn)》(FIPS)、《健康可攜性及責(zé)任性法案》(HIPAA)和《支付卡行業(yè)數(shù)據(jù)安全標(biāo)準(zhǔn)》(PCI-DSS)等標(biāo)準(zhǔn);眼下,它在這些方面還處于起步階段。
我給Bluemix打的分高于Cloud Foundry,因為它填補了開源Cloud Foundry解決方案的缺口。管理、安裝和設(shè)置都更勝一籌,因為Bluemix在內(nèi)部處理所有的繁重任務(wù)。我在說明文檔方面給這兩款產(chǎn)品打的分一樣高;Bluemix編制的說明文檔要詳細(xì)一點,但僅僅是略微做得更好一點。
我在價值方面給Bluemix和Cloud Foundry(強調(diào)Pivotal解決方案)打了9分,不過理由有點不一樣。實際上,Bluemix的價值主張是,你可以免費上手,免費小范圍運行,之后隨著規(guī)模不斷擴大,可以按需付費。在我看來,免費的Bluemix運行時環(huán)境配額很大方,足以讓大多數(shù)人開始上手,沒有太多的摩擦。等到你的應(yīng)用程序超過了免費服務(wù)的限制范圍,你大概已非常清楚應(yīng)用程序的投資回報,你可以證明有必要投入成本,也可以及時叫停。
英文原文鏈接:http://www.networkworld.com/article/2873094/paas/review-ibm-bluemix-bulks-up-cloud-foundry.html