用微服务,Docker,Jenkins和GIT创build适当的构build或部署链

我们目前正在开始从庞大应用程序迁移到微服务。 目前正在与微服务,Docker,Jenkins和GIT一起创build适当的构build或部署链

以下是我们正在考虑的初始阶段的简单stream程。 我希望应该有更好的工具和stream程来透明地分stream这些阶段。 请build议使用最佳实践和工具来改善此stream程。

  1. 开发人员所做的更改将合并到Git存储库。
  2. jenkins启动构build并创build标记为构build版本的docker图像
  3. Jenkins部署Docker镜像并运行集成testing
  4. jenkins注册泊坞窗图像
  5. QA执行手动testing。 他们使用脚本,根据提供的版本下载这些图像,并通过覆盖dockerfile中提到的属性来设置testing环境。
  6. 我们将会为UAT提供类似的脚本

最近我回答了一个类似的问题,详情请参阅https://stackoverflow.com/a/34601820/291573

我们不使用Jenkins,而是使用GitLab。 我们的CI工作stream程非常通用,所以应该可以很容易地调整到Jenkins设置。 我们还使用docker-compose进行开发,CI和生产部署,以便能够创build更复杂的微服务设置。

工作stream程

  1. 从本地存储库克隆应用程序
  2. 启动应用程序make all
  3. 在本地开发堆栈中进行更改
  4. (可选)在隔离的本地testing堆栈中运行testing, make TEST up setup run-tests
  5. 提交(触发CI)
  6. CIbuild立图像
  7. CI从构build的映像启动隔离的堆栈(通过设置自定义的COMPOSE_PROJECT_NAME )并执行设置操作
  8. CI运行testing(还有Selenium容器的验收testing)
  9. CI创build报告
  10. CI执行清理隔离的堆栈
  11. CI标签图像并将其推送到registry(如果testing成功)

Ressources

  • CIconfiguration
  • 构build脚本
  • 常见的堆栈configuration
  • 扩展testing堆栈configuration