close

Spring 云管道

该项目已弃用。它已迁移到:Cloud Pipelines。您可以在此处了解更多信息。

Spring,Spring Boot和Spring Cloud是允许开发人员加快创建新业务功能的时间的工具。但是众所周知,该功能只有在投入生产时才有价值。这就是公司花大量时间和资源来构建自己的部署管道的原因。

该项目试图解决以下问题:

  • 创建通用部署管道

  • 传播良好的测试和部署实践

  • 加快将功能部署到生产所需的时间

运行,配置和部署应用程序的常用方法降低了新开发人员在更改项目时融入其中所需的支持成本和时间。

当前,我们开箱即用地支持以下CI / CD系统

  • 大堂

  • 詹金斯

特征

Spring Cloud Pipelines具有以下功能

  • 自以为是的微服务管道平台

  • Jenkins使用Job DSL插件的自以为是的微服务管道

  • Jenkins使用声明性管道(Jenkinsfile)的自以为是的微服务管道

  • Cloud Foundry PaaS支持

  • Kubernetes PaaS支持

自以为是的管道如下所示:

大堂流动

流动大厅
图1.大厅中的流程

詹金斯流

流
图2. Jenkins中的流程

Spring Boot配置

该项目已弃用。它已迁移到:Cloud Pipelines。您可以在此处了解更多信息。

运行Cloud Foundry的演示

您可以通过运行默认的演示设置轻松启动,以使用Docker / PCF Dev或Minikube在本地运行整个系统。

我们提供了一个将构建和部署的演示管道-Github Webhook应用程序。

总而言之,以下项目参与其中microservice setup

  • Github Analytics-具有REST端点并使用消息传递的应用程序。我们的业务应用程序。

  • Github Webhook-发出Github Analytics使用的消息的项目。我们的业务应用程序。

  • 尤里卡-简单的尤里卡服务器。这是一个基础结构应用程序。

  • Github Analytics Stub Runner引导程序-用于与Github Analytics进行测试的Stub Runner Boot服务器。使用Eureka和消息传递。这是一个基础结构应用程序。

有关详细信息,请查看文档

大堂

  • 分叉Github Webhookhttps://github.com/spring-cloud-samples/github-analytics [Github Analytics]存储库

  • 启动PCF开发人员

  • 克隆spring-cloud-pipelines项目

  • 转到concourse文件夹

  • 运行./setup-docker-compose.sh以设置Concourse的键

  • 运行./start.sh 192.168.99.100以启动Concourse和Artifactory(例如,192.168.99.100 作为docker映像的外部IP。如果您没有Docker Machine,则可以运行./what_my_ip.sh脚本并在此处传递该值)

  • 运行./deploy_infra.sh以将基础设施应用程序(eurekastub runner)上传到您的Artifactory

  • 运行./login.sh 192.168.99.100以登录到您的Concourse(192.168.99.100Docker Machine ip在哪里-如果您正在使用localhost,则不必提供该值)

  • 设置你的credentials.yml基础上所提供的credentials-sample-cf.yml(指向你的分叉[Github的网络挂接(https://github.com/spring-cloud-samples/github-webhook)

  • 运行./set-pipeline.sh以设置管道github-webhook

  • 取消暂停并在Concourse中运行管道!

  • 管道通过后,您可以为 github-analytics

有关Kubernetes逐步指南的信息,请查阅文档

詹金斯

  • 分叉Github WebhookGithub Analytics存储库

  • 启动PCF开发人员

  • 克隆spring-cloud-pipelines项目

  • 转到jenkins文件夹

  • 运行./start.sh yourGithubUser yourGithubPass yourGithubOrg启动詹金斯和Artifactory的(yourGithubUser并且yourGithubPass 是由管道来标记分叉回购,在规定需要您Github的凭据yourGithubOrg;你也可以通过-key path_to_private_key,如果你喜欢使用基于密钥的身份验证与Git仓库的位置)

  • 运行./deploy_infra.sh以将基础设施应用程序(eurekastub runner)上传到您的Artifactory

  • 转到Jenkins并单击jenkins-pipeline-seed以生成管道作业

  • 转到github-webhook管道视图,然后单击play按钮以运行管道

对于Kubernetes逐步指南,只需查看文档即可

根据您的需求调整管道

该存储库可被视为管道的模板。我们提供了一些自以为是的实现,您可以根据自己的需要进行更改。使用它构建生产项目的最佳方法是将Spring Cloud Pipelines存储库下载为ZIP,然后在此处初始化一个Git项目并根据需要对其进行修改。

使用master分支代码的示例。您可以使用例如标签1.0.0.M8。然后您的URL将如下所示 https://github.com/spring-cloud/spring-cloud-pipelines/archive/1.0.0.M8.zip

$ curl -LOk https://github.com/spring-cloud/spring-cloud-pipelines/archive/master.zip
$ unzip master.zip
$ cd spring-cloud-pipelines-master
$ git init
$ ./gradlew customize
$ # modify the pipelines to suit your needs
$ git add .
$ git commit -m "Initial commit"
$ git remote add origin ${YOUR_REPOSITORY_URL}
$ git push origin master

您也可以克隆存储库,以防与上游存储库中的更改保持一致。为了避免发生许多合并冲突,建议使用自定义文件夹钩子覆盖函数。

SpringInitializr

快速启动您的项目

使用 Spring Initializr引导您的应用程序 。

文献资料

每个Spring项目都有自己的项目。它详细说明了如何使用项目功能以及使用它们可以实现的功能。
1.0.0.M8 PRE CURRENT 参考文件 API文件
1.0.0.BUILD-SNAPSHOT 快照 参考文件 API文件