今天看啥  ›  专栏  ›  小灬琦哥

Spinnaker

小灬琦哥  · 掘金  ·  · 2021-02-13 19:27
阅读 87

Spinnaker

Spinnaker 核心概念

本文大部分内容翻译自官方文档。文章结尾处给出链接。 Spinnaker 是 Netflix 开源出来的持续交付工具,目的是为研发团队提供灵活的持续交付流水线,并且支持部署到多个环境。Spinnaker 的本身也是微服务架构,所以Spinnaker本身也可以轻松的实现扩容和滚动升级。

原文:Spinnaker is an open-source, multi-cloud continuous delivery platform that helps you release software changes with high velocity and confidence.

spinnaker 是一款开源的支持多种云平台的持续部署平台,它可以帮助你快速、从容的发布软件的变更。

spinnaker 提供了两组核心的功能。

  • application management(应用管理)
  • application deployment(应用部署)

application management(应用管理)

你可以使用spinnaker去查看和管理你的云资源。一般在企业中一个应用其实类似一个“包裹”,里面包含了多个应用程序或者微服务。一个spinnaker的应用就是这样一个“包裹”的概念。Applications, clusters, 和 server groups是spinnaker中用来管理你所提供服务比较重要的概念。Load balancers and firewalls 则是用来管理怎么将你的服务提供给用户。 image

Application

Spinnaker中的Application(应用程序)是Cluster(集群)的集合,集群又是Server Group的集合。Application还包含了firewalls(防火墙)和load balancers(负载均衡)。

Cluster

cluster在spinnaker中并不是k8s的集群的一个概念,而是一个server group的逻辑的集合。

Server Group

服务组,是资源管理单位,识别可部署组件和基础配置设置,它并且关联了一个负载均衡器和安全组,当部署完毕后,服务组就相当于一组运行中的软件实例集合,如(VM 实例,Kubernetes pods)

Load Balancer

负载均衡,用于将外部网络流量重定向到服务组中的机器实例。同时还可以指定一系列规则,用来做健康监测,灵活的进行定义健康的标准以及检查的端点。

Firewall

Firewall定义了网络访问的规则。实际上是定义椅子ip范围以及通信协议和端口范围的防火墙规则。

Application deployment(应用部署)

Pipeline

image 在spinnaker中部署管理的核心就是pipeline。它包含一系列的核心动作,比如后面要说的stage。在管道中你可以从一个stage传递参数到另一个stage。你可以手动或者自动触发一个pipeline。自动触发的事件包含很多,比如一个Jenkins的任务完成后推送docker镜像到私有仓库、cron的计划任务等。

你还可以配置在pipeline中的某个阶段(pipeline的开始、结束、异常等)进行提醒,有很多的提醒方式:邮件、短信等。

Stage

stage表示的是pipeline中的一个构建功能模块。spinnaker提供了很多内置的stage,比如deploy、resize、disable、手动动作等。

Deployment strategies

image spinnaker非常擅长处理云原生应用部署。基本的策略是基于健康监测进行停止原来的server group 并且启用新的server group。spinnaker支持红/黑(蓝绿)策略、滚动红/黑策略、canary 发布。

相关链接




原文地址:访问原文地址
快照地址: 访问文章快照