基于Docker的动态器材:凡是被忽视的最佳实践
两种要领都有利益和弱点。假如构建处事器中的全部节点完全沟通,则必要行使非凡机制来处理赏罚统一器材的多个版本。另外,每个构建节点都也许很快变得过载。另一方面,这使得开拓职员的事变更轻易,由于他们可觉得他们的构建选择节点。 为差异的器材行使差异的节点办理了构建器材的版本斗嘴,由于每个节点可以在统一器材上具有差异的版本。可是,在这种环境下,操纵员必要亲近跟踪哪个器材安装在哪个节点上,并确保在新版本呈现时进级全部节点。 开拓职员还必要相识后一种要领,由于他们必需确保将构立功课发送到正确的节点。譬喻,Python开拓职员必要指定功课必要具有“python”标签的节点,而JavaScript开拓职员必要具有“javascript / npm”标签的节点,依此类推。 总之,静态构建节点对付操纵员来说必要淹灭庞大的时刻本钱。现实上,有些公司在构建节点维护上必要全职投入。 5.动态Docker器材对操纵员的甜头 行使动态Docker器材,操纵变得很是轻易。 全部节点都易于配置和维护,出格是假如现有的Kubernetes集群用于构建,这很快就会成为一种常见做法。如前所述,每个构建节点只必要安装Docker,而不必要其他任何对象。其他节点也完全沟通(按照界说)。 操纵员通过这种直截了当的要领,维护已核准的器材列表,但不必要事先安装它们; • 不体谅开拓职员行使的器材简直切版本; • 对器材进级不再认真(由于开拓职员可以本身完成); • 不再面临统一器材的多个版本的题目; • 可以在同质级呆板上事变 • 不必打点节点的标签,并跟踪哪个节点具有哪个器材。 与开拓职员的雷同很是简朴,由于独一要接头的是节点的Docker版本。 图中未表现的另一个利益来自Docker容器的速率和占用空间。行使传统的静态构建要领,纵然没有开拓职员必要功课的构建内容,操纵员也必需始终筹备好构建节点,并将其用于功课。 行使基于Docker的器材,开拓职员可以在几秒钟内按需启动器材。当没有开拓职员行使节点时,可以轻松地将节点从头分派给行使完全差异技能的另一个开拓团队。 总之,基于Docker的器材可以开释操纵员的手,并减轻他们的一般承担。 6.两种完全正交的Docker要领 本文的重点是先容行使Docker进动作态构建器材,这是本日在现实出产应用中的最佳实践,而无需现实行使Docker自己举办出产陈设。 Docker陈设工件或构建器材要领是完全独立的,您可以按照组织环境,轻松有用地殽杂和匹配这些器材。 根基上,公司内有4个也许的容器回收阶段: • 基于VM的器材,在VM上陈设(旧要领)。 • 基于VM的器材,在容器上陈设(大大都人都认识这种要领)。 • 基于Docker的器材,可在VM上陈设(从容器中获益的好要领)。 • 基于Docker的器材,在容器上陈设(完全Docker回收)。 大大都与Docker相干的消息都偏重于基于Docker的陈设,而不是基于Docker的构建器材,这使得很多组织无视后者的甜头。 从上图中可以清晰地看出,基于Docker的器材可以单独行使(而陈设如故可以针对VM /裸机)。很多组织试图通过盲目地实行在出产陈设中行使Docker,而不相识这不是独一也许的要领来遇上容器潮水。 究竟上,基于Docker的器材可觉得CI / CD流程带来更多甜头,由于它办理了开拓职员面对的很多常见出产力题目,正如我们在前面部门中看到的那样。 按需建设构建情形而不是守候冗长的供给核准的手段是开拓职员和操纵职员必要常常面临的痛点之一。 在Codefresh,我们已经为CI / CD管道实现了这种要领。每个步调都是本身的容器。想运行Node?有一个Docker镜像。想要运行Maven?有一个Docker镜像。想要举办 Canary rollout吗?有一个图像。你必要吗?你必要Terraform吗?根基上,作为Docker镜像提供的全部内容都可以用作构建步调。 您如故可以行使Codefresh陈设到传统方针(即VM和裸机),但构建平台的焦点是操作器材来行使容器和Docker镜像。 开拓职员可以建设管道,个中每个构建步调都在包括所需器材的Docker镜像的上下文中运行。版本斗嘴、器材进级和在差异版本上构建节点等题目都已成为已往。 我们将动态Docker构建器材视为一种改变开拓职员和操纵员操纵的新要领,并但愿看到它在公司和组织中得到进一步的承认。 译者先容: 刘志红,17年IT从业履历。曾在NTT DATA,Oracle,中钞造币团体,中国电信云计较分公司从事云计较等关联IT研发事变。独立拥有软件著作权1件。今朝就职于电子家产出书社。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |