為什么企業應該選擇平臺即服務(PaaS)
平臺即服務PaaS(以下簡稱 PaaS)指的是云計算服務,它為客戶提供了開發、運行和管理應用程序的平臺,而免去了建立和維護與開發和啟動應用程序相關的基礎設施的復雜工作。這是云原生應用和支持系統所依托的核心平臺。
PaaS 通常包括不同的應用基礎功能,包括應用平臺、集成平臺、業務分析平臺、事件流服務和移動后端服務。此外,它還包括一套與監控、管理、部署相關的功能。
開發人員希望他們的開發環境不需要等待,而運營團隊則更關心性能和穩定性。這經常引起兩方間的沖突。PaaS 為這兩方創造了和平的環境。一個作為服務交付的應用平臺被稱作 PaaS,它被用于部署用戶代碼。Cloud Foundry、Cloudify 和 OpenShift 這些開源環境都可用作 PaaS。
PaaS 的采用模式
云計算必須滿足五個基本特征:按需服務、接入網絡、資源池化、彈性和可度量的服務。為此,云計算提供了三種服務模式:軟件即服務Software as a Service(SaaS)、平臺即服務Platform as a Service(PaaS)、基礎設施即服務Infrastructure as a Service(IaaS)。
業務選用 PaaS 的關鍵驅動力:
- 減少提供業務的資本支出和運營費用
- 通過減少應用程序的交付時間和提高開發和交付質量,最大限度地降低 IT 成本
- 增加中間件之間的靈活性和集成度
簡單 PaaS:踏入 PaaS 領域的入口。它可以提供應用程序服務,并將它們暴露在自助服務的目錄中;自動部署和計量服務使用的資源。
管理 PaaS:管理已配置應用程序的服務級別協議SLA和服務質量QoS,例如彈性、應用程序性能、安全性等。
編程 PaaS:允許應用程序與外部應用程序或公共云集成,并實現自動擴展和云爆發場景。
面向流程 PaaS:允許通過創建持續交付流程來實現開發運維DevOps流程,該流程可以自動構建、測試應用程序并將其交付到云環境中。
除了這些采用模式之外,還有其他的 PaaS 變體如下,這些變化可能與上文的模式有一定重合:
集成平臺即服務(iPaaS):一套能夠開發、執行和管理集成流的云服務。集成流可以是個人內部或跨多個組織連接的,可以包含任何企業內部或基于云的流程、服務、應用和數據。這些組合變化可能也符合上述的模式之一,例如 MuleSoft CloudHub 和 BizTalk。
移動平臺即服務(mPaaS):為開發移動應用提供的集成開發環境(IDE),并且支持多種移動平臺。
數據庫平臺即服務(dbPaas):一種按需的、安全且可擴展的自助式數據庫平臺,可自動配置和管理數據庫。dbPaaS 使擴展數據庫變得更加容易,并使它們更加可靠。
物聯網平臺即服務(IoTPaaS):提供了實現異構物聯網拓撲所需的通信、安全、分析和管理的通用基礎架構。它為構建物聯網解決方案提供了更簡單、更敏捷的模型。
業務流程管理平臺即服務(bpmPaaS):一個完整的預集成業務流程管理平臺,托管在云端并作為服務交付。它被用于開發和執行整個企業的業務流程和以工作流程為中心的應用程序。例如 Pega cloud 和 OpenText Cordys cloud。
PaaS 的一些基本特征:
- 在同一集成開發環境中開發、測試、部署、托管和維護應用程序的服務
- 多租戶架構,即多個并發用戶使用同樣的開發程序
- 部署軟件的內置可擴展性,包括負載平衡和故障轉移
- 與異構平臺和系統的集成
- 支持開發團隊的協作
- 包含處理帳單和管理訂閱的工具
主要的開源 PaaS
在選擇 PaaS 之前,企業主要考慮關注以下幾點:
- 部署靈活性
- 操作簡便性
- 應用堆棧的選擇
- 語言、數據庫和框架支持
- 規模的可擴展性
- 服務質量(QoS)
- 開發和運營的工具
- 它有多適合你的業務
現在讓我們快速瀏覽下流行的開源 PaaS。
Cloud Foundry:提供了多種云的選擇、開發者框架和應用服務。Cloud Foundry 使構建、測試、部署和擴展應用程序變得更快、更容易。
它有不同的發行版本,其中比較流行的是 Pivotal 和 IBM。它包含應用運行時runtime和容器運行時。在 Pivotal 上包含有應用服務和容器服務。
OpenShift:紅帽的云計算 PaaS 產品。這是一個云端的應用平臺,應用開發者和團隊可以在這里構建、測試、部署和運行他們的應用程序。
Cloudify:在開放的原則下開發和設計,用以推動 IT 轉型革命。它使組織能夠在其上設計、建立和提供各種商業應用和網絡服務。Cloudify 的最新版本為 4.3,它包含了先進的安全、控制和真自服務true self-service等增強功能。Cloudify 4.3 還為 Kubernetes 容器編排引入了全新的概念。
< 如顯示不全,請左右滑動 >
功能 | Cloud Foundry | Cloudify | OpenShift |
核心功能 | Cloud controller | Manager | Broker |
提供第三方數據庫服務 | Service broker | Agent | Cartridge |
傳入流量的路由 | Router | Manager | REST API |
查詢應用程序的狀態 | Cloud controller | CLI client | Broker |
消息傳遞 | Message bus | Manager | Broker |
應用實例管理 | Droplet execution agent | Agent | Node |
應用程序狀態管理 | Health manager | Manager | Broker |
Broker | Warden | Agent | Gear |
用戶請求的負載平衡 | Droplet execution agent | Manager | Broker |
框架提供者 | Blob store | Agent | Cartridge |
技術 | | | |
語言 | Java, Ruby, Scala, Node.js, Groovy, Grails, PHP, Go, Python | Java, PHP, Ruby | Java, Ruby, Node.js, PHP, Python, Perl, JavaScript |
數據庫 | MongoDB,MySQL | | |
MongoDB、MySQL、PostgreSQL | MySQL、MongoDB | MongoDB、MySQL、PostgreSQL | |
框架 | Spring, Rails, Grails, Play Sinatra | JavaScript, Node.js | Rails, Flask, Django, Drupal, Vertx |
水平擴展 | 是 | 是 | 是 |
垂直擴展 | 是 | 否 | 是 |
彈性伸縮 | 是 | 是 | 是 |
表 1 列出了 Cloud Foundry、Cloudify 和 OpenShift 的基本功能及其對應的架構組件。以上完全基于個人觀點,所支持的功能的真實需求應與云供應商進行驗證。
從行業統計數據中,我們可以清楚地看出 PaaS 的使用率正在迅速上升。PaaS 使企業應用程序可以是云無關cloud-agnostic的,它們可以在任何云平臺上運行——無論是公共的還是私有的。這意味著一個在亞馬遜的 AWS 上開發的應用可以很容易地移植到微軟 Azure、VMWare vSphere、Red Hat RHEV 等等其他平臺。
當多個開發人員共同參與一個開發項目,或外部用戶需要與開發過程協作時,PaaS 是很有用的。因此,PaaS 尤其適合于敏捷開發,因為它降低了圍繞軟件快速開發和迭代的難度。
鳴謝
作者感謝 Kiran M.R. 和 Wipro 有限公司的數字架構實踐 Raju Alluri 為本文提供的支持。