Docker® Standard Support Overview
Note: This document is updated based on Jelastic version 4.6.
Jelastic PaaS&CaaS, with the tight integration of Docker standard support, represents a joint platform for developers and allows to easily host and manage all types of applications with microservices architecture pattern, that are available by means of Docker templates. Docker containers’ lightweight, simplicity, portability and appeal to developers is a positive addition to Jelastic’s flexibility and technological superiority in the cloud market, that is provided within a wide choice of datacenters and hosting companies around the world.
This was implemented by means of two leading hosting solutions’ consolidation: Docker application delivery approach and Virtuozzo container-based virtualization. Docker, Jelastic and Virtuozzo are complementary to each other. Docker technology addresses application assembly, delivery and portability, Jelastic provides orchestration and management for hosting applications in the cloud, and Virtuozzo offers high performance and secure container and storage infrastructure.
Below we’ll answer the key questions you may be interested in:
Technical Implementation Details
In order to delve into the technical implementation of Virtuozzo and Docker’s consolidation, let’s firstly consider each of the integrated solutions in more details.
- Docker® is a special technology for automation of deployment processes and applications’ management inside environments, which became extremly popular due to its two main features: Docker Engine (a portable, lightweight runtime and packaging tool) and Docker Hub (a cloud service for sharing applications and automating workflows). It allows packaging of the necessary application or service with all its dependencies into a container, that can be easily transferred to any Linux-based x86-64 platform with support of cgroups and namespaces isolation by its kernel. Such kind of isolation is required for running a number of independent containers on a single instance.
- Virtuozzo is a container-based virtualization technology, leveraged by Jelastic’s Platform from the very beginning of its development (Parallels Virtuozzo Containers at that time). This solution allows to simultaneously run a large number of virtual machines and containers on a single physical server due to the system-level virtualization, thereby making the utilization of server’s hardware resources more efficient. Over and above, Virtuozzo represents a hybrid hypervisor – a system for simultaneously running a number of different isolated OSs.
Both of these technologies work with the same kernel isolation mechanisms, so this ensures that all of the required processes of Docker standard are covered similarly to its native implementation, saving all the inherent benefits.
Virtuozzo and Docker together provide the complete, secure and scalable cloud infrastructure, application sharing and process automation solution, suitable for development, QA and production environments. Together with Jelastic, such a combination is distinguished by high effectiveness in solving the task of application delivery and ensures increased security, density, isolation, elasticity, and rapid provisioning.
Why is this solution cool?
With the integration of Docker® standard across the Jelastic platform, you get more flexibility and options while installing any containerized stack, application or system. Here are some key benefits you receive due to the embedded Virtuozzo and Jelastic features:
- Live migration and smart distribution: containers within a single environment are spread among different physical servers during creation, which eliminates the risks of application downtime and provides its high availability. Moreover, any container or a whole environment at once can be easily migrated to another physical server with zero downtime, which increases operational efficiency and provides better load balancing
- Granular division of physical servers into containers but not into VMs: as a result, a user is not restricted with a virtual machine’s limited resources, but can scale the application throughout the whole server
- Automation and resource management: automatic vertical scaling in combination with the ability to easily multiply instances within environment layer (either manually or automatically based on incoming load) ensure that container will get the required resources in time and will not face any performance degradation. Such an approach significantly saves money for application holders’ as they pay only for what they use, instead of trying to use what they pay for
- Smart load monitoring via triggers: each container in Jelastic is supplemented with the possibility to configure a set of special monitoring triggers, that allow to get alert notifications when the level of a particular resource usage growths / drops down (behind the predefined limits or specified percentage)
- Seamless container update: redeploy a Docker template inside your container based on another tag version whilst saving all the inherent settings and data inside mounted volumes
- Full isolation and security: each container gets complete privacy and becomes unavailable for other users, due to the full isolation of RAM, CPU, IO, filesystem and network for every of them
- Easy Configuration: you get all of the necessary management services and tools out-of-the-box – leverage the embedded configuration GUI assistants for the main container settings adjustment right from the admin panel or access your container via SSH to run the needed operations through your terminal
- Automated Ports’ Redirect: in case your application with no external IP address attached is listening to a custom port on its backend, the Jelastic Platform will try to automatically detect it for the incoming requests’ redirection. In such a way, your Dockerized service can be run just after being deployed with no manual configurations required
- Optimal use of resources with the help of hibernation: non-active containers are automatically hibernated and thus do not consume resources (only disc space), which prevents extra charges
- Advanced orchestration through a single HTTP Entry Point: distribute the required containers within predefined environment layers while composing your application topology to subsequently operate them as a single identity by means of the allocated common domain name. This also allows to bind custom domains to your Dockerized environments, as well as swap domains between them.
How can I get a Docker container at Jelastic?
Docker containers board is integrated to both the environment topology wizard and Jelastic’s Marketplace dashboard tab (can be found within its Containers section). By default, it allows to search for the required image among the templates, available at the Registry Hub, and add your own custom template, which will be permanently listed at the appropriate section for being easily accessible.
Installing the desired software can be done in just a few clicks – find the required template, choose it to be deployed and specify the preferred name of your new environment (or apply the template addition to the existing one).
In a few minutes, you’ll see a new Docker-based environment with the chosen template(s) deployed. Each of the nodes represents an independent and isolated Virtuozzo container with full root access provided to it via both the embedded File manager and SSH.
In addition, for more convenience, the Jelastic environment wizard provides you with a special graphic tool for adjusting some basic configurations at your Docker container, such as environment variables’ and ports’ settings, managing data volumes, linking containers or specifying the file that should be run on its startup.