前段时间我尝试过 DevOps 的 Ops 部分,它很有趣,但我没有时间和理由在任何项目中尝试它。但是上周我开始了新工作,老板问我是否可以配置服务器来为公司项目制作诸如暂存环境之类的东西。除此之外,我开始考虑将项目迁移到更多的 DevOps 而不仅仅是开发。
我已经推出了 Docker,这对我来说非常棒而且非常简单。但是前段时间我在尝试 Puppet,所以我想到了一个问题:“有什么理由将 Puppet 与 Docker 一起使用?”。Docker 似乎做了 Puppet 会做的所有事情,但方式更简单。
PS 前段时间在 Hacker News 上有Consul,它是很好的配置和服务发现,所以即使配置也可以解决(我也在考虑实现这个)。
spu*_*der 18
Puppet 和 docker 可以做很多相同的事情,但是他们以不同的方式处理它们。
Puppet 管理文件 + 包 + 服务。(称为三连胜)。Docker 将二进制文件和配置文件封装在容器内。
在撰写本文时,docker 仍然不稳定,不应在生产中使用。在 1.0 版发布之前,许多 API 可能会更改。
即使 docker 变得稳定,将每个进程和配置文件转换为 docker 容器也将是一项艰巨的任务。
另一方面,Puppet 是一个稳定的产品,并带有完整的工具生态系统(heira、mcollective、facter、razor)。这些工具可以快速实施,而不必担心事情会破裂。
我强烈建议以下资源。
如何使用 puppet 管理应用程序堆栈的视频
https://www.youtube.com/watch?v=KSo_mcJxFIA
关于 docker 和 puppet 如何协同工作的播客
http://devopscafe.org/show/2014/1/23/devops-cafe-episode-46.html
关于如何与 docker 集成的 puppet 博客文章
http://puppetlabs.com/blog/building-puppet-based-applications-inside-docker
另一篇关于 puppet 和 docker 共存的博客文章
http://puppetlabs.com/blog/can-containers-and-configuration-management-co-exist
用于与 docker 交互的 puppet 模块
http://docs.docker.io/use/puppet/
对 devops 术语的小幅修正。Devops 更像是一种开发人员和运营商合作的软件开发方法,而不是任何特定工具。
更新
目前我的公司同时使用 puppet 和 docker。这是在 puppet conf 2014 上给出的关于为什么要使用 puppet 与 docker 的精彩演示。由 James Turnbull 提供,他是 puppetlabs 的前雇主,也是 docker 一书的作者。
https://puppetlabs.com/presentations/using-docker-puppet-james-turnbull-kickstarter
也是 sysadmincasts.com 提供的关于 docker 的一个很好的简短视频教程
https://sysadmincasts.com/episodes/31-introduction-to-docker
Docker 优点:
Docker 缺点:
木偶优点:
傀儡缺点:
目前我们使用 puppet 来配置我们的 docker 容器。docker 容器用于 jenkins 构建,并在每次构建后销毁。它运行良好,并为我们提供了一致的环境。这意味着我们只需编写一次代码,然后重新构建 ubuntu、sles 和 centos 机器。重建容器大约需要 15 到 30 分钟,并且仍然是一个手动过程。Docker 非常适合启动快速测试虚拟机,
简而言之,puppet 非常擅长管理您现有的基础设施。如果您有一个 100% linux 的绿地,并且其技术堆栈可以包含在小型临时实例中,那么 Docker 会很好。虽然某些功能重叠,但它们并不相互排斥。
| 归档时间: |
|
| 查看次数: |
20991 次 |
| 最近记录: |