【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 发布等。用户能够为每一个环境使用不一样部署策略,好比,测试环境可使用红/黑策略,生产环境使用滚动红/黑策略,它封装好了必须的步骤,用户不须要复杂操做,就能够实现企业级上线。

相关文章
相关标签/搜索