I am a web developer, but I am also interested in a few administrative tasks. Hence, the new move from pure administration to dev-ops comes handy for me.
Anyway, I have some problems to put a few things into a relationship. Maybe there isn't any, so I wanted to ask for help to clarify.
Basically, what I want to put into relation is four types of software (from my understanding). The exact products don't matter, you can place any similar software as an alternative:
- Vagrant: From my understanding is to automate creation and management of VMs: Setting them up, starting and stopping them. This can be done using a local VM or remote, e.g. on a cloud platform.
- Docker: A "lightweight VM", based on a few Linux kernel concepts, which can be used to run processes in isolation, e.g. in a shared web hosting environment.
- Chef: A tool to setup and configure an operating system, e.g. inside a VM.
- OpenStack: A tool that allows you to build your own private cloud, hence comparable to something such as AWS.
Question #1: Are my explanations right, or am I wrong with some (or all) of these consumptions?
Question #2: How could I mix all those tools? Would that make any sense?
In my imagination and from my point of understanding, you could go and
- use OpenStack to build your own cloud,
- use Vagrant to manage the VMs run in the cloud,
- use Chef to setup these VMs
- and finally use Docker to run processes inside the VMs.
Is this correct? And if so, can you give me an advice in how to start using all this (it's quite a lot at the same time, and I don't know yet where to start)?