Netflix開源持續交付平臺Spinnaker
日前,Netflix開源了他們的持續交付平臺 Spinnaker 。Spinnaker是一個持續交付平臺,它定位于將產品快速且持續的部署到多種云平臺上。
6年前,Netflix率先將服務部署到了AWS上,為此,他們開發了一系列工具,其中一個基于AWS的自動部署平臺: Asgard 。1年前,Netflix開始了Spinnaker,以實現內部的端到端持續交付。作為Asgard的替代,該項目期望重建一個持續交付平臺,能夠 實現 :
- 通過靈活和可配置的管道實現可重復的自動部署
- 提供一個所有環境的全局視圖,一個應用程序可以看見自己的在所屬管道中的狀態
- 通過一致且可靠的API,提供可編程配置
- 易于配置、維護和擴展
- 兼容Asgard特性
同時,Spinnaker作為云平臺部署工具,Spinnaker團隊和 Google 、微軟、Pivotal等公司合作,致力于提供在多種平臺上實現開箱即用的集群管理和部署功能。目前,Spinnaker可以部署管理AWS和Google云平臺(GCP),針對Azure等平臺的支持也在進行中。
Spinnaker主要包含2塊內容,集群管理和部署管理。
集群管理功能,主要用于管理云上的資源。集群管理將云上資源做了邏輯劃分:
- 機器組:機器組是Spinnaker管理資源的單位。機器組標識了機器實例,并且關聯了一個負載均衡器和安全組。每個機器組都擁有獨立的配置信息(如機器帳號等);
- 安全組:安全組定義了網絡訪問權限,也就是一般意義上的一組防火墻規則;
- 負載均衡器:負載均衡器用于將網絡流量重定向到機器組中的機器實例,負載均衡器還可以指定一系列規則,用于對機器組中的機器實例做健康檢查;
- 集群:集群是由用戶定義的,對機器組的邏輯分組;
部署管理功能用于創建一個持續交付流程。部署管理的核心是管道,在Spinnaker的定義中,管道由一系列的階段(stages)組成。管道可以由Jenkins、定時器、其他管道或者人工觸發。同時,管道可以配置參數和通知,可以在管道一些節點上發出消息。Spinnaker已經內置了一些階段,如執行自定義腳本、觸發Jenkins任務等。
Spinnaker的源碼可以在 GitHub 上查看,參照 文檔 即可從源碼開始進行部署和試用。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!