LinuxServicesSaaSSpinnaker

Posted 炼狱腾蛇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinuxServicesSaaSSpinnaker相关的知识,希望对你有一定的参考价值。

1. 简介

1.1. 说明:

Spinnaker 是 Netflix 的开源项目,是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。Spinnaker 通过将发布和各个云平台解耦,来将部署流程流水线化,从而降低平台迁移或多云品台部署应用的复杂度,它本身内部支持 Google、AWS EC2、Microsoft Azure、Kubernetes和 OpenStack 等云平台,并且它可以无缝集成其他持续集成(CI)流程,如 git、Jenkins、Travis CI、Docker registry、cron 调度器等。简而言之,Spinnaker 是致力于提供在多种平台上实现开箱即用的集群管理和部署功能的平台。

1.2. 官方网站:

https://www.spinnaker.io

1.3. Ebook

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

1.4. 参考文章

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

 

 

2. 架构

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

以上是关于LinuxServicesSaaSSpinnaker的主要内容,如果未能解决你的问题,请参考以下文章