Jelastic and Docker containers: A successful marriage in the cloud
In containers? No ? Well, you should be! Containers like Docker can help you automate and speed up your development process, but the story doesn't end there. In fact, it's not just developers who benefit from containers: businesses that use cloud hosting benefit too! So let's take a look at how Jelastic and Docker containers can make your life easier and reduce your costs... starting with the basics! (Note: this article assumes some familiarity with Jelastic and Docker).
Why choose Jelastic
If you're new to cloud hosting, or simply unfamiliar with Jelastic, you may be wondering why Jelastic is worth your attention. Well, for starters, it offers one of the most comprehensive DevOps capabilities of any public cloud platform. Add to that its tight integration with Docker - which is fast becoming one of the hottest technologies today - and it's easy to see why Jelastic is so attractive to application developers. The fact that Jelastic comes from a company with a history and expertise spanning more than 10 years isn't a bad thing either. That kind of deep domain knowledge is important. But most importantly, what makes Jelastic a great choice for developers is its usability (UI) and manageability (EM). After all, no one wants to spend their time managing their host; they want to focus on developing applications that will help their business grow while keeping IT costs down. That's why we've designed our UI with our customers in mind; we think we have what many would call a great UI, which means your development team can focus less on managing hosts and more on building scalable applications.
If your company is already using Docker on-premises or even in a public cloud IaaS, you can still leverage Jelastic's powerful platform. With Jelastic's Docker integration, you have seamless access to native containerized applications in multiple environments - private and public - from a single portal. Since everything runs in a system container, you no longer need a complete virtual machine for each application. This significantly reduces the overhead associated with VMs and makes maintenance easier. In addition, changes made inside one of these containers do not affect other applications running in it on different hosts. Think of it as a per-container address space where all your containers will share operating system resources while remaining completely isolated from each other. Also, because virtual machines are hardware-dependent, keeping track of their version updates can sometimes be tricky, whereas with Docker-based applications, this is almost effortless because they run in the kernel space alongside the host operating system.
What is Docker?
Docker is a technology that allows you to develop, run, test and deploy applications using containers. Containers work at a higher level than virtual machines because they do not have a virtualised operating system. In fact, because each container runs its own application with its own set of libraries, it's almost as if each application has its own instance of an operating system. This isolates your data from other applications running on the same host, even if those other applications were written in different languages or from different sources.
How does it work?
Jelastic has support for running Docker containers natively in its platform. It is important to note that Jelastic is not a container management solution, but rather runs Docker inside system-level containers on top of the KVM virtualisation engine. The benefit of this method is to increase performance as these internalised containers share the host operating system kernel, reducing the number of resources required.
Benefits of running containers on the Jelastic platform
- Running Docker containers on Jelastic is optimised with vCPU, RAM and storage resources.
- Jelastic takes care of all hardware failures, so that they are no longer a concern for developers.
- Developers only need to consider how many instances they want for their applications and can balance their needs with the availability of resources. This is a very flexible solution, as instances automatically scale up or down based on resource demands.
- Development teams large and small will benefit from a consistent experience across application deployments on various platforms such as .NET Core, NodeJS, Java, PHP, Python, Ruby and many others, without any VM extension.
- The use of an integrated load balancer that distributes traffic among all available services allows developers to easily deploy scalable distributed applications without additional effort.
- Groups of replicated instances ensure zero data loss in the event of an instance failure, making application fault tolerance transparent.
- Auto-scaling groups ensure efficient use of server capacity by balancing load balancing demands between different servers rather than overloading a single system. However, although auto-scaling is not currently required, it is ready when needed.
Matthieu Robin is the CEO of Hidora, an experienced strategic leader, a former system administrator who has managed and configured more environments manually than anyone else on the planet and after realising that it could be done with a few clicks created Hidora SA. He is a regular speaker at conferences and helps companies optimise their business processes with DevOps. Follow him on Twitter.