作者: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。