Praveen Kumar
Praveen Kumar

Reputation: 815

Docker containerized monolithic application

We have just started a new project using Spring boot, which will have a monolithic architecture. There are some talks about using docker for containerizing the application.

Are there any benefits other than easier deployment across different platforms?

I would also like to understand whether auto scaling applies here. If yes, how?

Thanks in advance!

Upvotes: 0

Views: 596

Answers (2)

Matteo Ugolotti
Matteo Ugolotti

Reputation: 367

I think it really depends on the scale of your application. The main benefit will certainly be ease of deployments and development, either on premise or on a cloud provider.

If you are running other applications along with Spring, like a database, cache server or other applications, you should have a look at docker-compose. It would really simplify not just the deployment of the Spring app, but also of all its dependencies.

Docker could help a lot also in case you plan to scale your application to multiple nodes, using docker swarm.

As for autoscaling, it is not really supported by docker out of the box, but you could achieve it with other tools on top of docker swarm.

Upvotes: 1

Victor
Victor

Reputation: 3698

I just would like to add that lots of people tend to focus on the deployment, but the advantages for cyber security are enormous. The process isolation in the bounds of what could be seen as an advanced jail by itself could make the case for Docker.

Another advantage is the complement it provides for you CI/CD efforts and methodologies. By including the process of building imagens in the app building process, one gets better control of the overall process including a better view of the cycles.

Besides that, you also expand the number of ecosystems where you application can be easily installed and run. Added the support of a swarm or kubernets you got yourself access the the current hardened and managed could solutions.

With a stretch we can talk about scalability, if your image is meant to cooperate with replicas of itself, or if you put your containers were the hardware is itself elastic. Scalability also comes in to the discussion when you use means to control hardware usage in order to prevented services for competing for resources. This is also true if you do not have a cluster, as you can also manage hardware usage within a host.

Now it really depends on your needs and ninche. Some environments for instance would benefit in obvious ways even if scalability is not a concern. The inner networks you can create for instance is an excellent excuse to implement Docker, you get process isolation and network isolation inside a small host. Of course Docker is not meant to be a cybersec solution, but it adds up to the ones you already have.

Upvotes: 1

Related Questions