领先一步
VMware提供培训和认证,以加速您的进步。
了解更多Spring Cloud Pipelines 是一个GitHub项目,旨在解决以下问题:
创建通用的部署流水线
推广良好的测试和部署实践
减少将功能部署到生产环境所需的时间。
第一次提交发生在2016年8月31日。从那时起,我们收到了社区关于建议的部署流水线及其具体可视化的许多反馈。这两年来,我们成功构建的最重要功能包括:
定制化的部署流水线设置
流水线脚本,用于验证项目的向后兼容性并允许零停机部署
支持PHP、.NET、NodeJS和JVM(Maven & Gradle)项目
Cloud Foundry部署选项
Kubernetes部署选项
Ansible部署选项
使用Jenkins Job DSL在Jenkins中可视化流水线
使用Jenkinsfile在Jenkins中可视化流水线
在Concourse中可视化流水线
我们想宣布Spring Cloud Pipelines的下一个1.0.0.M9 版本发布,这也是其当前形式的最后一个版本。
由于我是Spring Cloud团队的成员,我们决定将其置于Spring Cloud的保护伞下。除此之外,该项目与Spring Cloud无关,更不用说Spring本身了。
因此,我们决定将项目拆分成多个部分,重命名它,并将其放入一个单独的GitHub组织中。
Spring Cloud Pipelines 有了一个新的家和一个新的名字。该项目现在位于GitHub的Cloud Pipelines 组织下。因此,该项目被拆分为以下几个部分:
脚本:包含部署流水线的核心逻辑。您可以将此存储库称为recipes
(配方)。每个配方包含部署流水线的一个步骤。文档在此。
项目爬虫:从代码库管理服务获取数据的抽象层。
流水线基础:CI服务器使用的Docker基础镜像。
将项目迁移到新的组织后,我们决定将其标记为**功能完整**。我们已经在Spinnaker上工作了一段时间,并计划投资于启用Cloud Pipelines配方,以便在Spinnaker上运行回滚测试和契约测试。对于部署策略等其他重叠领域,我们希望依赖Spinnaker的抽象。当然,我们将促进围绕项目以及与问题、请求请求和发布相关的任务的任何讨论,但我们可以安全地声明该项目将完全由社区驱动和维护。
如果您有兴趣将您的项目从Spring Cloud Pipelines迁移到Cloud Pipelines,您应该查看迁移指南:
Spinnaker是一个开源的多云持续交付平台,最初由Netflix启动,但现在拥有来自Google、Amazon、Pivotal和许多其他公司的更广泛的贡献者社区。Spring团队和Pivotal Cloud R&D的合作努力使得Spinnaker支持Cloud Foundry。
Spinnaker使我们能够访问更广泛的支持的云提供商,而无需重新创建这些交互。
Cloud Pipelines中关于零停机部署和回滚测试的迄今为止的工作揭示了像Spinnaker这样的持续交付平台的关键价值,该平台单独维护已部署环境中资产的清单。
在Cloud Pipelines中,当前生产系统状态未被存储。为了减轻这个问题,我们使用Git标签来存储状态。但是,当进行手动部署或回滚时,这很容易被破坏。此外,生产系统状态可能跨越多个版本(跨云提供商或区域),通常无法简化为可以存储在标签中的单个值。例如,执行回滚测试的Spinnaker流水线可以自由地使用Spinnaker对系统状态的了解来将回滚测试上下文化到目标区域中的生产版本,彼此独立。
Cloud Pipelines中提供的部署选项是有限的。Spinnaker将蓝绿部署、滚动推送、零停机和自动金丝雀分析部署功能推广到一系列支持的云提供商。
更具体地说,考虑蓝绿部署。Spinnaker支持蓝绿部署,同时维护任意数量的先前版本服务器组。从下面的示例中应用程序的当前版本来看,您只需一步即可回滚到与最新版本相差几个版本的应用程序版本。在任何时候,我们都可以选择销毁V022,
有效地使其无法回滚。这种情况可能发生在部署活动之外(例如为了释放容量),使得无状态系统较难处理更改。
我们欢迎您以各种形式提供意见。如果您对Spinnaker有疑问,请在Stack Overflow上提问并使用#spinnaker
标签。对于Cloud Pipelines,请在GitHub上提问。如果您想参与代码开发,我们欢迎您提交请求请求。如果您发现问题,请在GitHub上提交问题。