大型WEB網(wǎng)站架構(gòu)深入分析_云計算 paas技術(shù)
1. 云計算-Paas 技術(shù)概述1.1 定義 Paas 是面向互聯(lián)網(wǎng)開發(fā)者,把端到端的分布式軟件開發(fā)、測試、部署運行環(huán)境以及應(yīng)用程序托管當(dāng)作服務(wù),通過互聯(lián)網(wǎng)提供給用戶,所謂PaaS 實際上是指將軟件
1. 云計算-Paas 技術(shù)概述
1.1 定義 Paas 是面向互聯(lián)網(wǎng)開發(fā)者,把端到端的分布式軟件開發(fā)、測試、部署運行環(huán)境以及應(yīng)用程序托管當(dāng)作服務(wù),通過互聯(lián)網(wǎng)提供給用戶,所謂PaaS 實際上是指將軟件研發(fā)的平臺(計世資訊定義為業(yè)務(wù)基礎(chǔ)平臺)作為一種服務(wù),以SaaS 的模式提交給用戶。因此,PaaS 也是SaaS 模式的一種應(yīng)用。但是,PaaS 的出現(xiàn)可以加快SaaS 的發(fā)展,尤其是加快SaaS 應(yīng)用的開發(fā)速度。在2007年國內(nèi)外SaaS 廠商先后推出自己的PAAS 平臺。
PaaS 之所以能夠推進SaaS 的發(fā)展,主要在于它能夠提供企業(yè)進行定制化研發(fā)的中間件平臺,同時涵蓋數(shù)據(jù)庫和應(yīng)用服務(wù)器等。PaaS 可以提高在Web 平臺上利用的資源數(shù)量。例如,可通過遠程Web 服務(wù)使用數(shù)據(jù)即服務(wù)(Data-as-a-Service :數(shù)據(jù)即服務(wù)),還可以使用可視化的API ,甚至像800app 的PaaS 平臺還允許你混合并匹配適合你應(yīng)用的其他平臺。用戶或者廠商基于PaaS 平臺可以快速開發(fā)自己所需要的應(yīng)用和產(chǎn)品。同時,PaaS 平臺開發(fā)的應(yīng)用能更好地搭建基于SOA 架構(gòu)的企業(yè)應(yīng)用。
1.2 特點
PaaS 能將現(xiàn)有各種業(yè)務(wù)能力進行整合,具體可以歸類為應(yīng)用服務(wù)器、業(yè)務(wù)能力接入、業(yè)務(wù)引擎、業(yè)務(wù)開放平臺,向下根據(jù)業(yè)務(wù)能力需要測算基礎(chǔ)服務(wù)能力,通過IaaS 提供的API 調(diào)用硬件資源,向上提供業(yè)務(wù)調(diào)度中心服務(wù),實時監(jiān)控平臺的各種資源,并將這些資源通過API 開放給SaaS 用戶。PaaS 主要具備以下三個特點
平臺即服務(wù):PaaS 所提供的服務(wù)與其他的服務(wù)最根本的區(qū)別是PaaS 提供的是一個基礎(chǔ)平臺,而不是某種應(yīng)用。在傳統(tǒng)的觀念中,平臺是向外提供服務(wù)的基礎(chǔ)。一般來說,平臺作為應(yīng)用系統(tǒng)部署的基礎(chǔ),是由應(yīng)用服務(wù)提供商搭建和維護的,而PaaS 顛覆了這種概念,由專門的平臺服務(wù)提供商搭建和運營該基礎(chǔ)平臺,并將該平臺以服務(wù)的方式提供給應(yīng)用系統(tǒng)運營商;
平臺及服務(wù):PaaS運營商所需提供的服務(wù),不僅僅是單純的基礎(chǔ)平臺,而且包括針對該平臺的技術(shù)支持服務(wù),甚至針對該平臺而進行的應(yīng)用系統(tǒng)開發(fā)、優(yōu)化等服務(wù)。PaaS 的運營商最了解他們所運營的基礎(chǔ)平臺,所以由PaaS 運營商所提出的對應(yīng)用系統(tǒng)優(yōu)化和改進的建議也非常重要。而在新應(yīng)用系統(tǒng)的開發(fā)過程中,PaaS 運營商的技術(shù)咨詢和支持團隊的介入,也是保證應(yīng)用系統(tǒng)在以后的運營中得以長期、穩(wěn)定運行的重要因素;
平臺級服務(wù):PaaS運營商對外提供的服務(wù)不同于其他的服務(wù),這種服務(wù)的背后是強大而穩(wěn)定的基礎(chǔ)運營平臺,以及專業(yè)的技術(shù)支持隊伍。這種“平臺級”服務(wù)能夠保證支撐SaaS 或其他軟件服務(wù)提供商各種應(yīng)用系統(tǒng)長時間、穩(wěn)定的運行。PaaS 的實質(zhì)是將互聯(lián)網(wǎng)的資源服務(wù)化為可編程接口,為第三方開發(fā)者提供有商業(yè)價值的資源和服務(wù)平臺。有了PaaS 平臺的支撐,云計算的開發(fā)者就獲得了大量的可編程元素,這些可編程元素有具體的業(yè)務(wù)邏輯,這
,就為開發(fā)帶來了極大的方便,不但提高了開發(fā)效率,還節(jié)約了開發(fā)成本。有了PaaS 平臺的支持,WEB 應(yīng)用的開發(fā)變得更加敏捷,能夠快速響應(yīng)用戶需求的開發(fā)能力,也為最終用戶
帶來了實實在在的利益。
1.3 服務(wù)形態(tài)
通過互聯(lián)網(wǎng)提供服務(wù),按需提供,按量計費
2. PaaS 核心技術(shù) 分布式技術(shù):把多臺機器虛擬成一臺性能極強的超級計算機
分布式存儲、分布式計算、分布式數(shù)據(jù)庫、同步機制、負(fù)載分擔(dān)、任務(wù)調(diào)度
分布式軟件開發(fā)、測試、運行工具
編程環(huán)境SDK 、編程接口、代碼庫、測試工具、運行工具
運營管理系統(tǒng)
用戶管理、計費認(rèn)證、資源監(jiān)控、應(yīng)用管理
,IaaS 提供的只是“硬件”,保證同一基礎(chǔ)設(shè)施上的大量用戶擁有自已的“硬件”資源,實現(xiàn)硬件的可擴展性和可隔離性。PaaS 則在同一基礎(chǔ)設(shè)施上同時為很多用戶提供其專屬的應(yīng)用運行平臺,實現(xiàn)多應(yīng)用的可擴展性和隔離運行。隔離運行表示用戶的應(yīng)用互不影響,具有很好的性能和安全性,主要采用多租戶技術(shù)實現(xiàn)??蓴U展性要求PaaS 能為用戶提供根據(jù)應(yīng)用負(fù)載自動擴展平臺的能力,因此以Google 為代表的大多數(shù)PaaS 服務(wù)提供商都將分布式系統(tǒng)作為其開放平臺的基礎(chǔ)架構(gòu),并將分布式基礎(chǔ)平臺能力直接集成到其應(yīng)用運行環(huán)境中,使利用其PaaS 服務(wù)運行的應(yīng)用在數(shù)據(jù)存儲和處理方面具有強大的可擴展能力。
分布式技術(shù)體系主要包括分布式文件系統(tǒng)、分布式數(shù)據(jù)庫、并行計算模型、分布式同步等。
2.1 分布式文件系統(tǒng)
目的是在分布式系統(tǒng)中以文件方式實現(xiàn)數(shù)據(jù)的共享。分布式文件系統(tǒng)實現(xiàn)了對底層存儲資源的管理,屏蔽了存儲過程的細節(jié),特別是實現(xiàn)了位置透明性和性能透明性,使用戶無需關(guān)心文件在云中的存儲位置。與傳統(tǒng)的分布式文件系統(tǒng)不同,云計算分布式文件系統(tǒng)具有更為海量的存儲能力、更強的系統(tǒng)可擴展性和可靠性,也更為經(jīng)濟
,2.2 分布式數(shù)據(jù)庫
分布式數(shù)據(jù)庫是足結(jié)構(gòu)化的數(shù)據(jù)集,邏輯上屬于同意系統(tǒng),而物理上分散在計算機網(wǎng)絡(luò)連接的多個場地上,并統(tǒng)一由一個分布式數(shù)據(jù)庫管理系統(tǒng)管理
以Google BigTable和Hadoop Hbase為代表的分布式數(shù)據(jù)庫是符合云計算基礎(chǔ)架構(gòu)要求的典型分布數(shù)據(jù)庫,可以存儲和管理大規(guī)模結(jié)構(gòu)化數(shù)據(jù),具有良好的可擴展性,可在部署在上千臺廉價服務(wù)器上,存儲petabyte 級別的數(shù)據(jù),這類型的數(shù)據(jù)庫通常不提供完整的關(guān)系數(shù)據(jù)模型,只能提供簡單的數(shù)據(jù)模型,使得客戶端可以動態(tài)控制數(shù)據(jù)的布局和格式
分布式數(shù)據(jù)庫通常建立在分布式文件系統(tǒng)上,Bigtable 使用Google 分布式文件系統(tǒng)來存儲日志和數(shù)據(jù)文件,Bigtable 采用SSTable 格式存儲數(shù)據(jù),后者提供永久存儲的、有序的、不可改寫的關(guān)鍵字到值的映射,以及相應(yīng)的查詢操作。此外,BigTable 還使用分布式鎖服務(wù)Chubby 來解決一系列問題,如:保證任何時間最多只有一個活躍的主備份;存儲BigTable 數(shù)據(jù)的啟動位置;發(fā)現(xiàn)Table 服務(wù)器;存儲BigTable 模式信息、存儲訪問權(quán)限等
2.3 分布式計算模型
分布式計算是讓幾個物理上獨立的組件作為一個單獨的系統(tǒng)協(xié)同工作,這些足跡可能指多個CPU ,或者網(wǎng)絡(luò)中的多臺計算機,對于分布式編程而言,把一個大的應(yīng)用程序分解成若干可以并行處理的子程序有兩種可能處理的方法,一種是分割計算,即把應(yīng)用程序的功能分割成若干個模塊,由網(wǎng)絡(luò)上多臺機器協(xié)同完成;另一個是分割數(shù)據(jù),即把數(shù)據(jù)集分割成小塊,由網(wǎng)絡(luò)上的多臺計算機分別計算,對于海量數(shù)據(jù)分析等計算密集型問題,通常才去分割數(shù)據(jù)的分布式計算方法,對于大規(guī)模分布式系統(tǒng)則可能同時采取這兩種方法
基于C/S架構(gòu)的分布式系統(tǒng)可借助中間件技術(shù)解決各模塊間的協(xié)同工作問題,中間件是分布式系統(tǒng)中介與操作系統(tǒng)與分布式應(yīng)用程序之間的基礎(chǔ)軟件,他屏蔽了底層環(huán)境的復(fù)雜性,有助于開發(fā)和集成復(fù)雜的應(yīng)用軟件,通過中間件,分布式系統(tǒng)可以把數(shù)據(jù)轉(zhuǎn)移到計算所在的地方,把網(wǎng)絡(luò)系統(tǒng)的所有組件集成為一個連貫的可操作的異構(gòu)系統(tǒng)
,2.4 分布式協(xié)同管理
目的是確保系統(tǒng)的一致性。因為云計算系統(tǒng)中的所有資源都分布在網(wǎng)絡(luò)之上,一旦網(wǎng)絡(luò)出現(xiàn)異常,會造成數(shù)據(jù)操作的不一致,進而嚴(yán)重影響系統(tǒng)的正常運行。針對支撐PaaS 的分布式系統(tǒng)的松耦合特性,分布式協(xié)同管理技術(shù)也具有特別的設(shè)計
3. PaaS 的戰(zhàn)略核心地位 在云產(chǎn)業(yè)鏈中,如同傳統(tǒng)中間件所起的作用一樣,PaaS 也將會是產(chǎn)業(yè)鏈的制高點。無論是在大型企業(yè)私有云中,還是在中小企業(yè)和ISV 所關(guān)心的應(yīng)用云中,PaaS 都將起到核心的作用。
基于 PaaS
模式構(gòu)建應(yīng)用運行平臺,需要滿足以下典型需求:
?
?
? 提供定義應(yīng)用需求的接口:用戶可以方便地定義滿足應(yīng)用功能需求所需的組件,同時可以定義應(yīng)用的非功能性需求,例如可用性,服務(wù)水平等; 提供基于應(yīng)用需求快速構(gòu)建應(yīng)用運行環(huán)境的能力:能將應(yīng)用需求映射為物理的 IT 資源和基礎(chǔ)設(shè)施的具體配置和拓?fù)浣Y(jié)構(gòu),并進行快速部署; 提供運行時實時動態(tài)滿足應(yīng)用需求的能力:將應(yīng)用需求映射為運行策略,在運行時,根據(jù)系統(tǒng)運行的實際狀況,例如負(fù)載狀況,動態(tài)地對物理的 IT 資源和基礎(chǔ)設(shè)施進行調(diào)整,例如調(diào)整負(fù)載分配或增減計算資源,使 ARP 具備足夠的彈性和靈活性,以實時動態(tài)地滿足應(yīng)用需求。 針對上述需求,基于 PaaS 模式構(gòu)建 ARP 的解決方案至少需要包括如下組件:
?
?
?
?
? 需求與運行策略庫: 向用戶提供定義應(yīng)用需求的界面,保存應(yīng)用需求,并將應(yīng)用需求轉(zhuǎn)化為部署及運行策略,提供給平臺交付組件和運行時控制組件; 軟件映像庫: 提供應(yīng)用運行平臺所需的基礎(chǔ)軟件; ARP 硬件資源池: 基于 Hypervisor ,以虛擬化的方式,提供應(yīng)用運行平臺所需的硬件資源; 平臺交付組件: 根據(jù)部署或調(diào)整策略,通過部署或調(diào)整軟件及 APR 硬件資源池來創(chuàng)建或調(diào)整應(yīng)用運行平臺; 運行時控制組件: 根據(jù)運行策略和實際運行狀況動態(tài)調(diào)整 ARP 資源池,并向平臺交付組件動態(tài)提供調(diào)整策略。
如下圖 2 所示:
圖 2. 基于 PaaS 模式的應(yīng)用運行平臺
,3.1 以PaaS 為核心構(gòu)建企業(yè)私有云
在種情況下,PaaS 實質(zhì)上就是一個預(yù)先裝好的Web Container和一組公共服務(wù),如數(shù)據(jù)存儲服務(wù)(不一定是關(guān)系型數(shù)據(jù)庫) 、消息隊列、集中式session 及cache 等等。對于個人用戶或者簡單應(yīng)用來說,公有云PaaS 平臺使得開發(fā)人員僅關(guān)注應(yīng)用邏輯開發(fā)本身,不用把精力花費在基礎(chǔ)實施和應(yīng)用的擴展和維護上。
所謂企業(yè)級PaaS 平臺,主要包含兩類,一是大型企業(yè)內(nèi)部的私有云PaaS 平臺,另一類是面向ISV 廠商的PaaS 平臺。然而對于企業(yè)級PaaS 平臺,PaaS 不僅僅是云環(huán)境下的應(yīng)用部署平臺。 拋開安全問題不講,私有云PaaS 平臺和公有云PaaS 有如下核心區(qū)別:
(1)復(fù)雜的多租戶模型:對于公有云PaaS 平臺,其租戶模型是 (用戶-> 應(yīng)用 -> 應(yīng)用實例),一個用戶可以部署多個應(yīng)用,每個應(yīng)用可以有多個運行時實例,應(yīng)用實例共享資源池。對于一個大型企業(yè),一個大部門可能是一個租戶,大部門下面的子部門也是一個租戶;或者一個SaaS 應(yīng)用系統(tǒng)的一個實例就是一個租戶。對于租戶的資源使用,大部門租戶是共享資源池里面的資源,也可能某些關(guān)鍵租戶需要獨占一些資源以保證安全。
(2)已有應(yīng)用的兼容:企業(yè)的歷史應(yīng)用都是基于關(guān)系型數(shù)據(jù)庫的,某些PaaS 平臺不支持關(guān)系型數(shù)據(jù)存儲,即使是簡單的已有應(yīng)用都無法遷移到PaaS 平臺上。
(3)復(fù)合應(yīng)用的構(gòu)建: 企業(yè)On-Premise 應(yīng)用在很長一段時間內(nèi)都是要存在的,私有云PaaS 平臺要成為On-Premise 和公有云之間的橋梁。私有云PaaS 平臺除了是應(yīng)用部署平臺外,還需要提供集成和方便構(gòu)建復(fù)合應(yīng)用的能力,就是Gartner 所提的iPaaS 能力。 企業(yè)級PaaS 平臺不僅僅是應(yīng)用部署平臺,而且是復(fù)雜多租戶環(huán)境和復(fù)雜應(yīng)用環(huán)境下的共享基礎(chǔ)設(shè)施平臺,是On-Premise 部署通往公有云部署的必經(jīng)之路。
大型企業(yè)都有復(fù)雜的IT 系統(tǒng),甚至自己籌建了大型數(shù)據(jù)中心,其運行維護工作量非常大,同時資源的利用率又很低——據(jù)統(tǒng)計大部分企業(yè)數(shù)據(jù)中心的計算資源利用率都不超過30。在這種情況下,企業(yè)迫切需要找到一種方法,整合全部IT 資源,進行池化,并且以動態(tài)可調(diào)度的方式供應(yīng)給業(yè)務(wù)部門。大型企業(yè)建設(shè)內(nèi)部私有云有兩種模式,一種是以IaaS 為核心,另外一種是以PaaS 為核心,如下圖所示:
首先,企業(yè)會采用成熟的虛擬化技術(shù)首先實現(xiàn)基礎(chǔ)設(shè)施的池化和自動化調(diào)度。當(dāng)前,有大量電信運營商、制造企業(yè)和產(chǎn)業(yè)園區(qū)都在進行相關(guān)的試點。但是,私有云建設(shè)萬不可局限
,于IaaS ,因為IaaS 只關(guān)注解決基礎(chǔ)資源云化問題,解決的主要是IT 問題。在IaaS 的技術(shù)基礎(chǔ)上進一步架構(gòu)企業(yè)PaaS 平臺將能帶來更多的業(yè)務(wù)價值。PaaS 的核心價值是讓應(yīng)用及業(yè)務(wù)更敏捷、IT 服務(wù)水平更高、并實現(xiàn)更高的資源利用率。
以PaaS 為核心的私有云建設(shè)模式是在IaaS 的資源池上進一步構(gòu)建PaaS 能力,提供內(nèi)部云平臺、外部SaaS 運營平臺和統(tǒng)一的開發(fā)、測試環(huán)境:
內(nèi)部云平臺:建立業(yè)務(wù)支撐平臺
外部SaaS 運營平臺:向企業(yè)外部供應(yīng)商或者客戶提供SaaS 應(yīng)用
開發(fā)、測試環(huán)境:為開發(fā)人員提供統(tǒng)一的開發(fā)和測試環(huán)境平臺
以某航空運輸領(lǐng)域的集團為例。它正從單一的航空運輸企業(yè),轉(zhuǎn)型為以航空旅游、現(xiàn)代物流、現(xiàn)代金融服務(wù)三大鏈條為支柱,涵蓋“吃、住、行、游、購、娛”六大產(chǎn)業(yè)要素的現(xiàn)代服務(wù)業(yè)綜合運營商,其產(chǎn)業(yè)覆蓋航空運輸、旅游服務(wù)、現(xiàn)代物流、金融服務(wù)、商貿(mào)零售、房地產(chǎn)開發(fā)與管理、機場管理。對于這么一個大型企業(yè)集團,當(dāng)前信息化的挑戰(zhàn)不僅在于如何高效整合、集中管控整個集團的IT 資源,更重要的在于如何快速地、更好的滿足客戶的需求,如何更高效地整合外部供應(yīng)商,使IT 真正成為其創(chuàng)新的驅(qū)動力。云計算為該集團帶來契機,以PaaS 為核心構(gòu)建其對內(nèi)、對外云平臺必將成為其最佳選擇。
3.2 公有云Paas 平臺
對于公有云PaaS 平臺,PaaS 就是云環(huán)境下的應(yīng)用部署平臺。
(1)基于商業(yè)軟件的部署方式:Application - Framework/Libs - Websphere/Weblogic RMBMS
(2)基于開源軟件的部署方式:Application - Frameworks/Libs - Tomcat/JBoss RDBMS
(3)云環(huán)境下的部署方式:Application - Frameworks/Libs - PaaS(Goole App Engine, Amazon) 【注:1、WebSphere :是 IBM 的軟件平臺。它包含了編寫、運行和監(jiān)視全天候的工業(yè)強度的隨需應(yīng)變 Web 應(yīng)用程序和跨平臺、跨產(chǎn)品解決方案所需要的整個中間件基礎(chǔ)設(shè)施,如服務(wù)器、服務(wù)和工具。WebSphere 提供了可靠、靈活和健壯的軟件。
,2、Weblogic :是一個基于Javaee 架構(gòu)的中間件,BEA WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web 應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫應(yīng)用的Java 應(yīng)用服務(wù)器。將Java 的動態(tài)功能和Java Enterprise標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開發(fā)、集成、部署和管理之中。
3、Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器
4、JBoss 是一個管理EJB 的容器和服務(wù)器,支持EJB 1.1、EJB 2.0和EJB3.0的規(guī)范。但JBoss 核心服務(wù)不包括支持servlet/JSP的WEB 容器,一般與Tomcat 或Jetty 綁定使用。
5、RDBMS :指的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)】
3.3 私有云PaaS 平臺和公有云PaaS 核心區(qū)別 (1)復(fù)雜的多租戶模型:對于公有云PaaS 平臺,其租戶模型是 (用戶-> 應(yīng)用 -> 應(yīng)用實例),一個用戶可以部署多個應(yīng)用,每個應(yīng)用可以有多個運行時實例,應(yīng)用實例共享資源池。對于一個大型企業(yè),一個大部門可能是一個租戶,大部門下面的子部門也是一個租戶;或者一個SaaS 應(yīng)用系統(tǒng)的一個實例就是一個租戶。對于租戶的資源使用,大部門租戶是共享資源池里面的資源,也可能某些關(guān)鍵租戶需要獨占一些資源以保證安全。
(2)已有應(yīng)用的兼容:企業(yè)的歷史應(yīng)用都是基于關(guān)系型數(shù)據(jù)庫的,某些PaaS 平臺不支持關(guān)系型數(shù)據(jù)存儲,即使是簡單的已有應(yīng)用都無法遷移到PaaS 平臺上。
(3)復(fù)合應(yīng)用的構(gòu)建: 企業(yè)On-Premise 應(yīng)用在很長一段時間內(nèi)都是要存在的,私有云PaaS 平臺要成為On-Premise 和公有云之間的橋梁。私有云PaaS 平臺除了是應(yīng)用部署平臺外,還需要提供集成和方便構(gòu)建復(fù)合應(yīng)用的能力,就是Gartner 所提的iPaaS 能力。 企業(yè)級PaaS 平臺不僅僅是應(yīng)用部署平臺,而且是復(fù)雜多租戶環(huán)境和復(fù)雜應(yīng)用環(huán)境下的共享基礎(chǔ)設(shè)施平臺,是On-Premise 部署通往公有云部署的必經(jīng)之路。