PaaS、CaaS或FaaS,如何選擇?

哪種雲計算架構將為客戶提供更好的體驗並提供更高質量的產品?哪個更易於操作並在截止日期前完成?哪條路徑可以更好地處理支持、合規性和安全性問題?最後,能否以比較低的成本實施哪種方法?

PaaS、CaaS或FaaS,如何選擇?

工程師可以選擇容器即服務(CaaS)並對應用程序實施容器化,如果工程師不具備部分專業知識,那麼可以選擇平臺即服務(PaaS)選擇工具套件並遵循使用說明和限制。如果容器即服務(CaaS)和平臺即服務(PaaS)都不符合需求,則可以從頭開始構建所有內容,(採用基礎設施即服務),也可以將功能部署到無服務器環境(採用功能即服務)。功能即服務(FaaS)是一種無服務器計算,旨在響應單個任務。例如,功能即服務(FaaS)可用於驗證用戶身份、對文本體執行拼寫檢查或執行數學計算。顯然,有許多架構選項可以託管、配置、管理和部署代碼到雲平臺。考慮到不同的產品,事情變得更加複雜。

PaaS選項包括Azure應用服務、AWS彈性Beanstalk、Google應用引擎、Red Hat OpenShift和Salesforce的Heroku等等。如果正在探索容器即服務(CaaS)解決方案,那麼Azure、Google、AWS公司都有自己的託管Kubernetes服務,它們都有自己的縮寫(分別是EKS、GKE和AKS)。另外,還有來自VMware、IBM、Oracle、Rackspace等的其他選項。

當然,還有更多的無服務器選項。Azure Serverless具有無服務器功能,Kubernetes Pod和應用程序環境。AWS雲平臺當前具有更廣泛的無服務器選項,並將其無服務器分為用於計算、存儲、數據存儲、API代理等的功能類別。Google Cloud對無服務器進行了更廣泛的定義,其中包含BigQuery和AutoML等服務。

CaaS、PaaS、FaaS和無服務器的關鍵注意事項

  • 目標受眾——平臺即服務(PaaS)和功能即服務(FaaS)選項首先通過使解決方案易於配置並與持續集成(CI)/持續交付(CID)管道集成,以進行部署來針對開發人員。容器將操作環境和平臺配置參數化,因此這些工具通常針對運營人員和系統管理員。
  • 可配置性與敏捷性——通常,容器即服務(CaaS)是最可配置的選項,為操作員提供了更大的靈活性來選擇平臺和配置進行容器化。平臺即服務(PaaS)和功能即服務(FaaS)選項專注于敏捷性,並幫助開發人員更快地部署和測試代碼。
  • 有些平臺即服務(PaaS)解決方案受到束縛——設計時已預先選擇了平臺即服務(PaaS)和功能即服務(FaaS)解決方案,這意味著已經被其平臺選擇和配置選項所束縛。這些解決方案是根據設計師對開發人員的需求、優秀實踐和目標性能特徵的意見而設計的。對於喜歡更大靈活性或更多控制權的運營商而言,採用這樣的平臺即服務(PaaS)和功能即服務(FaaS)可能會受到影響。
  • 技能和學習曲線——容器即服務(CaaS)解決方案的學習曲線更陡峭,並且需要更多的技能。
  • 供應商鎖定——容器即服務(CaaS)解決方案通常在Kubernetes上開發,並且可以在不同的雲託管選項之間遷移。儘管平臺即服務(PaaS)和功能即服務(FaaS)解決方案能夠以Kubernetes為基礎進行設計,但它們通常不會向最終用戶公開Kubernetes層,而是提供更簡化的配置。這些配置是平臺即服務(PaaS)和功能即服務(FaaS)解決方案專有的,並且通常設計為僅在一個雲平臺上運行。一些IT主管發現此問題,並理應擔心被鎖定在某一個雲計算供應商。

指導進行研究和原型製作的問題

(1)企業是隻能運行少數應用程序的小型團隊嗎?在這些情況下,應該考慮使用更簡單的PaaS和無服務器選項,從而可以在不花費大量時間和專業知識的情況下預先配置大多數必需的平臺。

(2)企業是否有零星的有效載荷,但仍需要在需要時擴大?作用域可以是微服務或功能,但也可以擴展到完整的應用程序和數據庫。這些用例非常適合於無服務器計算,只需為使用的資源支付費用。

(3)企業是否具有合規義務或法規標準,強制報告執行容器、應用程序、數據庫、操作系統或基礎設施中的特定基礎選項或設置?這是排除無服務器選項的重要原因。

(4)企業是否在利用許多專用平臺或遺留應用程序?在這些情況下,可能很難找到兼容的平臺即服務(PaaS)選項。同時,開發容器可以簡化部署和依賴性管理。

(5)如果是大型組織或企業,在多個雲平臺中運營,並且在生產中具有各種應用程序和數據平臺,這些組織可能選擇對容器進行標準化,因為它在支持多個平臺和配置選項方面提供了比較大的靈活性。如果合規性不是一個因素,那麼仍然可以考慮無服務器。如果企業具有足夠的技能和能力來開發Kubernetes上廣泛的選項,則企業可能會避開平臺即服務(PaaS)選項。具有足夠規模和技術技能的組織(例如Shopify)可以選擇以Kubernetes和容器為基礎來設計自己的平臺即服務(PaaS)。

(6)企業是否正在開發微服務並在基於雲計算的微服務架構上進行標準化?建議容器或平臺即服務(PaaS)都是不錯的選擇。

(7)瞭解應用程序的類型和最終用戶的類型有助於企業預測將來的需求。

編譯自原作者:Isaac Sacolick


分享到:


相關文章: