【華爲雲技術分享】從部署和運維說說DLI(1)

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

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

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

        3.  按使用量計費。

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

p1.png

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

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

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

p2.png

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

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

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

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

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

p3.png

 點擊這裏,瞭解更多精彩內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章