平臺(tái)層是運(yùn)行于基礎(chǔ)設(shè)施層之上的一個(gè)以軟件為核心,為應(yīng)用服務(wù)提供開發(fā)、運(yùn)行和管控環(huán)境即中間件功能的層次?;A(chǔ)設(shè)施層所要解決的是IT資源的虛擬化和自動(dòng)化管理問題,而平臺(tái)層需要解決的是如何基于基礎(chǔ)設(shè)施層的資源管理能力提供一個(gè)高可用的、可伸縮的且易于管理的云中間件平臺(tái)。從云架構(gòu)而言,平臺(tái)層位于基礎(chǔ)設(shè)施層與應(yīng)用層之間,它利用基礎(chǔ)設(shè)施層的能力,面向上層應(yīng)用提供通用的服務(wù)和能力。
平臺(tái)層面向云環(huán)境中的應(yīng)用提供應(yīng)用開發(fā)、測(cè)試和運(yùn)行過程中所需的基礎(chǔ)服務(wù),包括Web和應(yīng)用服務(wù)器、消息服務(wù)器以及管理支撐服務(wù)如應(yīng)用部署、應(yīng)用性能管理、使用計(jì)量和計(jì)費(fèi)等。平臺(tái)層所提供的服務(wù)是在云計(jì)算環(huán)境中開發(fā)、測(cè)試、運(yùn)行和管理應(yīng)用服務(wù)所需的基本功能。平臺(tái)層以平臺(tái)軟件和服務(wù)為核心,用戶通過相應(yīng)的編程模型和API來建立應(yīng)用和發(fā)布。由于平臺(tái)軟件和服務(wù)的多樣性,以及用戶對(duì)平臺(tái)的需求和使用方式上的不同,平臺(tái)層在理念、客戶定位和實(shí)現(xiàn)方式上也會(huì)存在差異。
關(guān)于所支持的編程模型,平臺(tái)層可以基于標(biāo)準(zhǔn)編程模型,也可以基于自定義編程標(biāo)準(zhǔn)?;跇?biāo)準(zhǔn)編程模型可以降低用戶的使用門檻,并且可以使原有的系統(tǒng)更容易地遷移到云平臺(tái)上,如在Google App Engine中,可以直接使用J2EE模型進(jìn)行Web編程。某些云平臺(tái)為了更好地強(qiáng)調(diào)某類云計(jì)算中的特殊問題而采用了自定義的編程模型,如force.com為了更好地支持多租戶技術(shù)而自己定義了Apex編程模型。必須強(qiáng)調(diào)的是,隨著云計(jì)算技術(shù)的發(fā)展,平臺(tái)層中會(huì)出現(xiàn)越來越多的其他有別于傳統(tǒng)中間件的服務(wù),如半結(jié)構(gòu)化的大規(guī)模存儲(chǔ)服務(wù),非SQL的數(shù)據(jù)庫服務(wù)等,這些都會(huì)進(jìn)一步提高云應(yīng)用的開發(fā)工具和手段。在傳統(tǒng)的應(yīng)用開發(fā)中,用戶需要花費(fèi)大量時(shí)間和工作來進(jìn)行軟件堆棧(即中間件)的選型、定制和部署,在云平臺(tái)上,這部分的工作將由云平臺(tái)根據(jù)應(yīng)用的需求和特點(diǎn)自動(dòng)完成。
我們可以看到,在Google App Engine和force.com這樣的云平臺(tái)上,用戶不再需要手動(dòng)地選擇自己所需要的Web容器和數(shù)據(jù)庫產(chǎn)品以及對(duì)管理功能的選擇和擴(kuò)展。用戶更多的是針對(duì)應(yīng)用的特點(diǎn),如運(yùn)行時(shí)Qo S需求,伸縮策略或者部署方式等應(yīng)用的參數(shù)進(jìn)行指定和配置,平臺(tái)層可以根據(jù)應(yīng)用的相關(guān)配置自動(dòng)提供支撐應(yīng)用的中間件資源以及在運(yùn)行時(shí)進(jìn)行自動(dòng)的負(fù)載平衡、伸縮控制和SLA優(yōu)化等。通常的企業(yè)客戶維護(hù)著大量現(xiàn)存的應(yīng)用。企業(yè)客戶在選擇云平臺(tái)運(yùn)行其應(yīng)用時(shí),需要考慮兩個(gè)方面的問題:一是平臺(tái)層技術(shù)如何能夠幫助企業(yè)已有的軟件平臺(tái)進(jìn)行轉(zhuǎn)型,并使企業(yè)在管理的有效性和成本方面從該轉(zhuǎn)型中受益;二是企業(yè)在選擇應(yīng)用軟件產(chǎn)品時(shí)有其特定的需求,而這些特定的需要對(duì)平臺(tái)層的能力提出了要求,云平臺(tái)應(yīng)該能夠滿足這樣的要求。云平臺(tái)技術(shù)的發(fā)展將會(huì)更加貼近客戶的多樣化需求。