Serverless 平臺選型原則
時間:2022-03-29 22:03:02 | 來源:行業(yè)動態(tài)
時間:2022-03-29 22:03:02 來源:行業(yè)動態(tài)
講解了這么多選項,我們到底該如何選擇?與一切軟件架構(gòu)選擇難題一樣,問題的答案還是跟具體的需求密切相關(guān)。
首先,企業(yè)需要評估現(xiàn)有軟件資產(chǎn)及發(fā)展目標(biāo)。在大型機上運行著海量Cobol遺留程序的組織,其發(fā)展路徑當(dāng)然不可能跟已經(jīng)擁有規(guī)?;栖浖Y產(chǎn)的組織相同。
如果企業(yè)中已經(jīng)擁有不少云資產(chǎn),請明確列出現(xiàn)有部署方案、具體使用哪些云服務(wù)商以及對應(yīng)的可用區(qū)。此外,總結(jié)客戶及用戶的位置與服務(wù)使用模式也非常重要。
例如,需要24/7全天候保持統(tǒng)一負載級別的應(yīng)用程序就不太適合無服務(wù)器部署相反,合適的服務(wù)器、虛擬機或容器集群也許成本更低也更易于管理。另一方面,具有明確偶發(fā)運行特征、負載規(guī)模靈活多變且往往由特定操作(例如源代碼簽入)觸發(fā)的應(yīng)用程序則是無服務(wù)器架構(gòu)的完美匹配對象。
另外,分布在全球各地而且對延遲要求嚴苛的服務(wù),則特別適合部署在多可用區(qū)或邊緣端點之上。因為原本在華盛頓特區(qū)使用的服務(wù),可以被完美遷移至弗吉尼亞州的目標(biāo)可用區(qū)內(nèi)。
如果您的企業(yè)已經(jīng)擁有豐富的Kubernetes使用經(jīng)驗,不妨考慮選擇Kubernetes的各類開源無服務(wù)器平臺。但如果沒什么Kubernetes經(jīng)驗,最好還是選擇原生云FaaS基礎(chǔ)設(shè)施,這時候開源(例如無服務(wù)器框架)還是專有(包括AWS Lambda、Google Cloud Functions或者Azure Functions)就不那么重要了。
如果企業(yè)所構(gòu)建的無服務(wù)器應(yīng)用程序依賴于云數(shù)據(jù)庫或流媒體服務(wù),則應(yīng)考慮將它們部署在同一云環(huán)境內(nèi),最大程度降低應(yīng)用程序之內(nèi)各組件間的延遲。請放心,這不會對無服務(wù)器框架選擇造成太大影響。例如,使用Google Cloud Bigtable數(shù)據(jù)存儲的應(yīng)用程序完全可以選擇Google Cloud Functions、Google Cloud Run、Serverless Framework、OpenWhisk、Kubeless、OpenFaaS、Fission或者Knative等多種方案,且繼續(xù)保持穩(wěn)定的最低延遲水平。
在大多數(shù)情況下,您的應(yīng)用程序可能與常見用例頗為相似、甚至完全相同。這時候,大家就應(yīng)認真評測目標(biāo)無服務(wù)器平臺的示例和庫資源,看看有沒有能夠拿來就用的參考架構(gòu)。事實上,大部分函數(shù)即服務(wù)系統(tǒng)并不需要編寫大量代碼:FaaS擁有豐富的可重用代碼資源,而且架構(gòu)本身也經(jīng)過良好測試及驗證。無需大量調(diào)試,企業(yè)就可以將其化為己用、大大提升工作效率。