This blog represents top 5 use cases why IT enterprises (product & software-service vendors) should consider adopting Dockers in their SDLC.
1. Quicker Developer Onboarding into Projects: We all are aware of development environment setup related issues when taking about developers on boarding. In my recent experience, I almost spent a week to get manually setup for a recently started project comprising of just 3-4 members. I had to refer to couple of documents which was last updated few weeks back and thus was not up to date. This led to productivity loss. In my earlier experience, I saw the usage of VMs images for developer onboarding. This worked very well. However, we all know that VM is bulky and it would be very cumbersome to setup production-like environment using VM (for every developer) where one many need to have multiple instances of web servers, databases, load balancers etc. This has been made very easy with Dockers. One could achieve automated production-like setup using Dockers, Ansible and shell scripting. And, it becomes extremely fast to dump and recreate these environments owing to the fact that Dockers is very lightweight.
2. Consistent and testable application environments from development to testing to staging to production: Owing to the fact that Dockers provide isolated environment for application and its dependencies/binariesto run, it becomes very simpler and easier to download Docker image from local repository and run the related container in different environments.
3. Safely running legacy and new apps on same server: Given the fact that Dockers provide isolated environments for application to run, one could easily run legacy and new apps on the save server. Take for an instance the example where a web application developed in the past have been tested to run on Java 5 and Tomcat 7. However, as part of business needs, it has been decided to use Java 8 and tomcat 8 for me applications. Thinking to run these two applications on a server is extremely difficult. One may need two different bulky VMs to achieve this. However, with Dockers, it’s extremely fast and easy.
4. Easier to migrate to SOA over a period of time: When planning to migrate to SOA, Dockers come very handy. One could extract micro services from existing bulky applications, create a Docker container for same including specific dependencies, deploy on same (environment isolation) or different server and, allow other applications to access this new service.
5. Easier management of horizontal scalability and elasticity: It makes it very easy and fast to start new containers on remote boxes using automation tools such as Ansible/Chef/Puppet etc.