Wednesday, March 23, 2016

Docker Ecosystem

Docker is a containerization platform that is used to develop, distribute and deploy applications in a portable and predictable way.

It accomplishes this by packaging components and their dependencies into standardized, lightweight process environments called Docker containers.

Docker containerization is especially useful in distributed systems, where there is a need to scale automatically, based on configuration profiles and resource utilization.

After 3 years, a lot of software has been developed around this containerization platform. See diagram below.


Containers v. VMs

Containers are much lighter than VMs.

Whereas VMs require a separate, entire guest operating system for each VM, Docker containers only require a single Docker Engine per workstation and all that is packaged in the container are the applications and their direct library dependencies.

Development/Deployment Implications

Now, we're finally able to configure develop our microservices in a Docker container in our local development workstation.

We can tune our apps locally and have confidence that our deliverables that are deployed via our continuous integration and continuous deployment processes are consistent with our dev environment.

References


This work is licensed under the Creative Commons Attribution 3.0 Unported License.