Using Docker to create and manage containers makes it easier to create highly distributed systems by allowing multiple applications, worker tasks, and other processes to run autonomously on a single physical machine or across a spectrum of virtual machines.  

Apache Stratos, provides the support for Docker based cartridges as depicted in the architecture diagram below:


What is Docker?

Docker is an open platform for distributed applications. Developers and sys-admins can use docker to develop, ship, and run applications. Docker lets you quickly assemble applications from components and eliminates the friction that can come when shipping code. Docker lets you get your code tested and deployed into production as fast as possible.

Docker is a server sitting on your operating system, a client application, either a command line tool or an API call. It has a libcontainer, which is used to talk to the kernel, and a registry, which acts as a repository for all images. The repository can either be the one provided by Docker or a local version.

Docker client tells the Docker server, to create a container, using a specific image. The Docker server by proxy of libcontainer, works with the Linux kernel to create a container using that image. The container is constructed using namespaces, cgroups, chroot, amongst other kernel features to construct an isolated area for your app. Registry sits in the cloud, and provides an area to upload, download, and share your container images.

Docker support using cloud technologies

If you want to use Docker for Apache Stratos deployment, Docker itself is not production-ready. Therefore, Apache Stratos 4.1.0 provides the support for Docker using the following cloud technologies:

TechnologyDescription
Google Kubernetes Google Kubernetes is an open source project, which is a Docker management environment. With the introduction of Google Kubernetes Engine and Docker, Apache Stratos is capable to spin up hundreds of instances in a few seconds in your machine. For more information on Google Kubernetes, go to Google Cloud Platform.
Core OSCore OS is an OS, which can run Docker inside it. The uniqueness is that it only provides the Kernel and the Docker functionality as a distribution. It has Docker, SystemD, Fleet and etcd as the core components. You can create any application as a Docker container and run it on top of Core OS. For more information on Core OS, go to Core OS project.
FlannelIf you deploy two Dockers in two machines, Flannel enables communicating among the two private IP addresses. This avoids the limitation of using Dockers by bringing in the ability of performing clustering, caching etc. among Docker containers.

Apache Stratos has two levels of scalability using the integration of above cloud technologies as illustrated in the image below:


  • No labels