Search code examples
dockervagrantopenvz

Which platform is mostly used in production servers to develop and deploy "application services"


I need to decouple my single monolithic application to "micro services" and each module is a combination of (application server + database).

Wondering out of this

  • Vagrant
  • OpenVZ
  • Docker (not preferred choice as it doest not support data persistence)

which one is used in production servers ?


Solution

  • TL;DR: Docker and RKT are enterprise choices, Docker has much wider community, attention and impelmentation.

    First of all, Docker supports data persistence. You can easily do this via volumes, and lots of drivers available for different storage backends.

    Docker Philosophy: Microservices.

    Google started using containers in 2000s, Lots of enterprises use containers under heavy load today. Docker is one of the best implementations there is. So Definitely docker depending on your needs and environment.

    Vagrant is for development environments. You can even use docker inside, or no vagrant local docker.

    OpenVZ has focussed on setting up VPS containers that you decorate yourself manually. Therefore they provide templates for empty linux machines that you can start up and shut down, that you afterward SSH into, to set them up yourself with whatever you need, like a LAMP stack.

    OpenVZ vs Docker: OpenVZ sees a container as a VPS, and docker sees a container as an application/service. So definitely docker for microservices.

    RKT, functionally docker is all similar to rkt; however, along with "Docker Images", rkt can also download and run "App Container Images" (ACIs). Besides also supporting ACIs, rkt has a substantially different architecture that is designed with composability and security in mind.

    rkt has no centralized "init" daemon, instead launching containers directly from client commands, making it compatible with init systems such as systemd, upstart, and others.

    rkt uses standard Unix group permissions to allow privilege separation between different operations. Once the rkt data directory is correctly set up, container image downloads and signature verification can run as a non-privileged user.

    enter image description here