2021-4-10 | 互聯網
隨著互聯網技術及其應用的快速發展,互聯網業務提供者越來越呈現小團隊、草根化的趨勢.這些小型的業務提供者往往具備新穎的技術和業務理念,但由于規模不足、資本薄弱,需要面對應用訪問網絡能力困難和應用提供成本高、風險大等挑戰.這些挑戰嚴重影響了“草根”開發者業務創新能力的發揮.近年來,高速發展的云計算技術[1]為解決上述困境提供了可能.在云計算的3種應用形式[2]中,PaaS是云計算技術與業務提供平臺相結合的產物,它不但可以為更高可用性、更具擴展性的應用提供基礎平臺,還可以提高硬件資源的利用率,降低業務運營成本,被認為是解放“草根”開發者業務創新能力行之有效的解決方案.
筆者首先從對工業界有影響的PaaS平臺的分析和比較入手,深入研究了PaaS平臺的體系結構,抽象出PaaS平臺的通用概念模型;然后針對互聯網應用的特殊需求,提出了面向互聯網應用的PaaS平臺體系結構;最后通過對具體項目中該體系結構的實現和測試,進一步說明了該體系結構的有效性和高效性.
1相關工作
目前,以Google、新浪為代表的眾多互聯網公司都推出了基于云計算技術的PaaS平臺[3],如GAE(googleappengine)和SAE(sinaappengine)[4].
GAE是Google管理的數據中心用于web應用程序的開發和托管平臺,是互聯網應用服務的一個引擎,支持Python和Java開發.SAE是由新浪公司開發運營的開放云計算平臺的核心組成部分,其目標是為應用開發者提供穩定、快捷、透明、可控的服務化平臺,支持Java和PHP5運行環境.有了GAE和SAE這樣的PaaS平臺,用戶不用再為建設一個小型網站而去租用主機并選擇托管商.用戶只需要利用PaaS平臺,就能創建、測試和部署應用與服務,與傳統的軟件開發相比,費用要低得多.
通過對常見PaaS平臺的分析可以看出,PaaS平臺應具備如下功能特性[5].首先,PaaS平臺為應用開發提供了一系列非功能屬性支持,具體包含以下3點:第一,平臺提供了應用程序的開發和運行環境,開發者不再需要租用和維護軟硬件設備,同時免去了繁瑣復雜的應用部署過程;第二,平臺提供了應用程序的運行維護能力,開發者通過平臺可以得知應用的運行狀態和訪問統計信息,全面掌握用戶對應用的使用情況;第三,平臺提供了應用的高可用性和高可擴展性,開發者無需關注底層硬件的規模和處理能力,平臺會根據應用負載自動調整服務規模[6].其次,PaaS平臺提供了大量的網絡能力,開發者可以便捷地在其應用中調用這些能力.
然而,現有的PaaS平臺也存在一些不足[7].第一,應用托管環境單一化,僅提供特定編程語言或腳本語言的運行環境.由于應用往往對相應的運行環境配置有較高的依賴,這種單一化的運行環境將導致應用兼容性低,需要引入應用遷移成本.第二,能力組件封閉化.雖然PaaS平臺向應用提供一系列能力已經成為PaaS平臺的標準做法,但是僅依靠平臺提供商提供能力的做法顯然大大限制了平臺能力的豐富性,無法滿足應用開發者對能力多樣化的需求.
因此,提出的互聯網應用PaaS平臺將重點關注和解決如下問題:第一,為各種應用提供運行環境,不僅支持常用編程語言和腳本語言,還可以提供兼容性更強的、更為通用的運行環境,即將虛擬機也作為一種運行環境提供給應用;第二,提供開放式的能力組件機制,平臺本身不但可以向應用提供能力,而且允許第三方基于此平臺提供能力.
2PaaS平臺概念模型
PaaS平臺概念模型如圖1所示.PaaS平臺概念模型采用分層結構,由用戶平面(UP)、應用平面(AP)、資源平面(RP)、物理平面(PP)和管理平面(MP)組成.
CUP反映了PaaS平臺的目標使用者,即應用開發者(Dev/Developer).應用開發者可以開發多個應用,并將其部署到平臺中.
AP反映了應用開發者所開發的大量的不同類型的應用(APP/Application),每個應用可以包含多個應用實例(AI).這些應用具有不同的資源消耗和用戶訪問模型,包括應用邏輯、應用的計算和通信資源開銷以及用戶請求的分布情況.這些信息將作為MP對應用進行管理的依據.
RP反映了AI運行的邏輯環境,由一系列不同類型的容器(CT/container)組成.這些容器將PP所提供的以主機為單位的分散物理資源匯聚在一起,形成資源池.在該平面中,不同類型的AI運行于相應的容器中,使用容器所提供的計算、存儲和連接等資源.因容器中承載的應用類型不同,容器可以分為多種類型,如Javaweb服務器容器(JavaWS-contain-er)、虛擬機容器(VM-container)等.鑒于容器是一個相對獨立的邏輯運行環境,容器中既可以運行第三方應用,也可以運行平臺的自建應用.同時,第三方應用也可以作為平臺的能力成為其他第三方應用可調用的組件,從而使得PaaS平臺支持能力具有高的可擴充性.
PP反映了PaaS平臺底層的物理資源,由一系列物理實體(PE)組成,包括物理主機(HS/host)、存儲器(ST/storage)和交換機(SW/switch)等硬件設備,為平臺提供了底層的計算、存儲和通信能力.
MP負責完成對其他各平面的調度和控制.該平面包含2個組件:資源調度組件(RA)和任務調度組件(TS).RA定義了應用經過多層映射最終分布到物理主機上的部署關系,即應用與AI的對應關系(APP-AI)、AI與容器的對應關系(AI-CT)以及容器與主機的對應關系(CT-HS).TS定義了應用訪問請求(REQ/request)到達平臺后的轉發規則,即為此請求選擇合適的AI規則(REQ-AI).
3面向互聯網應用PaaS平臺
3.1體系結構
PaaS平臺概念模型提供了面向互聯網應用的PaaS平臺的設計思路.基于此PaaS平臺概念模型,面向互聯網應用的PaaS平臺體系結構如圖2所示.該體系結構主要包含3個組件,分別是應用集群管理(AppMaster)、智能應用路由器(AppRouter)和應用服務器集群(AppServer).