定義術(shù)語(yǔ)
概述
應(yīng)用平臺(tái)(application platforms)是如何被使用的。開(kāi)發(fā)團(tuán)隊(duì)在創(chuàng)建一個(gè)戶內(nèi)應(yīng)用(on-premises application,即在機(jī)構(gòu)內(nèi)運(yùn)行的應(yīng)用)時(shí),該應(yīng)用所需的許多基礎(chǔ)都已經(jīng)事先存在了:操作系統(tǒng)為執(zhí)行應(yīng)用和訪問(wèn)存儲(chǔ)等提供了基礎(chǔ)支持;機(jī)構(gòu)里的其他計(jì)算機(jī)提供了諸如遠(yuǎn)程存儲(chǔ)之類的服務(wù)。倘若每創(chuàng)建一個(gè)戶內(nèi)應(yīng)用都得首先構(gòu)建所有這些基礎(chǔ)的話,那么恐怕我們今天看到的應(yīng)用會(huì)少很多。
同理,倘若每一個(gè)希望創(chuàng)建云應(yīng)用[1](cloud application)的開(kāi)發(fā)團(tuán)隊(duì)都得首先構(gòu)建自己的云平臺(tái)的話,那么我們今后看到的云應(yīng)用將寥寥無(wú)幾。幸運(yùn)的是出現(xiàn)了一些致力于解決此問(wèn)題的廠商,今天有很多云平臺(tái)技術(shù)可供我們使用。本文的主旨即從企業(yè)應(yīng)用創(chuàng)建者的角度來(lái)分類并簡(jiǎn)要介紹這些技術(shù)。
三種云服務(wù)
實(shí)際環(huán)境中的云平臺(tái):三種云服務(wù)
為掌握云平臺(tái),我們先從大體上考察一下云服務(wù)。我們可以把通過(guò)“云”提供的服務(wù)分為三大類。它們是:
軟件即服務(wù)(Software as a service,SaaS):SaaS應(yīng)用是完全在“云”里(也就是說(shuō),一個(gè)Internet服務(wù)提供商的服務(wù)器上)運(yùn)行的。其戶內(nèi)客戶端(on-premises client)通常是一個(gè)瀏覽器或其他簡(jiǎn)易客戶端。Salesforce可能是當(dāng)前最知名的SaaS應(yīng)用,不過(guò)除此以外也有許多其他應(yīng)用。
附著服務(wù)(Attached services):每個(gè)戶內(nèi)應(yīng)用(on-premises application)自身都有一定功能,它們可以不時(shí)地訪問(wèn)“云”里針對(duì)該應(yīng)用提供的服務(wù),以增強(qiáng)其功能。由于這些服務(wù)僅能為該特定應(yīng)用所使用,所以可以認(rèn)為它們是附著于該應(yīng)用的。一個(gè)著名的消費(fèi)級(jí)例子就是蘋果公司的iTunes:其桌面應(yīng)用可用于播放音樂(lè)等等,而附著服務(wù)令購(gòu)買新的音頻或視頻內(nèi)容成為可能。微軟公司的Exchange托管服務(wù)是一個(gè)企業(yè)級(jí)例子,它可以為戶內(nèi)Exchange服務(wù)器增加基于“云”的垃圾郵件過(guò)濾、存檔等服務(wù)。
云平臺(tái)(Cloud platforms):云平臺(tái)提供基于“云”的服務(wù),供開(kāi)發(fā)者創(chuàng)建應(yīng)用時(shí)采用。你不必構(gòu)建自己的基礎(chǔ),你完全可以依靠云平臺(tái)來(lái)創(chuàng)建新的SaaS應(yīng)用。云平臺(tái)的直接用戶是開(kāi)發(fā)者,而不是最終用戶。
要掌握云平臺(tái),首先要對(duì)這里“平臺(tái)”的含義達(dá)成共識(shí)。一種普遍的想法,是將平臺(tái)看成“任何為開(kāi)發(fā)者創(chuàng)建應(yīng)用提供服務(wù)的軟件”。下一節(jié),我們將對(duì)此作具體講解。
應(yīng)用平臺(tái)的一般模型
我們今天對(duì)應(yīng)用平臺(tái)(application platform)的認(rèn)識(shí),主要來(lái)源于戶內(nèi)平臺(tái)(on-premises platforms)。因此,一種思考云平臺(tái)(cloud platforms)的方式,就是考察應(yīng)用開(kāi)發(fā)者在戶內(nèi)環(huán)境里所依賴的服務(wù)(services)是如何轉(zhuǎn)變?yōu)?ldquo;云(cloud)”的。
無(wú)論在戶內(nèi)環(huán)境、還是在“云”里,我們可以認(rèn)為一個(gè)應(yīng)用平臺(tái)(application platform)包含以下三個(gè)部分:
一個(gè)基礎(chǔ)(foundation):幾乎所有應(yīng)用都會(huì)用到一些在機(jī)器上運(yùn)行的平臺(tái)軟件。各種支撐功能(如標(biāo)準(zhǔn)的庫(kù)與存儲(chǔ),以及基本操作系統(tǒng)等)均屬此部分。
一組基礎(chǔ)設(shè)施服務(wù)(infrastructure services):在現(xiàn)代分布式環(huán)境中,應(yīng)用經(jīng)常要用到由其他計(jì)算機(jī)提供的基本服務(wù)。比如提供遠(yuǎn)程存儲(chǔ)服務(wù)、集成服務(wù)及身份管理服務(wù)等都是很常見(jiàn)的。
一套應(yīng)用服務(wù)(application services):隨著越來(lái)越多的應(yīng)用面向服務(wù)化,這些應(yīng)用提供的功能可為新應(yīng)用所使用。盡管這些應(yīng)用主要是為最終用戶提供服務(wù)的,但這同時(shí)也令它們成為應(yīng)用平臺(tái)的一部分。(也許你要奇怪,為什么要把別的應(yīng)用視為平臺(tái)的一部分,但在面向服務(wù)的世界里是這樣的。)
開(kāi)發(fā)工具也是另一個(gè)重要部分?,F(xiàn)代工具可以幫助開(kāi)發(fā)者們運(yùn)用應(yīng)用平臺(tái)的這三個(gè)部分來(lái)構(gòu)建應(yīng)用。
為了對(duì)這個(gè)抽象模型有具體的認(rèn)識(shí),下面我們將它與今天主流的戶內(nèi)平臺(tái)加以對(duì)照。戶內(nèi)基礎(chǔ)(on-premises foundation)包括有:
操作系統(tǒng)(Operating system):Windows、Linux及其它版本的Unix是主流選擇。
本地支持(Local support):不同風(fēng)格的應(yīng)用采用不同的技術(shù)。例如,.NET框架和Java EE應(yīng)用服務(wù)器為Web應(yīng)用等提供了一般性支持,而其它技術(shù)則面向特定類型的應(yīng)用。比如Microsoft Dynamics CRM產(chǎn)品提供了一個(gè)為創(chuàng)建特定類型的商業(yè)應(yīng)用而設(shè)計(jì)的平臺(tái)。類似地,不同種類的存儲(chǔ)被用于不同目的。Windows、Linux及其它操作系統(tǒng)里的文件系統(tǒng)提供了原始字節(jié)的存儲(chǔ)功能,而各種數(shù)據(jù)庫(kù)技術(shù)(比如Oracle DBMS、MySQL、Microsoft SQL Server及IBM DB2等)則提供了更加結(jié)構(gòu)化的存儲(chǔ)功能。
對(duì)于戶內(nèi)基礎(chǔ)設(shè)施服務(wù)(on-premises infrastructure services),典型例子包括:
存儲(chǔ)(Storage):跟基礎(chǔ)里的存儲(chǔ)一樣,基礎(chǔ)設(shè)施里的存儲(chǔ)也分為多種風(fēng)格。遠(yuǎn)程文件系統(tǒng)可以提供簡(jiǎn)單的面向字節(jié)的存儲(chǔ),而Microsoft SharePoint文檔庫(kù)可以提供更加結(jié)構(gòu)化的遠(yuǎn)程存儲(chǔ)服務(wù)。應(yīng)用也可以遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng),從而能夠訪問(wèn)其他種類的結(jié)構(gòu)化存儲(chǔ)。
集成(Integration):把機(jī)構(gòu)內(nèi)部的應(yīng)用連接起來(lái),通常要依賴于某種集成產(chǎn)品提供的遠(yuǎn)程服務(wù)。比如,消息隊(duì)列(message queue)是一個(gè)簡(jiǎn)單的例子,IBM的WebSphere Process Server及微軟的BizTalk Server等產(chǎn)品可用于更加復(fù)雜的場(chǎng)景。
身份管理(Identity):對(duì)許多分布式應(yīng)用而言,提供身份信息是一個(gè)最基本的需求。常見(jiàn)的解決此問(wèn)題的戶內(nèi)技術(shù)包括微軟的Active Directory(活動(dòng)目錄)及其它LDAP(輕量級(jí)目錄訪問(wèn)協(xié)議)服務(wù)器。
至于戶內(nèi)應(yīng)用服務(wù)(on-premises application services),不同機(jī)構(gòu)間差別很大。原因很簡(jiǎn)單:不同機(jī)構(gòu)使用的是不同的應(yīng)用,因而它們暴露的服務(wù)也五花八門。對(duì)于這些戶內(nèi)平臺(tái)里的應(yīng)用,一種思考方式是將它們分成兩大類:
套裝軟件(Packaged applications):這包括像SAP、Oracle Applications、Microsoft Dynamics在內(nèi)的許多商業(yè)軟件,以及許許多多現(xiàn)成的產(chǎn)品。雖然不是所有套裝軟件都向其它應(yīng)用暴露服務(wù),但越來(lái)越多的套裝軟件是這么做的。
定制應(yīng)用(Custom applications):許多機(jī)構(gòu)對(duì)定制軟件進(jìn)行了大筆投資。隨著這些應(yīng)用逐漸將其功能以服務(wù)的形式暴露出來(lái),它們也將成為戶內(nèi)應(yīng)用平臺(tái)的一部分。
照此描述,戶內(nèi)應(yīng)用平臺(tái)看起來(lái)好像挺復(fù)雜的。但實(shí)際上,它也是隨著時(shí)間的發(fā)展而不斷演化的。在計(jì)算技術(shù)的早期,應(yīng)用平臺(tái)只包含一個(gè)戶內(nèi)基礎(chǔ)(比如IBM主機(jī)上的MVS和IMS)。到了八、九十年代,隨著分布式計(jì)算的普及,戶內(nèi)基礎(chǔ)設(shè)施服務(wù)也加入了進(jìn)來(lái)(遠(yuǎn)程存儲(chǔ)、集成和身份管理成為十分常見(jiàn)的服務(wù))。時(shí)至今日,隨著面向服務(wù)的應(yīng)用的出現(xiàn),戶內(nèi)應(yīng)用服務(wù)也成為應(yīng)用平臺(tái)的一部分了。下一步發(fā)展是毫無(wú)疑問(wèn)的,即在“云”里提供這三個(gè)部分。[2]
從戶內(nèi)平臺(tái)到云平臺(tái)
上面那個(gè)一般模型描述的是戶內(nèi)平臺(tái),但它同時(shí)也可被用來(lái)考察云平臺(tái)。另外,因?yàn)閼魞?nèi)平臺(tái)與云平臺(tái)可以一同使用,所以理解它們?nèi)绾我黄鸸ぷ饕彩鞘种匾摹?/p>
正如戶內(nèi)應(yīng)用(on-premises application)是構(gòu)建于戶內(nèi)基礎(chǔ)(on-premises foundation)之上的,云應(yīng)用(cloud application)也可以構(gòu)建于云基礎(chǔ)(cloud foundation)之上。無(wú)論是戶內(nèi)環(huán)境、還是“云”里的基礎(chǔ)設(shè)施與應(yīng)用服務(wù),均可為這兩種應(yīng)用所使用。戶內(nèi)平臺(tái)為我們今天的應(yīng)用提供支持,類似地,云平臺(tái)為我們明天將構(gòu)建的應(yīng)用提供服務(wù)。
云平臺(tái)是由搭載了云平臺(tái)服務(wù)器端軟件的云服務(wù)器、搭載了云平臺(tái)客戶端軟件的云電腦以及網(wǎng)絡(luò)組件所構(gòu)成的,用于提高低配置或老舊計(jì)算機(jī)的綜合性能,使其達(dá)到現(xiàn)有流行速度的效果。
內(nèi)容來(lái)自百科網(wǎng)