持續交付平臺:Spinnaker
Spinnaker 是一個持續交付平臺,它定位于將產品快速且持續的部署到多種云平臺上。
Spinnaker 主要特性:配置一次,隨時運行;隨地部署,集中化管理;開源。
Spinnaker 組件:
Spinnaker 最初是以實現內部的端到端持續交付為目標,作為 Asgard 的替代,該項目期望重建一個持續交付平臺,能夠實現:
-
通過靈活和可配置的管道實現可重復的自動部署
-
提供一個所有環境的全局視圖,一個應用程序可以看見自己的在所屬管道中的狀態
-
通過一致且可靠的API,提供可編程配置
-
易于配置、維護和擴展
-
兼容Asgard特性
同 時,Spinnaker作為云平臺部署工具,Spinnaker團隊和Google、微軟、Pivotal等公司合作,致力于提供在多種平臺上實現開箱即 用的集群管理和部署功能。目前,Spinnaker可以部署管理AWS和Google云平臺(GCP),針對Azure等平臺的支持也在進行中。
Spinnaker主要包含2塊內容,集群管理和部署管理。
集群管理功能,主要用于管理云上的資源。集群管理將云上資源做了邏輯劃分:
-
機器組:機器組是Spinnaker管理資源的單位。機器組標識了機器實例,并且關聯了一個負載均衡器和安全組。每個機器組都擁有獨立的配置信息(如機器帳號等);
-
安全組:安全組定義了網絡訪問權限,也就是一般意義上的一組防火墻規則;
-
負載均衡器:負載均衡器用于將網絡流量重定向到機器組中的機器實例,負載均衡器還可以指定一系列規則,用于對機器組中的機器實例做健康檢查;
-
集群:集群是由用戶定義的,對機器組的邏輯分組;
部署管理功能用于創建一個持續交付流程。部署管理的核心是管道,在Spinnaker的定義中,管道由一系列的階段(stages)組成。管道可以 由Jenkins、定時器、其他管道或者人工觸發。同時,管道可以配置參數和通知,可以在管道一些節點上發出消息。Spinnaker已經內置了一些階 段,如執行自定義腳本、觸發Jenkins任務等。