Meet the Dockers
Cobe’s view of Docker and a missing piece of the puzzle…
Unless you’ve been living under a rock, chances are that you’ve heard of Docker. Wikipedia describes Docker as:
“an open-source project that automates the deployment of software applications inside containers by providing an additional layer of abstraction and automation of OS-level virtualization on Linux.”
But there are MUCH better ways of introducing this technology!
Let’s start with: What is a container?
Containers are a generalized term in the industry and are very simple.
Docker is the container of choice and has many advantages over other implementations of containers.
- Developers can package dependencies with their apps in Docker containers for portability and predictability.
- Docker allows developers to create a container on any machine that can host containers.
- The package will come up in the same form with anything your app requires regardless of where you run it.
Users will create a Docker image anywhere they want to on their own local machine, in AWS, VMs or bare metal for example — and run the image in a pre-determined, guaranteed fashion.
When deploying a Docker app, developers will use Docker libraries specific to the application. For example, if building an app that did image manipulation, the container will need access to a set of libraries to do with GIFS, PNGS, that your app needs to run. These are the app dependencies that developers need to decide on i.e. what libraries will the app call, what function is needed. That creates a dependencies list.
All of those dependencies will be packaged alongside the app in the container. What’s important for the developer is to have transparency into these dependencies — if one library is updated or a dependencies changes, how will that impact the container?
Having a visual representation of your container dependencies can be extremely beneficial as Docker containers are scaled.
Best Reason to Use Docker
Docker offers many benefits from continuous deployment and testing to portability across multi-cloud platforms to version control, isolation and security. The main reason I like Docker is its ease of shipping. I can orchestrate my containers, scale them and ensure that they are resilient.
Containers by themselves are not a new technology. By providing standard APIs that made containers easy to use and creating a way for the community to collaborate around libraries of containers, Docker has radically changed the face of the technology landscape.
What happens next…
Docker containers are a great way to develop and deploy microservice-based applications. As these become more widely adopted there comes a point where organisations will need a solution to effectively schedule and manage containers.
This is where orchestration tools like Kubernetes come into play by automating deployment, scaling, and management of containerized applications.
The missing piece of the puzzle
Cobe recently described some of the common mistakes people make with Kubernetes, and the problems with Kubernetes clusters — Kubernetes can be a complex and time consuming undertaking, with requirement for manual intervention.
Cobe provides a visual representation of microservice-based applications, and their dependencies, in Kubernetes. This significantly reduces the amount of human intervention required to identify anomalies, understand interdependencies and categorise impact.
See for yourself, and let us know what you think!
Author: Matt Porter, Lead Software Architect, Cobe.io