隨著云計(jì)算的普及,越來越多的企業(yè)開始將業(yè)務(wù)應(yīng)用遷移到云上。然而,如何構(gòu)建一套完整的云原生 Serverless 平臺(tái),依然是一個(gè)需要考慮的問題。
Serverless的發(fā)展趨勢(shì)
云計(jì)算行業(yè)從 IaaS(基礎(chǔ)設(shè)施即服務(wù))到 PaaS(平臺(tái)即服務(wù)),再到 Serverless(無服務(wù)器)的發(fā)展,經(jīng)歷了一個(gè)逐漸從底層到上層,從IT基礎(chǔ)設(shè)施提供商到應(yīng)用開發(fā)者的轉(zhuǎn)移的過程。
IaaS 時(shí)代,云計(jì)算提供商主要提供基礎(chǔ)設(shè)施服務(wù),包括計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等,用戶需要自己搭建運(yùn)維應(yīng)用。這個(gè)階段主要面向IT運(yùn)維人員和企業(yè)內(nèi)部的應(yīng)用開發(fā)團(tuán)隊(duì)。
隨著 PaaS 的出現(xiàn),云計(jì)算提供商開始提供更高層次的服務(wù),包括開發(fā)框架、數(shù)據(jù)庫(kù)、消息隊(duì)列等,用戶只需要關(guān)注應(yīng)用開發(fā),無需關(guān)心底層設(shè)施。這個(gè)階段主要面向應(yīng)用開發(fā)者和創(chuàng)業(yè)公司,可以大大提高開發(fā)效率和降低成本。
而 Serverless 的出現(xiàn),則更進(jìn)一步解放了應(yīng)用開發(fā)者的手腳,將服務(wù)器管理交給云計(jì)算提供商,應(yīng)用開發(fā)者只需關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn),無需關(guān)心服務(wù)器的管理和維護(hù)。Serverless的出現(xiàn)使得應(yīng)用開發(fā)更加靈活和高效,也降低了開發(fā)和運(yùn)維成本,因此受到了越來越多的關(guān)注。
總體來看,從IaaS到PaaS再到Serverless的發(fā)展,是云計(jì)算服務(wù)不斷向上層抽象和自動(dòng)化的過程,提高了IT基礎(chǔ)設(shè)施和應(yīng)用開發(fā)的效率,降低了成本,推動(dòng)了數(shù)字化轉(zhuǎn)型的進(jìn)程。隨著技術(shù)和市場(chǎng)的不斷變化,未來云計(jì)算服務(wù)還將不斷地向更高層次的抽象和自動(dòng)化發(fā)展。
自建 Serverless 的意義與困境
建設(shè)私有化的云原生 Serverless 平臺(tái)具有重要的意義和必要性。首先,相比于公共云平臺(tái),私有化的云原生 Serverless 平臺(tái)可以更好地滿足企業(yè)的特定需求,保障數(shù)據(jù)的安全性和隱私性,同時(shí)也能夠更好地管理和控制計(jì)算資源的分配和利用。其次,隨著數(shù)字化轉(zhuǎn)型和云原生技術(shù)的普及,企業(yè)對(duì)于 Serverless 架構(gòu)的需求也越來越大,建設(shè)私有化的 Serverless 平臺(tái)可以更好地滿足企業(yè)的需求,提高企業(yè)的業(yè)務(wù)效率和運(yùn)營(yíng)效果。
然而,建設(shè)私有化的云原生 Serverless 平臺(tái)也具有一定的難點(diǎn)。首先,需要企業(yè)擁有一定的技術(shù)實(shí)力和人才儲(chǔ)備,包括云計(jì)算、容器、微服務(wù)等多種技術(shù)的掌握和運(yùn)用。其次,需要進(jìn)行系統(tǒng)的架構(gòu)設(shè)計(jì)和資源規(guī)劃,包括容器集群的搭建、網(wǎng)絡(luò)的配置、存儲(chǔ)的規(guī)劃等。此外,私有化的Serverless平臺(tái)需要滿足高可用、高性能、高安全的要求,需要進(jìn)行多方面的測(cè)試和優(yōu)化。最后,建設(shè)私有化的Serverless平臺(tái)需要考慮成本的控制和效益的提升,需要綜合考慮多種因素,包括硬件設(shè)備、軟件開發(fā)和維護(hù)等成本。因此,建設(shè)私有化的云原生Serverless平臺(tái)需要企業(yè)在技術(shù)、資源、人才和經(jīng)濟(jì)等多方面進(jìn)行全面的規(guī)劃和考慮,確保平臺(tái)的穩(wěn)定性和可持續(xù)性。
ServerLess 的特點(diǎn)
目前,Serverless 并沒有一個(gè)業(yè)界統(tǒng)一的標(biāo)準(zhǔn)規(guī)范,因?yàn)?Serverless 并不是一種具體的技術(shù)或架構(gòu),而是一種基于云計(jì)算的應(yīng)用運(yùn)行和部署方式,這種部署方式凸顯出開發(fā)人員不必關(guān)心服務(wù)器等基礎(chǔ)設(shè)施。一般情況下,我們認(rèn)為一個(gè)云原生的 Serverless 平臺(tái)應(yīng)該提供以下能力:
彈性伸縮:平臺(tái)應(yīng)該支持應(yīng)用自動(dòng)擴(kuò)縮容,以便應(yīng)對(duì)變化的負(fù)載和流量。
容器編排:平臺(tái)應(yīng)該支持容器編排,以方便管理應(yīng)用的生命周期和資源分配。
無服務(wù)器計(jì)算:平臺(tái)應(yīng)該支持無服務(wù)器計(jì)算模式,以提高開發(fā)者的效率和降低成本。
自動(dòng)化運(yùn)維:平臺(tái)應(yīng)該支持自動(dòng)化運(yùn)維,包括自動(dòng)部署、自動(dòng)擴(kuò)容、自動(dòng)恢復(fù)等功能。
服務(wù)發(fā)現(xiàn)與負(fù)載均衡:平臺(tái)應(yīng)該支持服務(wù)發(fā)現(xiàn)和負(fù)載均衡,以確保應(yīng)用的高可用性和穩(wěn)定性。
日志監(jiān)控和告警:平臺(tái)應(yīng)該支持日志監(jiān)控和告警,以便及時(shí)發(fā)現(xiàn)和解決應(yīng)用問題。
安全管理:平臺(tái)應(yīng)該支持安全管理,包括身份認(rèn)證、訪問控制、審計(jì)服務(wù)等功能,以確保應(yīng)用的安全性和隱私性。
自動(dòng)化CI/CD:平臺(tái)應(yīng)該支持自動(dòng)化CI/CD,以便實(shí)現(xiàn)快速迭代和部署。
多云支持:平臺(tái)應(yīng)該支持多云環(huán)境,以便應(yīng)用可以跨多個(gè)云平臺(tái)部署和運(yùn)行。
如此多的能力要求,為自建云原生 Serverless 平添了不少難度。那么是否可以選擇一個(gè)開源的方案來完成這個(gè)目標(biāo)呢?
基于 Rainbond 自建
Rainbond 是一款開源的云原生應(yīng)用管理平臺(tái),它可以幫助用戶快速構(gòu)建和管理云原生應(yīng)用,其很多功能特性都與 Serverless 的無服務(wù)器理念不謀而合。Rainbond 提供了一系列的工具和服務(wù),包括應(yīng)用編排、容器編排、自動(dòng)化部署、監(jiān)控告警、應(yīng)用管理等功能,可以幫助用戶實(shí)現(xiàn)應(yīng)用的快速迭代和部署。此外,Rainbond 還支持多語言、多框架、多云環(huán)境的部署,用戶可以根據(jù)自己的需要選擇不同的部署方式。
server-1
原生支持多云管理
Rainbond 可以架設(shè)在多種不同的云之上,原生支持多云管理。這種多云管理能力可以幫助用戶抹平多種不同云計(jì)算供應(yīng)商之間的差異,提供一致的應(yīng)用部署、應(yīng)用管理體驗(yàn)。無論是公有云、私有云或混合云,對(duì)用戶而言都變成透明層,用戶的應(yīng)用可以借助Rainbond提供的能力完成跨云的快速遷移。
簡(jiǎn)化應(yīng)用部署
Rainbond 支持用戶部署由不同開發(fā)語言開發(fā)而來的應(yīng)用,這個(gè)過程不需要用戶編寫 Dockerfile,不需要了解容器鏡像如何打包。被支持的語言類型包括:Java、Python、Golang、PHP、NodeJS、.NetCore以及靜態(tài)Html語言。用戶在操作時(shí)僅需要提供代碼倉(cāng)庫(kù)地址,或者直接上傳 Jar、War 包即可將構(gòu)建任務(wù)交給 Rainbond ,后者會(huì)自動(dòng)識(shí)別語言類型,并自動(dòng)配置語言的構(gòu)建環(huán)境與最終運(yùn)行環(huán)境。構(gòu)建任務(wù)完成后,應(yīng)用會(huì)自動(dòng)運(yùn)行起來,整個(gè)過程不需要用戶過多參與。
部署過程中,用戶可以自己選擇以哪種 Workload 類型來部署應(yīng)用,Rainbond 除了支持常見的 Deployment、StatefulSet 之外,也支持部署 Job、CronJob 類型的 Workload。
彈性伸縮能力
彈性伸縮能力是 Serverless 場(chǎng)景中最受關(guān)注的能力之一,自動(dòng)化的彈性伸縮能夠提升對(duì)計(jì)算資源的利用率。用戶可以借助這種能力,自動(dòng)化應(yīng)對(duì)業(yè)務(wù)的峰谷流量。Rainbond 能夠根據(jù) CPU/MEM 資源利用情況進(jìn)行實(shí)例數(shù)量上的 1-N 自動(dòng)伸縮,用戶僅需要做非常簡(jiǎn)單的一次設(shè)置即可。在更高階的場(chǎng)景中,Rainbond 能夠旁路感知Http業(yè)務(wù)的平均響應(yīng)時(shí)間、吞吐率等性能指標(biāo),并據(jù)此實(shí)現(xiàn)自動(dòng)伸縮能力。
微服務(wù)能力
Serverless架構(gòu)與傳統(tǒng)的微服務(wù)架構(gòu)類似,都是基于分布式系統(tǒng)的思想,將一個(gè)應(yīng)用拆分成多個(gè)小的、相對(duì)獨(dú)立的服務(wù)單元來進(jìn)行開發(fā)、部署和管理。而微服務(wù)框架可以幫助開發(fā)人員更好地設(shè)計(jì)和開發(fā)這些服務(wù)單元,提高系統(tǒng)的可維護(hù)性、可擴(kuò)展性和可靠性。Rainbond內(nèi)置靈活高效的ServiceMesh微服務(wù)框架,能夠完成跨語言、跨協(xié)議、跨架構(gòu)的微服務(wù)編排,并且提供全面的微服務(wù)治理、容錯(cuò)機(jī)制等能力。
自動(dòng)化運(yùn)維
Rainbond提供完善的自動(dòng)化運(yùn)維能力,能夠極大的解放開發(fā)人員。許多應(yīng)用運(yùn)維工作都將由平臺(tái)來接管,包括定時(shí)數(shù)據(jù)備份、健康檢測(cè)、故障自愈等。
可觀測(cè)性中心
可擴(kuò)展的全方位可觀測(cè)性能力,提供上至應(yīng)用組件,下至平臺(tái)的監(jiān)控視圖。全局日志功能與鏈路追蹤能力,能夠幫助開發(fā)者快速定位問題。實(shí)時(shí)告警能力,則保證了每一次異常都會(huì)得到開發(fā)者的關(guān)注。
自動(dòng)CI/CD
Rainbond 能夠?qū)?Git 或 Svn 類型的代碼倉(cāng)庫(kù),簡(jiǎn)化用戶創(chuàng)建應(yīng)用以及配置自動(dòng)化 Webhook 的流程。開發(fā)者僅需要提交一次代碼,就可以觸動(dòng)整個(gè)CI/CD鏈條,自動(dòng)化完成代碼更新后的上線。
一鍵配置網(wǎng)絡(luò)入口
用戶不需要學(xué)習(xí)復(fù)雜的負(fù)載均衡配置,僅僅需要一鍵,就可以開啟 L4/L7 的網(wǎng)關(guān)策略,將應(yīng)用的端口對(duì)外暴露,平臺(tái)將會(huì)根據(jù)要求自動(dòng)生成 IP:Port 或域名形式的訪問地址。
安全管理
平臺(tái)中采用雙因素認(rèn)證方式保證登錄安全,并提供基于 RBAC 的設(shè)計(jì)方案來確保對(duì)應(yīng)用的權(quán)限控制。除此之外,Rainbond 提供全局的操作日志審計(jì)功能,保留用戶對(duì)應(yīng)用的每一次操作記錄。
Rainbond 作為一個(gè)開源的云原生應(yīng)用管理平臺(tái),能夠幫助企業(yè)應(yīng)對(duì)建設(shè)私有化的云原生 Serverless 平臺(tái)的難點(diǎn)。首先,Rainbond 提供了豐富的組件和工具,使得企業(yè)可以輕松構(gòu)建容器集群、微服務(wù)架構(gòu)、CI/CD流水線等,極大地降低了技術(shù)門檻。其次,Rainbond 提供了完善的應(yīng)用管理和監(jiān)控機(jī)制,包括應(yīng)用部署、服務(wù)編排、負(fù)載均衡等功能,大大簡(jiǎn)化了應(yīng)用開發(fā)和運(yùn)維的工作量,實(shí)現(xiàn)了應(yīng)用管理的自動(dòng)化和免運(yùn)維。此外,Rainbond 提供了網(wǎng)關(guān)組件,可通過一鍵即可對(duì)外暴露L4/L7層服務(wù),提高了應(yīng)用的安全性和可訪問性。Rainbond 還支持 Job 任務(wù)類型或 CrontabJob 定時(shí)任務(wù)類型,使得企業(yè)能夠方便地進(jìn)行定時(shí)任務(wù)調(diào)度。最重要的是,Rainbond 提供了 ServerMesh 微服務(wù)框架和內(nèi)置的應(yīng)用編排模型,幫助企業(yè)輕松實(shí)現(xiàn)應(yīng)用拓?fù)涞木幣藕凸芾恚瑢?shí)現(xiàn)應(yīng)用的快速迭代和更新。此外,Rainbond 還能夠?qū)?Git 類型代碼倉(cāng)庫(kù),實(shí)現(xiàn)自動(dòng)化 CI/CD 流程,進(jìn)一步提高了開發(fā)效率和運(yùn)營(yíng)效果。
寫在最后
通過借助 Rainbond 建設(shè)私有化的云原生 Serverless 平臺(tái),企業(yè)能夠更好地應(yīng)對(duì)技術(shù)難點(diǎn),提高平臺(tái)的穩(wěn)定性和可持續(xù)性。同時(shí),Rainbond 還提供了完善的文檔和社區(qū)支持,幫助企業(yè)更好地了解和掌握相關(guān)的技術(shù)和應(yīng)用。因此,借助 Rainbond 建設(shè)私有化的云原生 Serverless 平臺(tái)不僅能夠解決技術(shù)難點(diǎn),也能夠提高企業(yè)的開發(fā)效率、降低運(yùn)維成本,是建設(shè)私有化 Serverless 平臺(tái)的理想選擇。
審核編輯:湯梓紅
-
云計(jì)算
+關(guān)注
關(guān)注
39文章
7774瀏覽量
137351 -
PaaS
+關(guān)注
關(guān)注
2文章
132瀏覽量
21451 -
私有云
+關(guān)注
關(guān)注
0文章
97瀏覽量
15026 -
serverless
+關(guān)注
關(guān)注
0文章
65瀏覽量
4508 -
云原生
+關(guān)注
關(guān)注
0文章
248瀏覽量
7947
原文標(biāo)題:如何建設(shè)私有云原生Serverless平臺(tái)
文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論