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