IT containerisation: room for innovation in development
IT containerisation has been all the rage in recent years. And with good reason: it promises faster, more efficient and resource-saving IT development.
Would you like to find out more about containerisation? Definition, benefits, use cases and solutions: you'll find all the answers you need in this article.
IT containerisation: definition
What is IT containerisation?
IT containerisation means packaging all the services, scripts, APIs and libraries that an application needs. The aim is to enable them to be run on any compatible kernel.
- No need to worry about interactions or incompatibilities with existing or future containers on that machine.
- ✅ It doesn't take up as many resources as a virtual machine(VM), which carries its own operating system and blocks resources when it is launched.
Why use containers?
Who should launch?
Containerisation is a formidable technological accelerator that also promotes the efficient use of resources. So you can't avoid containerisation in the following cases:
- You manage a large number of largely independent, heterogeneous applications.
- You're looking to accelerate the rate of delivery of your applications in response to changes in the behaviour of your targets and to encourage innovation.
- You are looking to improve the elasticity of your architecture, to control it or prepare for strong growth.
Advantages and disadvantages of IT containerisation
Advantages
- Faster development: the developer works in a framework restricted to what is strictly necessary, which spares him the coding of interaction tests in particular. It also encourages the creation of sandboxes, so that skills can be built up more quickly and the capacity for innovation increased.
- Portability and therefore faster deployment: the container created is consistent and will not suffer from being run on another environment, while being less power-hungry than a VM and can therefore be more easily moved, copied and relaunched.
- Less impact on server performance, as a container can quickly free up unused resources (memory, storage).
Disadvantages
- A Linux container cannot be used on a Windows machine (and vice versa) unless there is an intermediate virtualisation/emulation layer for the corresponding OS.
- There have been a number of cases where the kernel of a containerised application has been compromised (several cases in the cloud), putting all the containers on that server (physical or virtual) at risk.
Containerisation and virtualisation: don't throw away your VMs
It should be noted that containerisation does not exclude machine virtualisation: the two methods can be mixed according to requirements.
A virtual machine can host containers if this facilitates the management and security of your organisation by environment or domain.
What containerisation solutions are there?
Docker... and other platforms
Containerisation is therefore at the service of agility, which has been further encouraged by the rapid and widespread adoption of solutions such as Docker, from the French company dotCloud, based on open source technologies.
💡 IT departments, but also Cloud platforms from Oracle or Microsoft have adopted it, and the Docker Hub community makes available a large number of sandbox containers catalysing innovation.
Other solutions that facilitate containerisation exist, of course, for Linux as well as Windows, FreeBSD or Solaris:
- LXC (the historical basis of containerisation under Linux),
- Rocket (rkt) from CoreOs,
- Windows Hyper-V Containers (which are similar to lightweight VMs),
- Docker for Windows,
- Oracle Zones,
- FreeBSD Jails, etc.
A second milestone was reached in the acceleration of container adoption when Google launched its Kubernetes (K8s) solution in 2015, the market-leading orchestrator.
But what is a container orchestrator?
The agility and elasticity promised by the massive use of containers are only possible if they are :
- well managed
- secure
- easy to deploy or move from one machine to another,
- while modulating infrastructure resources as required.
Furthermore, a containerised application may call on other services which are themselves underpinned by other containers; it will therefore need all these services to be available in good time.
👉 This is the function of the orchestrator, which will take charge of the components of your cluster to ensure the deployment and availability of your containers to cover the needs of your applications.
Here again, there are many competitors to K8s (and they sometimes coexist):
- Docker Straw,
- Amazon ECS,
- Rancher,
- Microsoft AKS based on... Kubernetes!
This combination of Container/Orchestrator, and possibly VM, promises to meet the challenges of high-growth businesses or those looking for elasticity, agility and innovation.
[Example] A few concrete use cases
- DockerCon 2017 was an opportunity for Paypal to present its journey in transforming its applications to streamline them and improve their availability. As a result, 150,000 containers emerged in 2 years of work to modernise their core business applications for the benefit of their customers.
- More recently, in 2019, Pipedrive, a CRM tool, demonstrated the effectiveness of containerisation in accelerating its developments and improving the elasticity of its infrastructure.
- Babylon, for its part, has implemented containerisation to promote the portability of its AI engines in the healthcare sector, but above all to enable the most demanding applications to use cloud resources, absorbing growth of more than 1,500% in 3 years.
- Blablacar demonstrated how containerisation combined with good orchestration can save several days in the lifecycle of an application, again in a context of exponential growth. Feedback is also eagerly awaited on the benefits of the elasticity of the container-cloud combination in a crisis context such as the health crisis, which has hit the transport sector particularly hard.
- Docker put forward Netflix's proposals for consolidating its use of these technologies by providing solutions aimed at securing its containers, rationalising their use and ensuring that they are as interoperable as possible.
Conclusion
As a logical extension of the effort to rationalise resources begun by VMs, containers also bring significant added value to organisation and innovation in IT development.
As with any major technological development, containerisation has its share of "bad buzz", with companies at the forefront of innovation rising to the challenge at breakneck speed.