IT containerization: innovation in development
IT containerization has been on a roll for some years now. And with good reason: it promises faster, more efficient and resource-saving IT development.
Would you like to find out more about containerization? Definition, benefits, use cases and solutions: you'll find all the answers in this article.
IT containerization: definition
What is IT containerization?
IT containerization enables you to package all the services, scripts, APIs and libraries required by an application. The aim is to enable them to run on any compatible kernel.
- ✅ No need to worry about interactions or incompatibilities with existing or future containers on the same machine.
- ✅ It doesn't take up as many resources as a virtual machine(VM), which carries its own operating system and blocks resources when launched.
Why use containers?
Who needs to get started?
Containerization is a formidable technological gas pedal that also promotes the efficient use of resources. Containerization is a must in the following cases:
- You manage a large number of heterogeneous, largely independent applications.
- You're looking to accelerate the pace of your application deliveries to keep pace with the changing behavior of your target audiences, and to foster innovation.
- You're looking to improve the elasticity of your architecture, to keep it under control or prepare for strong growth.
Advantages and disadvantages of IT containerization
Advantages
- Faster development: developers work in a framework restricted to their bare essentials, which saves them the trouble of coding interaction tests. This also favors the creation of sandboxes, and therefore a faster rise in skills and innovation capacity.
- Portability and therefore faster deployment: the container created is coherent and will not suffer from being run on another environment, while being less greedy 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 an intermediate layer of virtualization/emulation of the corresponding OS is implemented.
- There have been several cases where a containerized application has been breached, reaching the kernel of the machine (several cases in the cloud) and endangering all the containers ported by this server (physical or virtual).
Containerization and virtualization: don't throw away your VMs
It should be noted that containerization does not exclude machine virtualization: the two methods can be mixed and matched as required.
A virtual machine can host containers if this facilitates the management and security of your organization by environment or domain.
Which containerization solutions?
Docker... and other platforms
Containerization is therefore at the service of agility, which has been further boosted by the rapid and widespread adoption of solutions like Docker, from 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 catalyzing innovation.
Other solutions facilitating containerization also exist, under Linux as well as Windows, FreeBSD or Solaris:
- LXC (the historical basis of containerization under Linux),
- Rocket (rkt) from CoreOs,
- Windows Hyper-V Containers (similar to lightweight VMs),
- Docker for Windows,
- Oracle Zones,
- FreeBSD Jails, etc.
A second milestone in the acceleration of container adoption was reached when Google opened up its Kubernetes solution (K8s), the market's largely dominant orchestrator, in 2015.
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 needed.
What's more, a containerized application may call on other services that 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, many competitors to K8s exist (and 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 companies or those looking for elasticity, agility and innovation.
[Example] Some 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 modernize their core business applications for the benefit of their customers.
- More recently, in 2019, CRM tool Pipedrive demonstrated the effectiveness of containerization in accelerating its developments and improving the elasticity of its infrastructure.
- Babylon, for its part, has implemented containerization to promote the portability of its AI engines in the healthcare field, but above all to enable the most greedy to use cloud resources, absorbing growth of over 1,500% in 3 years.
- Blablacar demonstrated how containerization combined with orchestration can save days in an application's lifecycle, 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 that of the health crisis experienced by the transport world.
- Docker highlighted Netflix's proposals for consolidating its use of these technologies by providing solutions aimed at securing its containers, rationalizing their use and ensuring their improved interoperability.
Conclusion
As a logical extension of the effort to rationalize resources initiated by VMs, containers also bring considerable added value to organization and innovation in IT development.
Like all major technological developments, containerization has its share of "bad buzz" - challenges that companies at the cutting edge of innovation are meeting at high speed.