如何建設私有云原生 Serverless 平臺

隨着雲計算的普及,越來越多的企業開始將業務應用遷移到雲上。然而,如何構建一套完整的雲原生 Serverless 平臺,依然是一個需要考慮的問題。

Serverless 的發展趨勢

雲計算行業從 IaaS(基礎設施即服務)到 PaaS(平臺即服務),再到 Serverless(無服務器)的發展,經歷了一個逐漸從底層到上層,從 IT 基礎設施提供商到應用開發者的轉移的過程。

IaaS 時代,雲計算提供商主要提供基礎設施服務,包括計算、存儲、網絡等,用戶需要自己搭建運維應用。這個階段主要面向 IT 運維人員和企業內部的應用開發團隊。

隨着 PaaS 的出現,雲計算提供商開始提供更高層次的服務,包括開發框架、數據庫、消息隊列等,用戶只需要關注應用開發,無需關心底層設施。這個階段主要面向應用開發者和創業公司,可以大大提高開發效率和降低成本。

而 Serverless 的出現,則更進一步解放了應用開發者的手腳,將服務器管理交給雲計算提供商,應用開發者只需關注業務邏輯的實現,無需關心服務器的管理和維護。Serverless 的出現使得應用開發更加靈活和高效,也降低了開發和運維成本,因此受到了越來越多的關注。

總體來看,從 IaaS 到 PaaS 再到 Serverless 的發展,是雲計算服務不斷向上層抽象和自動化的過程,提高了 IT 基礎設施和應用開發的效率,降低了成本,推動了數字化轉型的進程。隨着技術和市場的不斷變化,未來雲計算服務還將不斷地向更高層次的抽象和自動化發展。

自建 Serverless 的意義與困境

建設私有化的雲原生 Serverless 平臺具有重要的意義和必要性。首先,相比於公共雲平臺,私有化的雲原生 Serverless 平臺可以更好地滿足企業的特定需求,保障數據的安全性和隱私性,同時也能夠更好地管理和控制計算資源的分配和利用。其次,隨着數字化轉型和雲原生技術的普及,企業對於 Serverless 架構的需求也越來越大,建設私有化的 Serverless 平臺可以更好地滿足企業的需求,提高企業的業務效率和運營效果。

然而,建設私有化的雲原生 Serverless 平臺也具有一定的難點。首先,需要企業擁有一定的技術實力和人才儲備,包括雲計算、容器、微服務等多種技術的掌握和運用。其次,需要進行系統的架構設計和資源規劃,包括容器集羣的搭建、網絡的配置、存儲的規劃等。此外,私有化的 Serverless 平臺需要滿足高可用、高性能、高安全的要求,需要進行多方面的測試和優化。最後,建設私有化的 Serverless 平臺需要考慮成本的控制和效益的提升,需要綜合考慮多種因素,包括硬件設備、軟件開發和維護等成本。因此,建設私有化的雲原生 Serverless 平臺需要企業在技術、資源、人才和經濟等多方面進行全面的規劃和考慮,確保平臺的穩定性和可持續性。

Serverless 的特點

目前,Serverless 並沒有一個業界統一的標準規範,因爲 Serverless 並不是一種具體的技術或架構,而是一種基於雲計算的應用運行和部署方式,這種部署方式凸顯出開發人員不必關心服務器等基礎設施。一般情況下,我們認爲一個雲原生的 Serverless 平臺應該提供以下能力:

  1. 彈性伸縮:平臺應該支持應用自動擴縮容,以便應對變化的負載和流量。

  2. 容器編排:平臺應該支持容器編排,以方便管理應用的生命週期和資源分配。

  3. 無服務器計算:平臺應該支持無服務器計算模式,以提高開發者的效率和降低成本。

  4. 自動化運維:平臺應該支持自動化運維,包括自動部署、自動擴容、自動恢復等功能。

  5. 服務發現與負載均衡:平臺應該支持服務發現和負載均衡,以確保應用的高可用性和穩定性。

  6. 日誌監控和告警:平臺應該支持日誌監控和告警,以便及時發現和解決應用問題。

  7. 安全管理:平臺應該支持安全管理,包括身份認證、訪問控制、審計服務等功能,以確保應用的安全性和隱私性。

  8. 自動化 CI/CD:平臺應該支持自動化 CI/CD,以便實現快速迭代和部署。

  9. 多雲支持:平臺應該支持多雲環境,以便應用可以跨多個雲平臺部署和運行。

如此多的能力要求,爲自建雲原生 Serverless 平添了不少難度。那麼是否可以選擇一個開源的方案來完成這個目標呢?

基於 Rainbond 自建

Rainbond 是一款開源的雲原生應用管理平臺,它可以幫助用戶快速構建和管理雲原生應用,其很多功能特性都與 Serverless 的無服務器理念不謀而合。Rainbond 提供了一系列的工具和服務,包括應用編排、容器編排、自動化部署、監控告警、應用管理等功能,可以幫助用戶實現應用的快速迭代和部署。此外,Rainbond 還支持多語言、多框架、多雲環境的部署,用戶可以根據自己的需要選擇不同的部署方式。

原生支持多雲管理

Rainbond 可以架設在多種不同的雲之上,原生支持多雲管理。這種多雲管理能力可以幫助用戶抹平多種不同雲計算供應商之間的差異,提供一致的應用部署、應用管理體驗。無論是公有云、私有云或混合雲,對用戶而言都變成透明層,用戶的應用可以藉助 Rainbond 提供的能力完成跨雲的快速遷移。

簡化應用部署

Rainbond 支持用戶部署由不同開發語言開發而來的應用,這個過程不需要用戶編寫 Dockerfile,不需要了解容器鏡像如何打包。被支持的語言類型包括:Java、Python、Golang、PHP、NodeJS、.NetCore 以及靜態 Html 語言。用戶在操作時僅需要提供代碼倉庫地址,或者直接上傳 Jar、War 包即可將構建任務交給 Rainbond ,後者會自動識別語言類型,並自動配置語言的構建環境與最終運行環境。構建任務完成後,應用會自動運行起來,整個過程不需要用戶過多參與。

部署過程中,用戶可以自己選擇以哪種 Workload 類型來部署應用,Rainbond 除了支持常見的 Deployment、StatefulSet 之外,也支持部署 Job、CronJob 類型的 Workload。

彈性伸縮能力

彈性伸縮能力是 Serverless 場景中最受關注的能力之一,自動化的彈性伸縮能夠提升對計算資源的利用率。用戶可以藉助這種能力,自動化應對業務的峯谷流量。Rainbond 能夠根據 CPU/MEM 資源利用情況進行實例數量上的 1-N 自動伸縮,用戶僅需要做非常簡單的一次設置即可。在更高階的場景中,Rainbond 能夠旁路感知 Http 業務的平均響應時間、吞吐率等性能指標,並據此實現自動伸縮能力。

微服務能力

Serverless 架構與傳統的微服務架構類似,都是基於分佈式系統的思想,將一個應用拆分成多個小的、相對獨立的服務單元來進行開發、部署和管理。而微服務框架可以幫助開發人員更好地設計和開發這些服務單元,提高系統的可維護性、可擴展性和可靠性。Rainbond 內置靈活高效的 ServiceMesh 微服務框架,能夠完成跨語言、跨協議、跨架構的微服務編排,並且提供全面的微服務治理、容錯機制等能力。

自動化運維

Rainbond 提供完善的自動化運維能力,能夠極大的解放開發人員。許多應用運維工作都將由平臺來接管,包括定時數據備份、健康檢測、故障自愈等。

可觀測性中心

可擴展的全方位可觀測性能力,提供上至應用組件,下至平臺的監控視圖。全局日誌功能與鏈路追蹤能力,能夠幫助開發者快速定位問題。實時告警能力,則保證了每一次異常都會得到開發者的關注。

自動 CI/CD

Rainbond 能夠對接 Git 或 Svn 類型的代碼倉庫,簡化用戶創建應用以及配置自動化 Webhook 的流程。開發者僅需要提交一次代碼,就可以觸動整個 CI/CD 鏈條,自動化完成代碼更新後的上線。

一鍵配置網絡入口

用戶不需要學習複雜的負載均衡配置,僅僅需要一鍵,就可以開啓 L4/L7 的網關策略,將應用的端口對外暴露,平臺將會根據要求自動生成 IP:Port 或域名形式的訪問地址。

安全管理

平臺中採用雙因素認證方式保證登錄安全,並提供基於 RBAC 的設計方案來確保對應用的權限控制。除此之外,Rainbond 提供全局的操作日誌審計功能,保留用戶對應用的每一次操作記錄。

Rainbond 作爲一個開源的雲原生應用管理平臺,能夠幫助企業應對建設私有化的雲原生 Serverless 平臺的難點。首先,Rainbond 提供了豐富的組件和工具,使得企業可以輕鬆構建容器集羣、微服務架構、CI/CD 流水線等,極大地降低了技術門檻。其次,Rainbond 提供了完善的應用管理和監控機制,包括應用部署、服務編排、負載均衡等功能,大大簡化了應用開發和運維的工作量,實現了應用管理的自動化和免運維。此外,Rainbond 提供了網關組件,可通過一鍵即可對外暴露 L4/L7 層服務,提高了應用的安全性和可訪問性。Rainbond 還支持 Job 任務類型或 CrontabJob 定時任務類型,使得企業能夠方便地進行定時任務調度。最重要的是,Rainbond 提供了 ServerMesh 微服務框架和內置的應用編排模型,幫助企業輕鬆實現應用拓撲的編排和管理,實現應用的快速迭代和更新。此外,Rainbond 還能夠對接 Git 類型代碼倉庫,實現自動化 CI/CD 流程,進一步提高了開發效率和運營效果。

寫在最後

通過藉助 Rainbond 建設私有化的雲原生 Serverless 平臺,企業能夠更好地應對技術難點,提高平臺的穩定性和可持續性。同時,Rainbond 還提供了完善的文檔和社區支持,幫助企業更好地瞭解和掌握相關的技術和應用。因此,藉助 Rainbond 建設私有化的雲原生 Serverless 平臺不僅能夠解決技術難點,也能夠提高企業的開發效率、降低運維成本,是建設私有化 Serverless 平臺的理想選擇。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Tfvyx_5GSc1nyOERvUAzbg