【Linux】【Services】【SaaS】Spinnaker

1. 簡介html

1.1. 說明:linux

Spinnaker 是 Netflix 的開源項目,是一個持續交付平臺,它定位於將產品快速且持續的部署到多種雲平臺上。Spinnaker 經過將發佈和各個雲平臺解耦,來將部署流程流水線化,從而下降平臺遷移或多雲品臺部署應用的複雜度,它自己內部支持 Google、AWS EC二、Microsoft Azure、Kubernetes和 OpenStack 等雲平臺,而且它能夠無縫集成其餘持續集成(CI)流程,如 git、Jenkins、Travis CI、Docker registry、cron 調度器等。簡而言之,Spinnaker 是致力於提供在多種平臺上實現開箱即用的集羣管理和部署功能的平臺。git

1.2. 官方網站:github

https://www.spinnaker.ioweb

1.3. Ebookapi

https://www.spinnaker.io/ebook/#continuous-delivery-with-spinnaker安全

1.4. 參考文章網絡

https://blog.csdn.net/aixiaoyang168/article/details/78717151架構

 

 

2. 架構app

2.1. 微服務說明

組件名稱  組件說明 端口  
Deck  the browser-based UI 9000  
Gate the API gateway. The Spinnaker UI and all api callers communicate with Spinnaker via Gate 8084  
Orca the orchestration engine. It handles all ad-hoc operations and pipelines. 8083  
Clouddriver responsible for all mutating calls to the cloud providers and for indexing/caching all deployed resources. 7002  
Front50 used to persist the metadata of applications, pipelines, projects and notifications. 8080  
Rosco

the bakery.

It is used to produce machine images (for example GCE imagesAWS AMIsAzure VM images). It currently wraps packer, but will be expanded to support additional mechanisms for producing images.

8087  
Igor used to trigger pipelines via continuous integration jobs in systems like Jenkins and Travis CI, and it allows Jenkins/Travis stages to be used in pipelines. 8088  
Echo

Spinnaker’s eventing bus.

It supports sending notifications (e.g. Slack, email, Hipchat, SMS), and acts on incoming webhooks from services like Github.

8089  
Fiat

Spinnaker’s authorization service.

It is used to query a user’s access permissions for accounts, applications and service accounts.

7003  
Kayenta  provides automated canary analysis for Spinnaker. 8064  
Halyard

Spinnaker’s configuration service.

Halyard manages the lifecycle of each of the above services. It only interacts with these services during Spinnaker startup, updates, and rollbacks.

8090  

 

2.2. 系統依賴

 

2.3. 架構:集羣管理和部署管理

 

 

集羣管理主要用於管理雲上的資源,它分爲如下幾個塊:

  • Server Group:服務組,是資源管理單位,識別可部署組件和基礎配置設置,它而且關聯了一個負載均衡器和安全組,當部署完畢後,服務組就至關於一組運行中的軟件實例集合,如(VM 實例,Kubernetes pods)。
  • Cluster:集羣,由用戶定義的,對服務組的邏輯分組。
  • Applications:應用,是對集羣的邏輯分組。
  • Load Balancer:負載均衡,用於將外部網絡流量重定向到服務組中的機器實例,還能夠指定一系列規則,用來對服務組中的機器實例作健康監測。
  • Security Group:安全組,定義了網絡訪問權限,由IP、端口和通訊協議組成的防火牆規則。

部署管理功能用於建立一個持續交付流程,它可分爲管道和階段兩大部分。

  • 管道

    這裏寫圖片描述

    部署管理的核心是管道,在Spinnaker的定義中,管道由一系列的階段(stages)組成。管道能夠人工觸發,也能夠配置爲自動觸發,好比由 Jenkins Job 完成時、Docker Images 上傳到倉庫時,CRON 定時器、其餘管道中的某一階段。同時,管道能夠配置參數和通知,能夠在管道一些階段上執行時發送郵件消息。Spinnaker 已經內置了一些階段,如執行自定義腳本、觸發 Jenkins 任務等。

  • 階段

    階段在 Spinnaker 中,能夠做爲管道的一個自動構建模塊的功能組成。咱們能夠隨意在管道中定義各個階段執行順序。Spinnaker 提供了不少階段供咱們選擇使用,好比執行發佈(Deploy)、執行自定義腳本 (script)、觸發 Jenkins 任務 (jenkins)等,功能很強大。

  • 部署策略

    這裏寫圖片描述

    Spinnaker 支持精細的部署策略,好比 紅/黑(藍/綠)部署,多階段環境部署,滾動紅/黑策略,canary 發佈等。用戶能夠爲每一個環境使用不一樣部署策略,好比,測試環境可使用紅/黑策略,生產環境使用滾動紅/黑策略,它封裝好了必須的步驟,用戶不須要複雜操做,就能夠實現企業級上線。

相關文章
相關標籤/搜索