Categories
程式開發

網易CI/CD實踐(中):CD系統的部署架構與發布流程


在上一篇文章中,我們主要介紹了網易輕舟的CI建設實踐,在本文中,我們將主要來講解網易輕舟的CD建設實踐。

雲原生時代,容器技術是實現雲原生架構的基礎,而Kubernetes是容器編排的事實標準。網易輕舟CI/CD容器部署系統的架構設計參考了CNCF應用興趣小組提出的雲原生應用交付模型,以Kubernetes作為底層基礎設施平台,將應用的交付分為應用定義、應用發布與應用工作負載管理、自動化運維三個主題。

網易輕舟CI/CD容器部署系統是完全基於雲原生技術實現的,通過Kubernetes的聲明式特性,保證系統極強的容錯性;使用部署模板的方式來簡化應用的定義,在應用發布環節,支持多種發布策略,包括藍綠髮布、灰度發布、自定義分組等;利用Kubernetes控制器來控制發布流程,這不僅是Kubernetes實現“容器編排”的核心機制,同時也是一種編程範式。在Kubernetes中,通過自定義資源(CRD)可以定義滿足用戶需求的資源對象,並且通過控制器模式來驅動系統狀態逐步向CRD中定義的期望狀態逼近,這樣能很好的保證應用交付的效率和準確性。

網易輕舟的CD建設實踐

眾所周知,“CD”其實是包含兩層意思,持續交付及持續部署。持續交付指的是所有變更可以部署到生產環境中,但是出於業務安全考慮,部署操作仍需由運維人員手工部署到生產環境。持續部署則是在持續交付的基礎上,將新版本直接自動化部署到生產環境的過程。持續交付和持續部署的區別在於部署操作自動化。

原文鏈接:【https://www.infoq.cn/article/jrX4ZOTY47yY1pHG7DDm】。未經作者許可,禁止轉載。