On Tue, Aug 26, 2014 at 11:03 AM, jay vyas <[email protected]> wrote:
> hi roman...
>
> Your absolutely right, and your not the first dude ive had this debate with
> :).
>
> also i think the debate can be generalized to other things, like "why use
> puppet when i can just use yum"....
>
> so anyways.. I figured Id quickly wrap up my thoughts in a blog post.
>
> http://jayunit100.blogspot.com/2014/08/why-i-still-use-vagrant-on-linux.html
>
> does that (sort of) make sense?
Here's my take on it: just like Vagrant, Docker is two things:
#1 a way to quickly spin up an ephemeral container (think docker run)
#2 a way to manage these containers (think Dockerfile)
If you're just using #1 then Vagrant and Docker are completely
complimentary. Since Vagrant takes up more resources (it uses
full VMs after all) I prefer Docker.
As for #2 both need way to "bake" VMs based on a static definition
of what they are. If you're looking for a completely portable tool
of creating those "images" I would definitely recommend Packer.
Even with Packer you still need a low-level tool for laying out the
system image just right. Puppet or Chef are good choices because
if you pick those then you're covered in the full spectrum: with the
same recipe you can bake:
* a bare metal server
* a VM
* a Docker container
Thus, here's my recommended pipeline:
0. Create Puppet code to statically define the image you want
1. Use Packer to bake variety of those images with the same code:
1.1. VMs
1.2. Docker containers
1.3. EC2 VMs
....
2. Use things like Docker/Vagrant interchangeably depending
on what env. you find yourself in (you always know that you
maintain an image for that env. anyway).
Thanks,
Roman.