Thursday, March 3, 2016

Docker EcoSystem

I love Docker as it helps in standardization and replication of a  development environment and is a major component of devops practice to reduce the time taken to push a  commit into production.

Today, It is a well known fact that applications are migrated in and out of various cloud platform based on TCO ( total cost of ownership) and ease of use. Any software that can handle the various environments and provide a universal approach will  be well received. Docker is fast positioning as a leader in  cloud with the addition of Docker Cloud ( through acquisition of Tutum) which helps in deployment of containers across any cloud in the universal way ( very similar to AWS Elastic Bean stalk). Docker cloud also provides access to docker hub for a minimal charge that can be used to share containerized applications.  The various components or applications provided by Docker are as follows

DockerFile 
Used to build a layered application in a container. This is very popular and is integrated with Configuration management applications  such as Ansible, Chef , Puppet to build application layers
Docker Compose
Tool for defining and running multi container applications in a stack. Pesistent volumes can also be built with it. This is defined in a YAML file which is very similar to ansible.
Docker Swarm
provides native clustering for Docker.  Very useful if we need to enable discovery and communication of applications running on multiple containers on different hosts. Also supports replication of the containers as needed.
Docker Hub
Cloud hosted service provided by docker to register public and private content developed
Docker Cloud
Cross cloud management service. Provides a single toolset for deployment of containers across any cloud platform. It would be a great asset for Docker existing users as the cloud is built on top of native Docker commands. Docker cloud is tightly integrated with Docker hub to build and deploy containers across cloud platforms.

For more information on Docker cloud, click here

Will Dockers way of deploying containers in the cloud become popular? I think so. Docker is pretty much the standard for developing containers and have now the tools for cross cloud deployment. Lets take Google Kubernetes (K8) container service as an example. Currently, it is open source and unlike AWS ECS, it can be used on any cloud platform.  As an additional read for leisure,  click here to know the advantage of Kubernetes over AWS ECS.