专栏首页CNCF流水线救赎:Spinnaker如何塑造SAP卓越的交付

流水线救赎:Spinnaker如何塑造SAP卓越的交付

作者:Serge Poueme

作为一名负责卓越交付的现场可靠性工程师(Site Reliability Engineer,SRE),可靠的部署对我来说很重要。我已经在SAP工作了一段时间,我很自豪能够成为他们使命的一部分:帮助世界更好地运行。信任是这一使命的核心,为了建立信任,我们必须成为社区的可靠资源。作为SRE,我们的目标是在所有方面提供可靠性,特别是在DevOps团队通常落后的方面:基础设施、部署、配置、监控和文档。因此,确定一个有效的CI/CD流水线系统,对我们的成功,以及我们的客户和合作伙伴的成功至关重要。这就是我们向Spinnaker致敬的原因。

发现Spinnaker的奇妙世界

我们的SRE团队一年前遇到了Spinnaker。我们被要求构建一个标准CI/CD流水线的蓝图,以提高开发人员的工作效率,并减少冗长的开发周期。我们立即开始了深入的研究,从GitLab、Bamboo、Jenkins、Concourse等寻找解决方案,最后敲定了Spinnaker。在进行我们的概念证明(Proof of Concept,POC)时,Spinnaker让我们的生活变得更容易了,这也让我们很容易地决定采用它的平台。

到目前为止,我们已经有了使用这个平台的很好的经验。首先,因为它的开源环境。如果我们遇到问题,Spinnaker庞大的在线社区可能有解决方案。其次,它与Slack完全集成(在SAP中已经广泛使用),允许我们的团队共享关于部署流的见解。交流是任何平台的关键,Spinnaker在这方面做得很好。

为什么我们坚持使用

Spinnaker赋予了我生命的意义 - 只是开个玩笑 - 不,但它确实帮助我到达了我想去的地方。在SAP,我的重点是CI/CD流水线标准化和创建DevOps自助服务,我可以有把握地说,Spinnaker正通过更快地推动云计算的创新做出贡献。我敢说我们在通往天堂的大道上吗?我想我能。特别是考虑到我们现在的情况:Spinnaker为我们的10个开发团队运行部署流水线。这意味着在生产中有30个Kubernetes集群,以及40个不同的部署流水线。不坏,对吧?有些团队在投入生产之前,每天要进行200次灰度(金丝雀)部署(canary)。

这是我们的一个流水线在13分钟内执行一个产品版本。

因此,由于我们的效率水平提高了,我们的速度自然也提高了。使用Spinnaker更简单,因为不涉及编码。相反,您可以在界面上获得一个易于理解的UI,并在后端获得一个可控制的环境。少一点犯错的空间,多一点创新的空间。

Spinnaker帮助我们扩展了CI/CD流水线,超出了我们业务的需要。现在,我们在全球范围内提供共享服务。因为它不仅是可扩展的,而且是难以置信的直觉 - 让队友上手轻而易举。通过利用Halyard配置工具和GitOps方法,我们可以在团队中使用自助服务模型(DaaS)。这是一个游戏规则改变者,因为在部署过程中,流水线向我们发送信号,而不是开发人员联系我们进行更改。我想我们都同意自动化是未来的趋势,Spinnaker让我们离这个目标更近了一步。

我的一个同事正在做一个很棒的项目,叫做SAP Graph,它是一个易于使用的API,用于跨应用程序构建扩展。我的同事Michael对Spinnaker感到欣喜若狂,因为它既简化了他的生活,又降低了成本。SAP “Graph是13个组件的集合,通过Spinnaker,我们能够保持部署相对简单,同时保持它们松散耦合。”他在一次团队讨论中补充道。由于与Jenkins和GitHub的兼容性,他和他的团队节省的时间和金钱是非常值得的。

“一个清晰的错误日志是任何SRE都希望拥有的最好东西之一。” - Michael Sabbagh,SAP现场可靠性工程师

Spinnaker可以提升的地方

与任何平台一样,总是有改进的空间。我发现Spinnaker缺少的一点是它缺少深入的文档。例如,我喜欢钻研Halyard配置工具之类的主题,而用户指南似乎仅限于典型的实例。如果能找到一个空间,让我们能更深入地探索Spinnaker和它的工具能为我们做些什么,那将会很有帮助。另一件事是,我们必须操作配置文件,以自动改变Spinnaker。我们的团队已经开始将Halyard嵌入到一个API中,但是我们进展缓慢,因为我们想看看Spinnaker的开发之旅会走向何方。在他们的SIG中进行的讨论可能导致使我们免于麻烦的解决办法。

https://www.spinnaker.io/community/

安全也可以做得更好,特别是围绕着Spinnaker使用的docker镜像。我认为强制扫描可以解决此问题,可以更快地覆盖盲点,保护我们免受网络攻击。当我们讨论安全问题时,我的队友William摇了摇头,“问题是在配置LDAP身份验证和授权时,在设置到Active Directory服务器的连接时,很难将企业CA证书添加到信任存储中。”Spinnaker团队确实记录了一个解决方法,但即便如此,他还是花了一段时间才在我们的自动化系统中实现了它。

总结

一般来说,Spinnaker拥有每个SRE团队都需要的部署工具集。它是开源的,这意味着它有一个社区的人们来分享经验。与Spinnaker用户进行大规模的连接不仅很容易,而且它与Slack的集成使得与队友的协作也很简单。Jenkins和GitHub也被整合到这个平台上,这使得它很容易被其他开发者采用和使用。这就是为什么我们在跨SAP提供共享服务时没有遇到任何问题的原因。以SAP Graph为例!Spinnaker帮助Mike和他的团队简化了他们的部署过程,节省了时间并把钱放回了他们的预算中。

但这并不是说这个平台是完美的。仍然有一些领域我们希望看到改进,然而,我认为Spinnaker正在做出诚实的努力来解决这些问题。当William发现一个bug时,他确定了根本原因,然后通过拉取请求提出了一个修复方案。Spinnaker很快做出了回应,然后为他提供了更多的文档,让他为这个项目做出贡献 - Spinnaker的开源又一次得到了应得的赞扬!总之,总结一下,我认为这张照片本身就说明了一切。

没有什么比看到这些亮绿色的数字更好的了。

特别感谢Jessie Metivier与我共同撰写这篇文章。

文章转载自LFAPAC。

本文分享自微信公众号 - CNCF(lf_cncf),作者:Spinnaker

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Kubernetes和容器扩展Spinnaker

    Kubernetes和容器完全改变了我们对完成工作所使用的工具的看法。扩展自动化平台需要通过fork开发定制扩展,并决定是否应该贡献上游的日子已经一去不复返了。...

    CNCF
  • Envoy 入门简单示例

    Envoy 使用 YAML 配置文件来控制代理的行为。在下面的步骤中,我们将使用静态配置接口来构建配置,也意味着所有设置都是预定义在配置文件中的。此外 Envo...

    CNCF
  • Kubernetes Informer机制源码解析

    这篇文章来源于云原生社区组织的 Kubernetes 源码研习社的作业,是个人学习Informer机制、理解Informer各个组件的设计的总结。

    CNCF
  • 为什么Spinnaker对CI / CD至关重要[DevOps]

    Spinnaker提供了独特的构建基块,以创建量身定制的,高度协作的连续输送管道。 和他们一起去参加Spinnaker峰会吧。

    yyx
  • 深入浅出mybatis之与spring集成

    在Java世界,AOP编程是非常流行的模式,大大降低了功能业务与核心业务之间的代码耦合度。而说到AOP,Spring更是业界主流实现框架。 MyBatis作为...

    2Simple
  • VMware网络设置

    踏歌行
  • 史上最全web.xml配置文件元素详解

    在servlet里面可以通过 getServletContext().getInitParameter(“context/param”)得到

    阿豪聊干货
  • 办公软件移动重铸

     移动设备出货量即将超过PC,后者在去年的出货量迎来最大跌幅,10%。越来越多的移动设备正在侵蚀着人们越来越多的时间。移动互联网正在成为世界的主宰,手机...

    罗超频道
  • Windows Kernel-内核重载(NTOS)

    这个可以通过遍历系统模块,找到第一个被加载的模块(NTOS),获得NTOS的路径,基地址,大小:

    franket
  • 洛谷P2044 [NOI2012]随机数生成器

    题目描述 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列...

    attack

扫码关注云+社区

领取腾讯云代金券