微服務架構下,DLI的部署和運維有何奧秘?


摘要:探討DLI兩個問題:如何在生產環境中部署與運維實現快速迭代上線,如何實現監控告警來提升整體運維能力。

華為雲數據湖探索DLI是支持多模引擎的Serverless大數據計算服務,其很好的實現了Serverless的特性:

1.弱化了存儲和計算之間的聯系;

2.代碼的執行不再需要手動分配資源;

3.按使用量計費。

那么如何才能更好的實現Serverless化的服務,同時又避免成為傳統單體分布式的應用,微服務架構無疑是最優的選擇。DLI基於微服務架構模式下的整體部署架構如下:

即對外以純API形式提供服務,通過以API Gateway作為應用的入口,基於領域模型按子域進行微服務划分,從而實現Serverless化的大數據計算服務。

對於這樣一個基於微服務架構實現的Serverless服務,我們是如何在生產環境來部署與運維,從而在保證服務SLA的前提下實現快速迭代上線的呢?

DLI部署的關鍵

隨着技術的發展,部署的流程和架構都發生了根本性的變化,如今已經走入了輕量級、短生命周期的技術時代。

從最初部署在物理機上的大數據計算平台,到基於公有雲的彈性計算雲服務器部署大數據平台,再到DLI這樣的Serverless服務,其很好展現了大數據計算服務的演變。那么如何才能更好的實現Serverless化的大數據計算服務的部署呢,DLI的答案就是基於Kubernetes+Docker來部署各微服務。

Kubernetes部署是在不停機的情況下部署服務的好方法,但是如何應對在接收生產流量后出現的錯誤,使新版本的服務更可靠呢?這可以通過將問題一分為二來看:

1.部署,即將服務上線到生產環境中運行;

2.發布,即使服務可用於處理生產流量。

傳統上,分離部署流程與發布流程一直是一個挑戰。但現在我們有了很好的選擇,那就是基於服務網格。在DLI的部署中我們結合了Kubernetes+Istio,利用Istio的流量管理實現了服務發現、流量路由,從而輕松的將部署與發布分開,使新版本的服務更加可靠。

監控告警提升整體運維能力

免運維也是DLI作為Serverless雲服務面向客戶時的一個重要的特性,我們是如何實現整個服務的運維呢?今天就說說DLI是如何實現監控告警來提升整體運維能力,從而為客戶更好的提供Serverless的DLI。

上圖是DLI服務的整體部署架構,作為Serverless服務其全面擁抱雲原生技術,無論是對外提供任務管理的微服務還是最終執行任務的計算單元,其都是基於Kubernetes來部署,這也更好的實現了Serverless的快速彈性伸縮。

對於DLI服務的監控告警我們當前主要從以下幾個方面來考慮:

1.全局維度,主要是整體API的QPS、成功率和響應時延

DLI作為Serverless大數據計算服務,其對外均以REST API的形式提供服務,因此API的QPS和響應時延直接反映了服務對外的能力,而成功率更是服務SLA的直接體現。

2. OS維度,主要是容器宿主的CPU使用率、內存使用率、磁盤使用率、上下行流量

無論部署的架構、技術如何演進,對基礎資源的監控都是最基本和必須的。

3.容器維度,主要是CPU使用率、內存使用率、K8s空間和用戶空間使用率、POD的健康度

容器是虛擬機的演進,因此對於容器的資源監控也是最基本的。我們的微服務或計算單元都是以容器運行在Kubernetes集群上,因此對於POD的健康狀態的監控也是必須的。

4.微服務維度,主要是流量、性能、健康檢查和關鍵日志等

監控是為了更好的發現和解決問題,因此核心還是業務層面的監控。DLI是一個復雜的分布式Serverless應用,其內部根據不同領域模型又分為不同的微服務,因此對於微服務內部的流量、性能等的監控則是衡量各微服務可靠性的重要指標。一個好的系統往往有完善的日志體系,通過對關鍵日志進行監控則能夠幫助我們快速發現和定位問題,因此這也是我們在業務維度的監控上的重點。

上述幾個方面的監控,是實現雲服務自動化運維的一些關鍵步驟,通過這些我們能夠做到更好的先於客戶發現問題,保障服務SLA。當然這些遠遠不夠,正所謂“路漫漫其修遠兮,吾將上下而求索”,更加自動化、智能化的運維才是Serverless服務的目標。

華為雲828企業上雲節,可能是入手DLI的最好時機,感受一下它的智能化部署和運維。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM