雲端計算服務模型,第 2 部分: 平臺即服務(PaaS)

huidaoli發表於2013-07-20

 英文原文:Cloud computing service models, Part 2: Platform as a Service

  平臺即服務 (PaaS) 常常是最容易讓人迷惑的雲端計算類別,因為很難識別它,常常把它誤認為是基礎設施即服務 (IaaS) 或軟體即服務 (SaaS)。在這個分三部分的文章系列的第二部分中,瞭解 PaaS 的特點以及如何在企業中應用它。

  PaaS 的獨特特點是,它讓開發人員可以在駐留的基礎設施上構建並部署 web 應用程式。換句話說,PaaS 讓您能夠使用雲基礎設施似乎無窮的計算資源。

  當然,計算資源的數量看起來無窮只是幻想,限制取決於基礎設施的規模。但是,正如在本系列的第一篇中瞭解到的,Google 基礎設施大約包含超過一百萬臺基於 x86 的計算機。另外,因為用於 PaaS 的基礎設施是彈性的(第1部分中討論過這個概念),在需要時雲可以擴充套件以提供更多的計算資源,所以無窮的資源並不完全是想像。

  PaaS 對於開發人員的意義

  開發人員常常誤以為雲端計算只適用於網路管理員。但是,這個錯誤的觀念忽視了雲端計算可能給開發和質量保證團隊帶來的許多好處。

  在軟體開發過程中,一些東西常常會出問題。以我的經驗,設定伺服器環境以駐留開發團隊要構建的 Web 應用程式可能會帶來許多爭吵。即使在最大的企業中,通常一位網路管理員要負責為幾個開發團隊服務。在不使用 PaaS 的情況下,設定開發或測試環境通常需要完成以下任務:

  • 獲取並部署伺服器。
  • 安裝作業系統、執行時環境、原始碼控制儲存庫和必需的所有其他中介軟體。
  • 配置作業系統、執行時環境、儲存庫和其他中介軟體。
  • 轉移或複製現有的程式碼。
  • 測試並執行程式碼以確保一切正常。

  在很多情況下,管理員已經非常忙了,所以讓他們抽出時間部署新環境會很困難。對於客戶機和伺服器端的 web 應用程式開發人員來說,另一個主要問題是在本地複製執行時環境以便執行測試。

  現在,想像一下您是使用 PaaS 的開發團隊的成員。在這種情況下,您會有一個虛擬機器 (VM),其中包含完整的伺服器環境,可以把它放在 USB 快閃記憶體驅動器中帶在身邊。

  我希望您把注意力轉到第1部分中給出的概念交叉矩陣上,使用它作為參考分析 PaaS。表1再次給出這個矩陣。

  表 1. 三類雲端計算的概念交叉矩陣 

 範型轉變特徵關鍵詞彙優點缺點和風險不應該使用的場合
IaaS 基礎設施即資產 常常獨立於平臺;分擔基礎設施成本,因此會降低成本;服務水平協議 (SLA);按使用量付費;自我伸縮 網格計算,效用計算,計算例項,系統管理程式,暴雨 (cloudbursting),多租用者計算,資源池 避免在硬體和人力資源方面花費資產費用;降低 ROI 風險;降低進入門檻;簡化和自動化伸縮過程 企業效率和生產力很大程度上取決於廠商的能力;可能會增加長期成本;集中化需要新的/不同的安全措施 當資產預算大於運營預算時
PaaS 許可證購買 消費雲基礎設施;能夠滿足敏捷的專案管理方法 解決方案堆 簡化的版本部署 集中化需要新的/不同的安全措施
SaaS 軟體即資產(企業和消費者) SLA;由 “瘦客戶機” 應用程式提供 UI;雲元件;通過 API 進行通訊;無狀態;鬆散耦合;模組化;語義性互操作能力 瘦客戶機;客戶機-伺服器應用程式 避免在軟體和開發資源方面花費資產費用;降低 ROI 風險;簡化和迭代式的更新 資料的集中化需要新的/不同的安全措施

  瞭解 PaaS 的最好方法可能是把它分解為主要元件:平臺和服務。現在,考慮提供的服務,這稱為解決方案。也就是說,PaaS 的兩個主要成分是計算平臺和解決方案堆。

  為了說明這兩個 “成分”,我們進一步研究一下它們的定義。按照最簡單的形式,計算平臺是指一個可以一致地啟動軟體的地方(只要程式碼滿足平臺的標準)。平臺的常見示例包括 Windows™、Apple Mac OS X 和 Linux® 作業系統;用於移動計算的 Google Android、Windows Phone 和 Apple iOS;以及作為軟體框架的 Adobe® AIR™ 和 Microsoft® .NET Framework。要記住的重點是,計算平臺不是指軟體本身,而是指構建並執行軟體的平臺。圖1提供一張示意圖以幫助理解這種關係。

  圖 1. 雲端計算分類與 PaaS 元素之間關係的圖形化解釋 
雲端計算分類與 PaaS 元素之間關係的示意圖 

  既然理解了計算平臺的概念,現在就來看看什麼是解決方案堆。解決方案堆由應用程式組成,這些應用程式有助於開發過程和應用程式部署。這些應用程式是指作業系統、執行時環境、原始碼控制儲存庫和必需的所有其他中介軟體。

  選擇提供商

  解決方案堆也反映不同 PaaS 公司的差異,在決定採用 PaaS 之前,需要深入考察各個提供商提供的解決方案堆。

  在與某家 PaaS 提供商簽約之前,您應該問幾個基本問題:

  • 它支援哪些框架和語言?理想情況下,PaaS 應該支援基於此平臺選用的語言的任何框架。
  • 可以建立多少個應用程式?大多數 PaaS 提供商會根據您簽訂的計劃或服務包限制可以構建的應用程式數量。要確保提供商提供的計劃或服務包能夠滿足您的需要。
  • 允許哪些內容型別?支援 PaaS 的基礎設施通常涉及多租用者計算的概念,也就是說許多 “租用者” 分享單一伺服器上的 “空間”,這些空間由系統管理程式(hypervisor)管理的 VM 例項分隔。PaaS 提供商可能會對要駐留的應用程式和內容的型別加以限制。
  • 支援哪些資料庫型別?如果您的資料要隨應用程式轉移,這個問題就是非常重要的。必須確保提供商提供的資料庫與您想要用來匯入資料的格式相容。
  • 它是否支援 SSL (HTTPS)?這個問題對於確保安全性非常重要。如果您打算通過應用程式處理事務,但是發現不支援 SSL,您就遇到大麻煩了。

  PaaS 剖析

  既然已經瞭解了 PaaS 的基本知識,現在研究一下在比較 PaaS 提供商時應該考慮的特性:

  • 應用程式開發框架。健壯的應用程式開發框架應該基於廣泛使用的技術。理想情況下,您應該避免廠商鎖定。使用 Java™ 技術等開放原始碼框架通常比較好。
  • 容易使用。PaaS 應該附帶容易使用的 WYSIWYG 工具,應該有預先構建的部件、現成的 UI 元件、拖放工具和對某些標準 IDE 的支援。這應該會促進快速的迭代式應用程式開發。
  • 業務流程建模 (BPM) 工具。需要使用強大的 BPM 框架對業務流程進行建模,圍繞業務流程構建應用程式。
  • 可用性。應該能夠在任何時候從任何地方訪問並使用所選的平臺。
  • 可伸縮性。平臺應該足夠智慧化,能夠利用底層基礎設施的彈性計算能力處理應用程式將承受的負載。
  • 安全性。為了有效地防禦安全威脅,平臺應該解決跨站點指令碼、SQL 注入、拒絕服務和通訊流加密等問題,並讓安全措施完全融入應用程式開發中。另外,平臺必須支援單點登入功能,讓您能夠把它與現有的內部應用程式或其他雲應用程式整合起來。
  • 包容性。平臺應該能夠包容、嵌入和整合在相同平臺或其他平臺上構建的其他應用程式。
  • 可移植性。平臺應該不限制底層基礎設施型別,允許公司把應用程式從一個 IaaS 轉移到另一個。
  • 移植工具。為了輕鬆、快速地把資料從陳舊的內部應用程式遷移到基於新平臺的應用程式中,平臺的工具包中必須有批量匯入轉換工具。
  • API。為了執行各種任務,比如使用者身份驗證、儲存和獲取檔案(例如 Web 應用程式檔案和資產)甚至直接呼叫資料庫,平臺應該有文件齊全的 API。這讓企業能夠靈活地建立和定製軟體應用程式以與平臺互動,從而滿足公司的特殊需要。

  避免廠商鎖定

  廠商鎖定 (Vendor lock-in) 意味著消費者依賴於某一廠商,除非花費巨大的轉換成本,否則無法使用另一廠商的產品。當採用像雲端計算這樣的正在流行起來的新技術時,會增加出現廠商鎖定局面的機會。早期的使用者必須很清楚他們將處於什麼境地,然後才能夠簽署長期的 IaaS 和 PaaS 協議。

  避免廠商鎖定的方法之一是通過 API 和平臺技術的標準化。Simple Cloud 等組織已經開始與參與這個開放原始碼專案的各種規模的廠商協作,力求讓雲中的 PHP 保持一致。為了建立 Simple Cloud,Zend Technologies、Microsoft、IBM 和 Rackspace 正在共同努力,其目標是跨不同的平臺提供一個抽象層。

  Simple Cloud API 的目標是為檔案儲存、文件儲存和簡單佇列服務建立通用的介面。這讓開發人員能夠編寫出可跨主要雲平臺移植的應用程式。參與雲端計算標準化的廠商應該得到讚揚,應該鼓勵他們繼續努力。在選擇為您的公司提供 PaaS 服務的廠商時,我強烈建議優先考慮支援標準化的提供商。標準化會讓 IT 部門的工作更輕鬆,更重要的是,這會節省公司的資金。

  為了避免 PaaS 市場上出現廠商鎖定,需要支援相同底層 API 的服務提供商。答案很簡單:堅持採用專有技術的服務提供商必須同意支援 Simple Cloud 等標準化專案。

  在這個分三部分的雲端計算文章系列的第二部分中,您瞭解了 PaaS 的特點。還了解了在選擇 PaaS 提供商時應該問的問題以及應該關注的事項,比如廠商鎖定。本系列的最後一篇文章將分析 SaaS,介紹它的特點。還將學習在選擇 SaaS 提供商時為了保護企業需要注意的事項。請通過參考資料中的連結獲取關於 PaaS 的更多資訊。

  參考資料

  關於作者

  http://www.ibm.com/developerworks/i/p-dorlando.jpg

  Dan Orlando 是企業開發社群公認的領導者。作為長期顧問,Dan 經常向行業領導者以及 IBM developerWorks、Adobe Developer Connection 和 Amazon Web Services 等出版物提供 Adobe 技術平臺方面的專業經驗。Dan 還在DanOrlando.com 上定期發表部落格文章。

相關文章