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