Spinnaker之准备篇

Spinnaker相关概念

Preface

一直使用IBM的uRelease和uDeploy来作为公司项目的CD工具,但由于公司对这个的管控以及私有化定制造成一系列的不变,至少在我们的项目中每次releas都让人觉得比较troublesome。然后运维Team引入CD2.0的东东,逐步替代原先的发布方式,仔细一看原来是Spinnaker

Application management

可以使用SpinnakerApplication management这个特性去查看和管理你云端的资源。

Applications, clusters, server groups是Spinnaker用于描述你服务的核心概念。

Load Balancers和Firewalls用于描述如何将你的服务暴露给用户。

Spinnaker之准备篇

Application

Application就是一个由多个Cluster组成的集合。而每个Cluster又是由多个Server Group组成的集合。 Application通常还包括多个Load Balancer和多个Firewall

Application代表了你将要使用Spinnaker去部署的服务,以及该服务的所有配置和将在其上运行的所有基础结构。

Cluster

首先需要知道,这里的Cluster与Kubernetes中的Cluster是无关的,不是一个概念,它在Spinnaker中只不过是Server Groups的一个集合。

Spinnaker中,你可以自己定义Cluster,它是Server Groups的逻辑分组。

Server Group

其实每一个Server Group就是一个比较基础的资源。它标识了可部署的artifact(如:VM image、Docker image、 source location) 和基础的配置设置(如实例数,自动扩展策略,元数据等)。
同时,这个资源可以选择与负载均衡器(load balancer)和防火墙(firewall)关联。 当被部署,一个Server Group是一个运行软件实例的集合(VM instances,Kubernetes pods)。

Load Balancer

负载均衡器与入口协议和端口范围相关联。它平衡Server Group中多个实例的流量。

(可选)您可以启用负载均衡器的运行状况检查,并可以灵活地定义运行状况标准并指定运行状况检查端点。

Firewall

定义网络流量的访问策略。

它实际上是一组由相关通信协议和一定范围的IP端口定义的防火墙规则。

Application deployment

可以使用SpinnakerApplication deployment功能来构建和管理持续交付的工作流。

Pipeline:

Spinnaker之准备篇

这个pipelineSpinnaker中是一个核心的部署管理结构。 它是由一系列行为组成,被称为stage。 其中可以沿pipeline在各个stage之间传递参数。

可以手动启动一个pipeline,也可以配置pipeline通过事件自动触发,如通过一个Jenkins job来完成,或者一个新的docker image出现在注册表里,亦或一个linux的cron job, 或者在另一个pipeline的某个stage中触发。

pipeline执行过程中,可以配置它在相关去发通知,通过email,Slack或者SMS去发给相关人或组织。(比如start, complete, fail)

Stage

Spinnaker中,Stagepipeline中的基本组成部分,描述了pipeline将执行的动作。

Deployment strategies

  • 红色/黑色(又称蓝色/绿色)策略,
  • 滚动的红色/黑色
  • 金丝雀策略

Spinnaker之准备篇

了解这个有啥卵用呢?其实不慌!了解了Spinnaker的基本概念后,接下来在后续章节再看这些东西怎么用的吧。