云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

负载均衡_网吧云主机_评分榜

小七 141 0

与Jenkins和Docker建立现代的、真实世界的软件交付管道

这个博客概述了Jenkins社区中新发布的Docker插件所支持的关键用例。您可以针对每个用例使用一个深入的blog来深入研究。CloudBees团队在社区内积极工作,以发布这些插件。最近,我对精益制造如何从根本上改善产品的生产非常着迷——关键是一个完全协调的自动化交付管道。我们正处于软件计算历史上的"精益"拐点,轻量级容器即Docker和Jenkins将带来软件交付的快速改进。我建议你多读一读Kohsuke关于Jenkins和Docker的白皮书。本白皮书的执行摘要是,Docker在表达环境中提供了开发和操作团队之间的通用货币。詹金斯通过协调工作流程提供市场,使货币在这些团队之间很容易交换。CloudBees团队通过我们在Jenkins社区中的角色一直处于这些变化的前沿。我们的团队成员已经看到并经常为Jenkins和Docker提出的改进请求做出贡献,因为这个行业正在经历这个新时代。这一经验帮助我们捕获了有助于交付现代管道的规范用例。今天,我很高兴地宣布,OSS中有许多Docker插件可以帮助组织与Jenkins和Docker一起大规模采用CD。这些插件可以帮助您解决两个主要的元用例:元用例1:用Jenkins和Docker构建CD管道让我们构造一个简化的管道。以下概述的步骤提高了复杂性:Jenkins Credit Union(JCU)有一个JavaWeb应用程序,它以.war文件的形式提供,该文件运行在Tomcat容器上。在最简单的用例中,应用程序二进制和中间件容器(the.war和TC)都作为Docker容器独立构建,并"烘焙"到一个容器中,最后被推送到一个注册中心(公司"Gold"Docker image)。Docker Build and Publish插件可用于实现这一目标,它使Jenkins能够将应用程序构建并打包到Docker容器中,并将它们作为图像发布到Docker Hub等私有和公共Docker注册中心。 现在,JCU团队希望将这个容器交给QA团队进行"测试"阶段。QA团队拉动容器并测试,然后再将其推向下游。您可以将交付链扩展到"登台"和"生产"阶段和团队。在这种情况下,JCU团队可以将作业链在一起,也可以使用Jenkins Docker工作流DSL(暂时忽略这一点)来构建管道。 一切都很顺利,直到…JCU安全团队发布了关于Tomcat docker映像的安全建议。JCU安全团队更新Tomcat Docker映像并将其推送到dockerhub注册表。在这一点上,"烘焙"图像的开发工作会自动进行,并在不需要任何人工输入的情况下构建一个新的映像(应用程序二进制+中间件)。这个问题是通过Docker Hub通知插件实现的,它可以让Docker Hub触发应用程序和从环境的构建。QA作业是在烘焙过程之后触发的,也是管道执行的一部分。 尽管进行了所有可能的测试,但是Ops团队发现应用程序代码中有一个bug,他们想知道是哪个组件团队负责这个问题。Ops团队使用Docker跟踪插件特性让Jenkins知道在生产中部署了哪些位。这个插件可以让他们找到在生产中导致问题的构建。我曾经提到过,我们最初会忽略工作流,现在让我们回到它。大多数现实世界中的管道比规范的构建->测试->阶段->生产更复杂——Jenkins工作流使实现这些管道成为可能。Jenkins Docker工作流DSL在工作流中提供一流的支持,将上述用例作为表达工作流的一部分进行处理。一旦实现,工作流就变成了可执行的,一旦执行,就可以直观地看到哪个是成功的,哪些是不成功的,问题在哪里等等。上图中的红/绿图像是CloudBees-Jenkins平台中提供的工作流阶段视图功能。以上步骤为使用Jenkins构建管道设计了一个规范的用例。如果你把工作流的全部功能和通过Docker Compose启动连接的Docker容器的能力发挥出来,这些例子会变得更加复杂。元用例2:使用Docker提供构建环境JCU有多个部门,每个部门都有自己的Jenkins master和相应的策略来设置构建环境。建立一个"清洁的生产环境"的"银行业e-happen 1"的要求。他们可以使用CloudBees-Jenkins平台的Docker-Slaves特性来锁定这些环境并将其提供给他们的团队。这不仅可以确保那些构建/测试环境始终是干净的,而且还可以提供更高的隔离性,因为在给定机器上执行的任何构建都不能访问在同一台机器上同时执行的其他Jenkins作业,而是在不同的Docker主机上执行。JCU还使用CloudBees-Jenkins平台来管理多个主机,因此它们可以使用"共享配置"在所有客户机主机之间共享这些从机。用例2:CTO团队希望拥有使用定制堆栈的定制环境的灵活性。Docker自定义构建环境插件允许Docker图像和文件作为Jenkins从设备的模板,从而减少了从设备安装的管理开销,只更新了几个环境定义中的几行内容,从而可能会有数千个从设备。 这样,维护数百个甚至数千个从机的开销就减少到更改公司Docker slave Dockerfile中的几行代码。 结束语上面的用例集和相应的插件推动了组织内持续交付的边界。随着Docker经验的增长,Jenkins社区将继续构建功能以满足需求。我希望你玩的时候玩得开心。我从哪里开始?所有的插件都是开源的,所以您可以从更新中心安装它们,也可以安装CloudBees-Jenkins平台来快速获取它们。在Kohsuke的白皮书中了解Docker和Jenkins对它的影响。哈布里特·辛格 Harpreet是产品管理副总裁,总部位于CloudBees圣何塞办事处。在Twitter上关注Harpreet。