spinnaker_为什么Spinnaker对CI / CD至关重要

spinnaker

需要许多工具才能将工件交付生产。 用于构建和测试的工具,用于创建可部署工件(例如容器映像)的工具,用于身份验证和授权的工具,用于维护基础结构的工具等等。 将这些工具无缝集成到工作流程中可能对工程文化具有革命性意义,但您自己进行这项工作可能是一项艰巨的任务。

随着组织的成熟,工具的数量和管理它们的人数都趋于增长,这常常导致混乱和混乱。 定制的连续交付(CD)过程可能会在较小的规模上起作用,但是维护和理解它变得越来越具有挑战性。 新工程师要花很长时间才能发现并整理部署最简单的变更所需的所有工具。

创建大三角帆就是为了解决这个问题。 它是一种可扩展的通用工具,可为用户提供构建定制的连续交付管道的基础。 当您可以使用已被Netflix和Google等主要公司信任和开发的解决方案来处理成千上万的应用程序交付时,无需花费时间并冒着更大的风险来发明自己的方法。

大三角帆的起源

Netflix曾经有一个零散的连续交付故事。 每个组织的交付系统都是专门为该组织构建的,因此其他组织通常无法从该工作中受益。 团队认为自己与众不同,并与Asgard一起致力于Jenkins的工作。 所有这些重复的工作不仅浪费,而且使得保持团队精明和最新的最佳交付实践变得很困难。

2014年,团队同意Jenkins之类的通用持续集成(CI)工具无法为构建具有所需安全性和灵活性的连续交付平台提供合适的基础。 为此,一个新的工具诞生了。 Netflix的交付工程团队与Google合作构建了Spinnaker,这是一个多云连续交付和基础架构管理工具,可以进行集中管理和灵活调整,以使团队可以自定义交付内容,但要进行标准化,以为所有人带来最佳实践和安全性。 Spinnaker汇集了我们数十年的经验,将软件编写和交付到每个人都可以使用的东西中,而无需经历同样的烦恼。

自从Spinnaker在开源社区中被广泛采用以来,维护者一直在不断增加新功能和集成,从而使Spinnaker在Netflix,Google,Airbnb,Pinterest和Snap等公司中变得更加有用和强大。

实践中的大三角帆

使用Spinnaker,您可以构建由阶段组成的灵活管道,以按所需方式交付软件。 您可以有一个“部署”阶段,该阶段使用“蓝/绿”策略零停机来协调新基础架构的创建和清理。 如果要对发布过程进行更直接的控制,可以添加一个手动判断阶段,等待外部确认。 这些阶段可以编织成能够代表复杂和自定义交付工作流程的管道。

Canary阶段,该阶段评估一组指标以确定部署是否正常。 在Spinnaker之前,许多团队无法在其部署管道中使用金丝雀,因为它太麻烦了,无法与他们的旧金丝雀系统集成。 “包括电池”的Canary阶段是胡萝卜,这使很多团队都来到了Spinnaker。

如果您需要自定义行为,那么阶段还可以提供扩展点来封装特定于您的组织或团队的逻辑。 这些扩展可以是开放源代码,也可以是封闭源代码。 例如,您可以添加自定义功能,以更新Jira票证的状态,刷新缓存或为数据库快照。

三角帆定制

作为通用工具,Spinnaker可以开箱即用地做很多事情。 但是,自定义它时确实会发光。 当您将集成添加到组织中的其他工具或共享最佳实践时,帮助团队安全可靠地部署和操作软件变得更加容易。

Spinnaker concepts hierarchy

我们为Spinnaker添加了各种自定义集成,以使其具有粘性。 以下内容可能引发有关如何自定义Spinnaker以适合您的组织的想法。

提高开发人员效率

我们已经完成的一个简单的UI自定义操作是,在每个实例旁边都有一个图标,可让您将SSH命令复制到该实例。 我们通过使用特定于Netflix的组件覆盖UI中的“实例详细信息”面板来做到这一点,该组件从配置文件中获取一些信息(基本SSH命令),将实例ID插入到该命令中,并将其用作剪贴板上的一个小按钮实例ID旁边。

提高安全性

在过去的五年中,我们与安全团队紧密合作,将最佳实践应用于Spinnaker。 其中一个示例是我们如何为每个应用程序自动创建身份和访问管理(IAM)角色,并使用这些角色来限制谁可以在AWS中执行操作,从而为每个团队提供完成工作所需的权限。

我们使用两个部分来实现这一目标:(1)我们将自定义类添加到Clouddriver (执行云操作的微服务)中,该类与(2)我们的安全团队维护的Lambda函数进行对话。

对于每个云更改操作,我们都会与AWS进行检查,以了解该应用名称是否存在IAM角色; 如果没有,我们将与安全服务联系以查看是否应创建一个。 如果需要创建角色,我们会将该安全服务与所需信息一起调用,以确保成功创建IAM角色。

通过此设置,我们可以轻松控制启动每个实例的IAM配置文件,同时将IAM功能的实质内容留给安全团队。 这为他们提供了更改实施,添加功能或进行其他审核的灵活性,而无需更改Spinnaker。

我们经常使用大三角帆挂钩的模式以及由此产生的合作伙伴团队服务电话。 它有助于将Spinnaker的关注点(用作交付平台)与合作伙伴团队管理的关注点分开,例如安全性。 这种分离还支持合作伙伴团队独立创新的能力,从而为我们的用户带来更好,更安全的交付体验。

改善可追溯性和审核

自定义集成的最后一个示例是将Spinnaker事件流发送到另一个服务。 Spinnaker会执行很多变异操作,通常您可能需要记录这些事件以进行审核或合规性目的。 我们会将所有事件发送到我们的大数据存储,以便公司中的其他团队可以使用这些数据。

我们还管理符合PCI的环境。 以前,我们有一个位于同一位置的Spinnaker实例,该实例在此隔离的环境中运行以保持合规性。 今年,我们在Spinnaker中启用了Fiat授权微服务,对其进行了加固,并收敛于使用单个Spinnaker维护所有属性。

结论

连续交付很难正确完成。 Spinnaker是一个经过强化和维护良好的工具(上个月有大约460个合并的请求请求),它与流行的服务已有许多现有集成,同时还支持自定义集成以提高灵活性。 像Netflix,Google,Amazon,Nike,Cisco和Salesforce这样的大公司正在为Spinnaker做出积极贡献。 采用Spinnaker可让您集中进行连续交付并获得最佳实践。 与其重新发明轮子,何不加入Spinnaker社区?


如果您对此主题感兴趣,请在11月15日至17日在圣地亚哥举行的大三角帆峰会上与交付空间中的用户,维护人员和其他人员进行讨论。

翻译自: https://opensource.com/article/19/8/why-spinnaker-matters-cicd

spinnaker

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值