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