為什么企業(yè)應(yīng)該選擇平臺即服務(wù)(PaaS)

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
























