用微服务,Docker,Jenkins和GIT创build适当的构build或部署链
我们目前正在开始从庞大应用程序迁移到微服务。 目前正在与微服务,Docker,Jenkins和GIT一起创build适当的构build或部署链
以下是我们正在考虑的初始阶段的简单stream程。 我希望应该有更好的工具和stream程来透明地分stream这些阶段。 请build议使用最佳实践和工具来改善此stream程。
- 开发人员所做的更改将合并到Git存储库。
- jenkins启动构build并创build标记为构build版本的docker图像
- Jenkins部署Docker镜像并运行集成testing
- jenkins注册泊坞窗图像
- QA执行手动testing。 他们使用脚本,根据提供的版本下载这些图像,并通过覆盖dockerfile中提到的属性来设置testing环境。
- 我们将会为UAT提供类似的脚本
最近我回答了一个类似的问题,详情请参阅https://stackoverflow.com/a/34601820/291573 。
我们不使用Jenkins,而是使用GitLab。 我们的CI工作stream程非常通用,所以应该可以很容易地调整到Jenkins设置。 我们还使用docker-compose
进行开发,CI和生产部署,以便能够创build更复杂的微服务设置。
工作stream程
- 从本地存储库克隆应用程序
- 启动应用程序
make all
- 在本地开发堆栈中进行更改
- (可选)在隔离的本地testing堆栈中运行testing,
make TEST up setup run-tests
- 提交(触发CI)
- CIbuild立图像
- CI从构build的映像启动隔离的堆栈(通过设置自定义的
COMPOSE_PROJECT_NAME
)并执行设置操作 - CI运行testing(还有Selenium容器的验收testing)
- CI创build报告
- CI执行清理隔离的堆栈
- CI标签图像并将其推送到registry(如果testing成功)
Ressources
- CIconfiguration
- 构build脚本
- 常见的堆栈configuration
- 扩展testing堆栈configuration