Docker环境的CI/CD

2017-08-10 shmzfeng

Docker的最大好处之一是能够带来无缝的CI/CD流程;容器是Docker镜像的运行着的只读实例,更新容器仅仅需要更新镜像文件,然后从这个更新过的镜像重新部署容器。还有免费的工具可以监控镜像repository,并且在检测到镜像有更新的时候立即重新部署一个容器。但是,运行容器,创建以及更新镜像,这仍然是手动的。

将CI/CD的概念带入下一个级别是需要创建开发流水线,将软件交付流程里的所有步骤自动化。典型的单服务流水线包括如下基本步骤:

  • 构建 - 初始化构建过程,将源码转变为编译好的artifact,并且打包到Docker镜像里
  • 测试 - 使用支持你的框架的任意测试工具在Docker容器里运行单元测试。
  • 推送 - 将测试过的Docker镜像推送到Docker registry服务,比如Docker Hub上。
  • 部署 -从registry服务下载docker镜像到相应的staging/production Docker环境里。
  • 运行 - 从一个或者多个镜像里初始化容器或者服务

CI/CD的下一个逻辑上的扩展是通过webhook将开发代码repository完全集成到开发流水线上;这样,当事件,比如代码repository里发生代码提交或者merge时,就会自动执行构建-部署流水线流程。有了这样的集成,无论开发人员什么时候提交代码到repository里,几秒钟后,带有开发人员变更的Docker容器就会生成,之后就可以用于实时的集成测试了。

Emerging Technology Partners调研并且验证了当前市场上能够提供最全面的容器为中心的CI/CD特性的解决方案。我们的方案可以提供集成测试所需的完整的环境。每个build里UI测试或者性能测试都是测试的一部分,让大家可以完整测试任意提交或者PR。使用我们的解决方案,开发人员和测试任意可以快速发现regression,在staging前修复这些问题,加速了开发周期,并且节省了时间和精力。

如果你负责内部的应用程序开发团队,并且在测试或者发布频率上挣扎,那么可以给ETP电话,我们可以向你展示容器中心的CI/CD可以如何集成到你的开发流程里。

原文链接: CI/CD for Docker Environments (翻译:崔婧雯 校对:)

===========================

译者介绍

崔婧雯,现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。


用户评论
开源开发学习小组列表