0

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 ?

forum.test17
  • 2,119
  • 6
  • 30
  • 62
  • 3
    That's a broad question, isn't it? – jzonthemtn Mar 01 '17 at 14:31
  • @jbird it is, but as the vagrant clearly mentions it is used for development environments "https://www.vagrantup.com" ("Create and configure lightweight, reproducible, and portable development environments.), is it used in production servers which fulfils my needs?, I have myself used openVZ for the test setup since a year, it works flawlessly. no one has even talked about this for deploying services which puzzled me :( . My question boils down how the CRUD based services with data persistence are deployed in real world ? :) which requires stability and easy scalability. – forum.test17 Mar 01 '17 at 14:38
  • data persistence is usually not desired since it would introduce a state – hek2mgl Mar 02 '17 at 07:17

1 Answers1

1

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

Farhad Farahi
  • 35,528
  • 7
  • 73
  • 70
  • Thanks for the answer, docker seems to be solution in the beginning but from this https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-failure/, https://blog.abevoelker.com/why-i-dont-use-docker-much-anymore/, I was doubtful and wanted to skip docker, wanted to know whether there are any other stable alternative to docker ? – forum.test17 Mar 01 '17 at 14:51
  • For mentioning docker's data persistence support +1 – rocksteady Mar 01 '17 at 14:52
  • @forum.test17 Updated the answer with rkt. – Farhad Farahi Mar 02 '17 at 07:09