無服務(wù)器技術(shù)如何實現(xiàn)最佳的DevOps實踐
譯文【51CTO.com快譯】日益激烈的市場競爭和不斷增長的客戶期望促進企業(yè)業(yè)務(wù)的發(fā)展。與此同時,采用DevOps對一些企業(yè)來說可能是一個挑戰(zhàn),因為它包括調(diào)整實踐和更新基礎(chǔ)設(shè)施。盡管工程資源可能很少,但是無服務(wù)器提供了解決DevOps挑戰(zhàn)的解決方案。從改進的物聯(lián)網(wǎng)設(shè)備到經(jīng)濟高效的機器學(xué)習(xí)應(yīng)用程序,無服務(wù)器生態(tài)系統(tǒng)正在促進企業(yè)采用DevOps。
為什么無服務(wù)器對DevOps有利?
DevOps加快了企業(yè)開發(fā)速度,同時減少停機時間,從而為企業(yè)提供了競爭優(yōu)勢,在特性和功能方面加快了產(chǎn)品成熟度,并改善了客戶體驗。盡管DevOps具有吸引人的優(yōu)點,但采用DevOps成本高昂并且耗時。無服務(wù)器能夠以更低的成本和更高的回報克服障礙,并支持DevOps解決方案的實施。
無服務(wù)器技術(shù)提供了一種按需付費模式,允許企業(yè)為使用的資源付費。例如使用AWS Lambda,企業(yè)可以根據(jù)調(diào)用的次數(shù)和持續(xù)時間支付費用,從而有可能降低成本。功能即服務(wù)(FaaS)的價格可能會比容器更昂貴,具體取決于流量體驗。流量越高,一致性越強,無服務(wù)器工具的成本就越高,并且這些成本可能會比容器成本上升得更高。
由于無服務(wù)器技術(shù)具有自動擴展性和完全可管理性,它允許團隊專注于DevOps基礎(chǔ)設(shè)施實際構(gòu)建的業(yè)務(wù)邏輯,而不必花費大量時間來維護DevOps架構(gòu)。
可用性和性能監(jiān)控
諸如AWS Lambda或Azure Functions之類的功能即服務(wù)(FaaS)相對容易啟動,可以自動擴展且具有成本效益。這些可以對企業(yè)的服務(wù)進行API調(diào)用,而API調(diào)用可以由用戶通過前端接口進行。這些定期檢查可確保其服務(wù)連續(xù)可用,并且監(jiān)視工具可以捕獲生產(chǎn)環(huán)境中發(fā)生的任何故障,以通知任何性能下降。用戶可以通過事件管理軟件即服務(wù)(SaaS)工具整合來自監(jiān)視工具的警報。
功能即服務(wù)(FaaS)可用于自動可用性和性能檢查。然而,無服務(wù)器的事件總線將警報作為功能即服務(wù)(FaaS)功能的調(diào)用在整個DevOps基礎(chǔ)設(shè)施中進行通信,從而降低了功能即服務(wù)(FaaS)功能的按需付費模型和自動擴展性的總體成本。
ChatOps改進DevOps流程
在GitHub開發(fā)的ChatOps是一個對話驅(qū)動的開發(fā)程序,允許用戶在聊天工具中輸入命令,通過自定義腳本和插件啟動持續(xù)集成(CI)/持續(xù)部署(CD)過程。腳本的操作需要后端支持,這是無服務(wù)器技術(shù)可以提供支持的地方。
功能即服務(wù)(FaaS)功能使DevOps工程師能夠簡單地編寫腳本以執(zhí)行預(yù)期的操作,并將其上傳到功能中,同時確保聊天工具可以調(diào)用它。這消除了繁瑣的容器編排和網(wǎng)絡(luò)設(shè)置。此外,只有在通過聊天機器人調(diào)用功能即服務(wù)(FaaS)功能時才會產(chǎn)生成本,而不是按小時計算。
無服務(wù)器增強了持續(xù)集成(CI)/持續(xù)部署(CD)流程以實現(xiàn)連續(xù)部署
與ChatOps相似,無服務(wù)器可用于增強持續(xù)集成(CI)/持續(xù)部署(CD)流程,但與ChatOps不同,無服務(wù)器可通過合并拉出請求以在生產(chǎn)環(huán)境中實現(xiàn)自動化整個過程。這稱之為GitOps。
由Weaveworks構(gòu)思的GitOps是Kubernetes集群管理和應(yīng)用交付的一種方法。通過利用Kubernetes的聚合特性,Git推送觸發(fā)了連續(xù)交付。GitOps允許Kubernetes集群管理和應(yīng)用程序交付,使用Git作為聲明性基礎(chǔ)設(shè)施和應(yīng)用程序的唯一真實來源。由于Git是交付管道的中心,開發(fā)人員可以加速拉取請求,并簡化Kubernetes的應(yīng)用程序部署和操作任務(wù)。
GitOps為基礎(chǔ)設(shè)施和應(yīng)用程序代碼提供了“真相來源”,以進一步提高開發(fā)團隊的速度。使這成為可能的工作流從持續(xù)集成(CI)工具開始,將Docker映像推送到托管工具。然后云計算功能將配置圖和Helm圖從主存儲桶復(fù)制到主要的Git repo。最后,GitOps操作人員通過Lambda功能提取Helm圖表。
通過復(fù)制Helm圖,可以將功能即服務(wù)(FaaS)功能用于主要Git repo。功能即服務(wù)(FaaS)功能易于設(shè)置且具有成本效益,這意味著DevOps工程師可以專注于GitOps基礎(chǔ)設(shè)施的其他部分,并在這一過程中降低成本。
DevOps之路充滿挑戰(zhàn),但無服務(wù)器可以提供幫助
無服務(wù)器可通過按需付費、自動擴展、完全托管的服務(wù)來減輕DevOps采用的復(fù)雜性,從而使DevOps基礎(chǔ)設(shè)施更高效、更具成本效益。從開發(fā)和測試到持續(xù)集成(CI)/持續(xù)部署(CD)和事件管理,無服務(wù)器技術(shù)可在整個DevOps堆棧中使用,以最佳成本運行,并且在開發(fā)速度和代碼可靠性方面非常有效。
原文標題:How Serverless Technologies Can Achieve Optimal DevOps Practices,原文作者:Sarjeel Yusuf
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】