Today, after decades of FTP-deployments and some years of git clone-approaches, containerized deployments have become very popular. We all know the discussion about monolithic applications and microservices. There are pros and cons for both but microservices became more popular in the past years. Today I would like to know how you build your containerized applications and deploy them: as one single, runs-everything image or with docker-compose files that run all services of the application as their own container (or maybe via Kubernetes)?
An example for a monolithic app could be a Dockerfile that installs PHP, MySQL, nginx and Redis on top of an Alpine base image. Configuration for all services is put into the image and it's ready to serve the application by just running the image built with this Dockerfile.
An example for a microservice-like app could be a docker-compose file that runs one built image that contains the app itself (maybe bundled with PHP or nginx) and MySQL, nginx and Redis as separate containers.
What are you using and why? What are your experiences and which method do you recommend?
Emil Moe
Senior Data Engineer
Are people installing several Docker instances on a single Cloud Server? I buy a separate Cloud Server per project, so I don't think Docker is a question. I use 1 Docker container per project on my development environment.