Spinnaker(云原生连续交付)
官网:
https://spinnaker.io/
源代码:
https://github.com/spinnaker/spinnaker
Spinnaker是一个开源的多云连续交付平台,用于以高速度和信心发布软件更改。(参考官网)
它是在Netflix上创建的,已经在数以百万计的部署中经过数百个团队的生产测试。它结合了强大且灵活的管道管理系统以及与主要云提供商的集成。
多云
跨多个云提供商进行部署,包括AWS EC2,Kubernetes,Google Compute Engine,Google Kubernetes Engine,Google App Engine,Microsoft Azure,Openstack,Cloud Foundry和Oracle Cloud Infrastructure,DC / OS即将推出。
自动发布
创建部署管道,以运行集成和系统测试,旋转服务器组和降低服务器组以及监视部署。通过git事件,Jenkins,Travis CI,Docker,CRON或其他Spinnaker管道触发管道。
内置部署最佳实践
创建和部署不可变映像,以实现更快的部署,更容易的回滚以及消除难以调试的配置漂移问题。利用内置的部署策略(例如红色/黑色和金丝雀部署)利用云中的不变基础架构。
概念 (参考
概念
)
在本页
Spinnaker是一个开源的,多云的连续交付平台,可帮助您快速而自信地发布软件更改。
大三角帆提供了两套核心功能:
此外,Spinnaker还可以通过
托管交付
在上述功能的基础上提供更高级别的体验。
应用程序管理(又名基础架构管理)
您可以使用Spinnaker的应用程序管理功能来查看和管理您的云资源。
现代技术组织运营着服务的集合,有时称为“应用程序”或“微服务”。Spinnaker应用程序对此概念进行了建模。
应用程序
,
集群
和
服务器组
是Spinnaker用来描述您的服务的关键概念。负载平衡器和防火墙描述了您的服务如何向用户公开。
具体内容可查看官方文档
https://spinnaker.io/reference/
Spinnaker 主要特性:配置一次,随时运行;随地部署,集中化管理;开源。(参考
Spinnaker 持续交付平台
)
Spinnaker 组件:
Spinnaker 最初是以实现内部的端到端持续交付为目标,作为
Asgard
的替代,该项目期望重建一个持续交付平台,能够
实现
:
-
通过灵活和可配置的管道实现可重复的自动部署
-
提供一个所有环境的全局视图,一个应用程序可以看见自己的在所属管道中的状态
-
通过一致且可靠的API,提供可编程配置
-
易于配置、维护和扩展
-
兼容Asgard特性
本文提供了这些主题的概述。
遵循 Apache 2.0 许可协议
Spinnaker 来自 Netflix,它更侧重于持续部署而不是持续集成。它可以与其他工具集成,包括 Travis 和 Jenkins,以启动测试和部署管道。它还集成了 Prometheus 和 Datadog 等监控工具,根据这些系统提供的指标可以进行部署决策。
例如,Jenkins部署使用判断的概念和收集的指标来确定最新的金丝雀部署是否导致了相关指标的下降,是否应该回滚,或者是否可以继续部署。与部署相关的一些额外的、独特的特性涵盖了我们在讨论持续部署时经常忽略的一个领域,甚至可能看起来正相反的领域,但对于成功来说却至关重要:Spinnaker 可以使持续部署不那么持续。它可以阻止某个阶段在特定时间运行,从而防止部署在应用程序生命周期的关键时刻发生。它还可以强制手动审批,以确保在业务可以从更改中获得最大收益的时候发布。事实上,持续集成和持续部署的全部要点是准备好在业务需要更改时尽快部署变更。