Netflix 开源持续交付平台 Spinnaker

发布时间 2023-05-31 11:07:59作者: GaoYanbing

软件简介

Spinnaker 是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。

Spinnaker 主要特性:配置一次,随时运行;随地部署,集中化管理;开源。

Spinnaker 组件:

Spinnaker 最初是以实现内部的端到端持续交付为目标,作为 Asgard 的替代,该项目期望重建一个持续交付平台,能够实现

  • 通过灵活和可配置的管道实现可重复的自动部署

  • 提供一个所有环境的全局视图,一个应用程序可以看见自己的在所属管道中的状态

  • 通过一致且可靠的 API,提供可编程配置

  • 易于配置、维护和扩展

  • 兼容 Asgard 特性

同时,Spinnaker 作为云平台部署工具,Spinnaker 团队和 Google、微软、Pivotal 等公司合作,致力于提供在多种平台上实现开箱即用的集群管理和部署功能。目前,Spinnaker 可以部署管理 AWS 和 Google 云平台(GCP),针对 Azure 等平台的支持也在进行中。

Spinnaker 主要包含 2 块内容,集群管理和部署管理。

集群管理功能,主要用于管理云上的资源。集群管理将云上资源做了逻辑划分:

  • 机器组:机器组是 Spinnaker 管理资源的单位。机器组标识了机器实例,并且关联了一个负载均衡器和安全组。每个机器组都拥有独立的配置信息(如机器帐号等);

  • 安全组:安全组定义了网络访问权限,也就是一般意义上的一组防火墙规则;

  • 负载均衡器:负载均衡器用于将网络流量重定向到机器组中的机器实例,负载均衡器还可以指定一系列规则,用于对机器组中的机器实例做健康检查;

  • 集群:集群是由用户定义的,对机器组的逻辑分组;

部署管理功能用于创建一个持续交付流程。部署管理的核心是管道,在 Spinnaker 的定义中,管道由一系列的阶段(stages)组成。管道可以 由 Jenkins、定时器、其他管道或者人工触发。同时,管道可以配置参数和通知,可以在管道一些节点上发出消息。Spinnaker 已经内置了一些阶 段,如执行自定义脚本、触发 Jenkins 任务等。