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.

Reply via email to