2017-02-22 173 views
0

我有点困惑。作为课程的一部分,我们应该使用Jenkins,Docker和Chef来设置CI和CD解决方案,但未指定流程将如何进行。厨师和码头工人

我们一直在设置Jenkins,因此对于每一个新的git commit,它都会创建一个Jenkins从属服务器,它可以为测试所需的特定容器创建一个空间,然后将其撕下并报告结果。

因此,今天一直在寻找有关使用Chef和Docker进行连续交付/部署的信息。我看到的用例如下,在Chef中指定机器部署选项,每台服务器有多少台机器,数据库等等。当詹金斯从站成功构建并测试应用程序时,该部署了。删除任何旧容器并构建新容器,处理Chef中的配置和其他必要的管理。

一直在寻找类似用例的信息,并且似乎没有关于它的超级信息。一直在与厨师供应码头工匠一起修改厨师供应插件,但关于使用例如码头插件的信息并不是非常直观。然后我偶然发现这篇文章(https://coderanger.net/provisioning/),它基本上不建议新项目开始使用厨师提供插件。

有没有我缺少的东西,这种用例不是那么受欢迎,甚至只是愚蠢?有没有其他插件,我错过了或另一个更适合厨师的设置?

提前欢呼!

回答

1

这种纯粹的程序性东西并不是真正的厨师。您可能希望使用与Jenkins直接集成的插件作为插件。或者,如果您正在谈论食谱集成测试,那么可以使用厨房码头工具和厨房专用驱动程序来处理容器管理。

编辑:上面并不是真正的问题是什么,新的答案。

您正在查找的工具通常称为资源调度程序或集群协调器。厨师可以通过厨师提供或docker食谱做到这一点。在这两者之间我会用后者。但那就是说,厨师确实不是这份工作的最佳工具。有整整一代的专用调度程序,包括Mesos + Marathon,Kubernetes,Nomad和docker-compose + swarm。在所有这些中,游牧民族可能是最简单的,但是库贝拥有一个庞大的社区,并且迅速增长。我会考虑使用Chef作为最好的中间步骤。

+0

我想几乎厨师做持续交付的一部分。使用特定应用程序创建新容器。我知道厨师提供的是一种为它设计的(https://www.youtube.com/watch?v=LTTejR-5dIU),它可以成为aws,谷歌云或码头工人的厨师供应驱动程序。我知道Jenkins可能会有一些插件,但厨师是解决方案交付部分的要求。 – mrmjauh

+0

您是否在谈论运行测试或实际生产工作? – coderanger

+0

我猜生产工作,测试是在詹金斯奴隶运行。 – mrmjauh

0

我会建议使用像kubernetes,码头群或mesos容器业务流程平台。就我个人而言,我会建议使用kubernetes,因为它是三种列出的主要平台。

厨师是一个很好的配置管理工具,使用它来配置容器是可行的,但它不是最好的解决方案。您会遇到像管理容器应该在哪里配置和监视容器状态以及如何处理它们的故障等问题。像kubernetes这样的平台会为你处理这个问题。

得到一些insigths这将是有益的: https://www.youtube.com/watch?v=24X18e4GVbk

更多阅读: http://www.devoperandi.com/how-we-do-builds-in-kubernetes/