Spinnaker

Spinnaker
功能特性
集群管理

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

Spinnaker 架构组件

- Deck:面向用户
UI 界面组件,提供直观简介的操作界面,可视化操作发布部署流程。 - API:面向调用
API 组件,我们可以不使用提供的UI ,直接调用API 操作,由它后台帮我们执行发布等任务。 - Gate:是
API 的网关组件,可以理解为代理,所有请求由其代理转发。 - Rosco:是构建
beta 镜像的组件,需要配置Packer 组件使用。 - Orca:是核心流程引擎组件,用来管理流程。
- Igor:是用来集成其他
CI 系统组件,如Jenkins 等一个组件。 - Echo:是通知系统组件,发送邮件等信息。
- Front50:是存储管理组件,需要配置
Redis 、Cassandra 等组件使用。 Cloud driver 是它用来适配不同的云平台的组件,比如 Kubernetes ,Google、AWS EC2、Microsoft Azure 等。Fiat 是鉴权的组件,配置权限管理,支持 OAuth 、SAML、LDAP、GitHub teams、Azure groups、Google Groups 等。

以上组件除了核心组件外,一些组价可选择配置是否启动,比如不做权限管理的话,