Quicker developer onboarding onto projects: We are all aware of development environment setup related issues when taking about onboarding developers. In my recent experience, I almost spent a week getting manually set up for a new project comprising of just 3-4 members. I had to refer to a couple of documents which were last updated a few weeks beforehand, and thus were not up to date. This led to productivity loss. In my earlier experience, I saw the usage of VM images for developer onboarding. This worked very well. However, we all know that VMs are bulky and it would be very cumbersome to set up production-like environments using VMs 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 Docker containers. One could achieve automated production-like setup using Docker, Ansible, and shell scripting. And, it becomes extremely fast to dump and recreate these environments owing to the fact that Docker is very lightweight.
Consistent and testable application environments from development to testing to staging to production: Owing to the fact that Docker provides isolated environment for application and its dependencies/binaries to run, it becomes simpler and easier to download Docker images from a local repository and run the related container in different environments.
Safely run legacy and new apps on the same server: Given the fact that Docker provides isolated environments for applications to run, one could easily run legacy and new apps on the same server. Take for an instance the example where a web application developed in the past has been tested to run on Java 5 and Tomcat 7. However, as part of business needs, it will have to use Java 8 and Tomcat 8 for new applications. Trying to run these two applications on a server is extremely difficult. One may need two different bulky VMs to achieve this. However, with Docker, it’s extremely fast and easy.
Easier to migrate to SOA over a period of time: When planning to migrate to SOA, Docker is very handy. One can extract microservices from existing bulky applications, create a Docker container for applications, including specific dependencies, deploy on the same (environment isolation) or different server, and allow other applications to access this new service.
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.
Top 5 Use Cases for Docker Adoption
This blog represents top 5 use cases why IT enterprises (product & software-service vendors) should consider adopting Dockers in their SDLC.
Join the DZone community and get the full member experience.Join For Free
The DevOps Zone is brought to you in partnership with Sonatype Nexus. The Nexus Suite helps scale your DevOps delivery with continuous component intelligence integrated into development tools, including Eclipse, IntelliJ, Jenkins, Bamboo, SonarQube and more. Schedule a demo today.
Published at DZone with permission of Ajitesh Kumar, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.