The next trend we are going to talk about in- latest open source technology trends – is, ‘Containers’.

  1. Containers

Containers are the technology for packaging and isolating applications with their entire runtime environment (i.e. All of the files needed to run it). Container technology packages pieces of code in a standardized way so that the respective application can be plugged and run quickly in any environment. This will make it easy to move the applications in the containers between environments (development, test, production, etc.) along with retaining the full functionality.

Containers can be defined as a technology enabling ‘logical packaging mechanism’ to do decoupling; i.e. to abstract applications from the environment in which they actually run. Through decoupling, containerization provides a clear separation between various working environments, like development (developers being able to solely focus on application logic and dependencies), operations (the concerned team being able to solely focus on deployment and management), etc.. Decoupling also make it easier to deploy applications in any target environment, be it public cloud, private data center or a developer’s personal laptop.

Virtual machines (VMs) may seem similar to containers, but both are different. VM has own operating system and runs on a hypervisor using hardware VM support. Containers require an underlying operating system which will provide basic services to all the containerized applications in them, using virtual memory support for isolation. Containers require lesser overhead compared to VMs. Containers (may be in megabytes) require less memory compared to VMs (in gigabytes), making a single server to host far more containers than VMs. But there are technologies like ‘para-virtualization’ which will be a combination of two of these technologies, containers as well as VMs.

One of the most popular free and open source container management systems is ‘Kubernetes’, which is a software project originated by Google. Kubernetes is a mechanism for deploying, maintaining and scaling containerised applications. ‘Linux containers’ are another example of open source container technology, whose creation and use has been enabled by container technologies like ‘Docker’.

 

For more details, please read our following articles –

Docker: https://www.nodericks.com/docker/

Container-based and Kubernetes based PaaS: https://www.nodericks.com/container-based-kubernetes-based-paas/

 

Container technology is continuously evolving, making it further simple as well as easy to use. So, along with the above advantages, other features like ‘just-in-time’ initiation, modularity (ability to run the containerized applications in modules, rather than running the entire applications in a container.), makes containers popular among today’s open source technologies.

 

Go to the previous article in this series

 

Check out the next article in this series, here – Topics 7 & 8 : ‘Machine learning and AI’ & ‘Cognitive cloud’