Win a copy of Hands On Software Engineering with Python this week in the Jython/Python forum!

Deepak Vohra

+ Follow
since Jun 12, 2012
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Deepak Vohra

Docker Service Stacks are based on Docker Cloud Stack file, which has syntax of Docker Compose. Kubernetes does not support Docker Service Stacks natively.
A tool (Kompose) to convert a Compose file to Kubernetes files is available, but is not the same as Docker service stacks.
Docker provides the microservices based architecture, but some of the disadvantages are:
-Less flexibility in the choice of OS. As multiple Docker containers run on the same underlying OS, different OS are not usable for different Docker containers. A different host has to be used to use a different OS. With virtual machines different VMs may use a different OS.
-More dependency on single OS kernel. A single underlying OS kernel is a single point of failure for the Docker containers on the OS. In comparison VMs' OS are isolated and failure of single VM OS kernel does not cause all VMs to fail.
-Docker containers provide fewer persistent storage options in comparison to VMs.
Docker Swarm mode and Kubernetes are two options for Docker container orchestration. Both have some unique benefits. Kubernetes has been used in production for more than 15 years, while Docker Swarm mode is about a year new. But, Docker has some advantages over Kubernetes.

1. Docker Swarm mode supports Docker Service Stacks for developing microservices that have dependencies between them.
2. A managed service for Docker, 'Docker for AWS', is available, but a similar Kubernetes for AWS  is not available.

The objective of integrating Kubernetes is to provide an alternative Docker container orchestrator. "By adding Kubernetes support, IT teams get more options for container scheduling and orchestration. The next version of Docker EE will set up a single environment with both Swarm and Kubernetes on the same cluster and provide choice of orchestrator at deployment time. "
CI/CD is not discussed in the book. Docker with Jenkins is a Jenkins feature and not a Docker feature. The book is about Docker. Jenkins provides several plugins for Docker:
-Docker plugin
-Docker Pipeline plugin
-Amazon EC2 Container Service plugin

Kubernetes has been used in production for more than 15 years while Docker Swarm mode was introduced about a year ago. But, Docker Swarm mode has some advantages over Kubernetes:

1. Docker Swarm mode is Docker-native, which implies not external software needs to be installed.
2. Docker Swarm mode supports Docker Service Stacks for developing microservices that have dependencies between them.
3. A managed service for Docker, 'Docker for AWS', is available, but a similar Kubernetes for AWS  is not available.
4. Docker has added support for Kubernetes. "The Docker platform is getting support for Kubernetes. This means that developers and operators can build apps with Docker and seamlessly test and deploy them using both Docker Swarm and Kubernetes."

Have not used Apcera Amazon ECS for Docker container orchestration. But, a comparison "Compare Kubernetes vs ECS (Amazon EC2 Container Service)" is available at
Not all Android emulators may require  Hyper-V. Visual Studio Emulator for Android runs as a virtual machine on Hyper-V.
Though question is not related to the Docker book, the requirements are the same and not mutually exclusive as indicated:
It appears as though Docker requires a Windows 10 service to be disabled.
But that same Windows service is required for Android Studio/Emulators.

Docker requires Hyper-v to be enabled and so does Android Emulator.
Thanks Germán. Docker Swarm mode supports microservices using Docker service Stacks.
Kubernetes, Docker Swarm Mode (Docker EE), Mesos are orchestration tools for Docker containers. Several comparisons are available online. The most commonly used according to several surveys is Kubernetes. But Docker native Swarm mode is ranked 2nd.

And, only a 1-2 weeks ago, Docker EE indicated that it shall integrate Kubernetes.

"The next version of Docker EE will seamlessly integrate Kubernetes into the platform, and do so in a way to provide maximum choice for the enterprise," said David Messina, chief marketing officer for Docker.

If Docker EE integrates Kubernetes, it would imply Kubernetes might be better than Docker, but if Docker EE integrates Kubernetes, the comparison between Docker EE and Kubernetes is not relevant.
Thanks for the welcome. Please post any questions on the book or about Docker Swarm mode, or any other comments.
Automatic scaling using a Horizontal pod scaler is discussed in chapter 13.

Excerpt from chapter 13:

A horizontal pod scaler has two main benefits over  user-intervened scaling. Firstly, the scaling is automatic and secondly extra pods are not kept running consuming resources that could be used for some other application. An autoscaler may be created for a replication controller, replica set or a deployment. An  autoscaler uses heapster to collect CPU utilization of a resource, based on which it determines if more or fewer pods should be run.  Autoscaling is based on a target CPU utilization implying that the CPU utilization of a resource such as a deployment should be x%.  

Further, a Jenkins Pipeline (not Kubernetes plugin) could be used to perform a rolling update to auotscale a Kubernetes cluster (not jenkins cluster). The pipeline is run periodically or based on load on a cluster. Using a Jenkins Pipeline to perform a rolling update for auto-scaling is an example of the Automation Design Pattern.
Even enterprises prefer the cloud platforms such as AWS and Google Cloud Platform. The book discusses AWS and Google Cloud Platform. Tectonic provides "self-driving" Kubernetes to the enterprise. Tectonic is also discussed in the book. OpenShift provides one of the leading Enterprise Kubernetes platforms and OpenShift is discussed in the book. Regarding "enterprise environments  intending to be on multi/private clouds" AWS provides Virtual Private Clouds (VPCs).