Airbnb改进部署管道安全性,规范部署顺序

\u003cp\u003eAirbnb软件工程实习生Alexander Katz最近撰写了一篇文章,介绍了他们的团队在\u003ca href=\"https://medium.com/airbnb-engineering/introducing-deploy-pipelines-to-airbnb-fc804ac2a157\"\u003eAirbnb部署系统\u003c/a\u003e中所做的改进。Airbnb的内部部署服务Deployboard每天为成千上万个服务进行数千个部署。但是,这个工具没有强制部署顺序,导致工程师在某些情况下可以将代码直接推送到生产环境中。\u003c/p\u003e\n\u003cp\u003eKatz表示,Deployboard负责部署构成Airbnb基础设施和产品的服务。这些服务中的每一个都有自己的一系列环境,允许分阶段将变更推到生产环境。Katz还指出,“在Airbnb,我们为工程师提供了极大的自由和灵活性,我们为此感到自豪。也就是说,任何一个工程师都可以轻松地进行任意环境的部署”。这种策略越来越多地被大型组织所采用,例如,Netflix工程团队提供了“混合容器”平台和部署系统,鼓励采用最佳实践,但不阻止必要的改变。\u003c/p\u003e\n\u003cp\u003eKatz解释说,他们的部署工具缺少一种保证机制,无法阻止工程师以错误的顺序部署变更。此外,服务部署流程相关的文档大都过时了。在最近的QCon演讲中,如何持续更新文档被认为是一项艰巨的挑战,比如来自LinkedIn的Michael Kehoe做了“\u003ca href=\"https://www.infoq.com/news/2018/11/production-readiness-linkedin\"\u003e构建生产就绪的应用程序\u003c/a\u003e”的演讲。由于Airbnb的工程师可以自由地部署服务,而且不保证它们一定会正常运行,所以Katz表示,解决这个问题将成为高度优先事项。\u003c/p\u003e\n\u003cp\u003e建议的解决方案是将服务的部署阶段分为强制目标和可选目标,并按顺序显示。还添加了评论,帮助用户了解每个阶段的目的。Katz指出,专注于直观的设计是至关重要的,因为“几乎所有Airbnb工程师都会定期与Deployboard发生交互,这些交互通常都很短,更多的是一种达到目的的手段”。\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://static001.infoq.cn/resource/image/a3/6d/a3dbb430f73b52df22b705b7dcbfc86d.png\" alt=\"\" /\u003e\u003cbr /\u003e\nDeployboard最新的管道视图(感谢\u003ca href=\"https://medium.com/airbnb-engineering/introducing-deploy-pipelines-to-airbnb-fc804ac2a157\"\u003eAirbnb\u003c/a\u003e提供图片)\u003c/p\u003e\n\u003cp\u003eAirbnb将\u003ca href=\"https://www.infoq.com/configuration_management\"\u003e配置视为代码\u003c/a\u003e,这意味着Katz和他的团队要迈出的第一步是为定义部署管道的配置文件定义规范。Katz指出,部署本身是由管道处理的,这意味着可以使用管道来更新自己的配置。Katz说,“如果一个管道以某种方式获得了损坏的配置,就无法通过直接的方法来修复”。因此,如果发生这种情况,他们必须开发工具来拯救管道。\u003c/p\u003e\n\u003cp\u003e通过这些变更,可以由服务团队来定义和管理管道。由于管道定义本身就是代码,所以可以将管道变更的验证作为管道自身生命周期的一部分。Katz指出,团队评估了针对这个问题的外部解决方案,并可能在不久的将来采用其中的一个。对于感兴趣的读者,InfoQ之前已经介绍了很多潜在的解决方案,如\u003ca href=\"https://www.infoq.com/news/2018/03/jenkins-x-kubernetes\"\u003eJenkins X\u003c/a\u003e、\u003ca href=\"https://www.infoq.com/presentations/spring-cloud-pipelines-spinnaker\"\u003eSpring Cloud Pipelines和Spinnaker\u003c/a\u003e以及\u003ca href=\"https://www.infoq.com/news/2018/09/microsoft-azure-pipelines\"\u003eAzure Pipelines\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e查看英文原文\u003c/strong\u003e:\u003ca href=\"https://www.infoq.com/news/2019/02/airbnb-deployment-pipelines\"\u003ehttps://www.infoq.com/news/2019/02/airbnb-deployment-pipelines\u003c/a\u003e\u003c/p\u003e\n

你可能感兴趣的:(Airbnb改进部署管道安全性,规范部署顺序)