Containerization 101: The Easiest Guide You Will Ever Read

Let’s discover software containerization and its magical powers!

Photo by Timelab Pro on Unsplash.

Containerization

Containerization is an application distribution method which isolates the application and its dependencies from the underlying infrastructure. Application containers include all of the runtime components like configuration files, binaries and libraries are needed to run the application. More than one containers can run on a single host and access the exactly same OS kernel through APIs.

Container is a lightweight OS-level virtualization and it runs applications with their dependencies in resource-isolated processes. (Image source: Xenonstack)

Independent of the operating system, an application within the container can be moved and run consistently in any environment and on any infrastructure! By this way, we can be sure that apps run properly when it is moved from one computing environment to another!

Multiple containerized applications can run on a single OS and all that containers share same OS. (Image source: Avinetworks)

Actually, we already have the process isolation idea for long years, for example, it was the core feature of Linux but it became popular when Docker came in 2013. After that, new initiatives have been introduced and now developers can choose different containerization platforms and tools such as Docker, Apache Mesos, Kubernetes, and so on..

Advantages of Containerization

Containerization provides to run software reliably from one computing environment to another and this provides tons of advantages.

  1. Portability
    A container environment makes applications run smoothly on any platform or cloud via abstracting applications away from the host OS.
  2. Scalability
    A container application has ability to handle increasing work loads so by this way it provides application scalability.
  3. Faster Deployment
    A container environment is able to create a master version of an image (main application) which can be deployed quickly.
  4. Some Other Cool Advantages
    - Ease of handling.
    - Less documentation.
    - Improve overall efficiency in operation.
    - Reduces overall transportation costs.

Container Orchestration

Container orchestration is all about managing the life-cycles of containers. (Image source: Meterprater)

Container orchestration automates the scheduling, deployment, networking, scaling and management of containers.

When there are many containers and services to manage simultaneously, the big problem begins. The organization of many containers becomes complex and complicated. Container orchestration is a very good solution by providing strong methods for deployment, scaling, networking, and automating the management.

Kubernetes, OpenShift, Docker and Cloudify can be given as the most popular container orchestration tools.

Use Cases of Containerization

  1. Microservices
    Containerization provides a better support for microservices and distributed systems. Microservices and distributed systems can be easily isolated, deployed, scaled and managed via container technologies.
  2. Multi-tenancy
    Container technologies provide to run multiple instances of a software on different tenants easily and properly.
  3. Platform as a Service
    Containers as a Service (CaaS) is a cloud service model which allows to manage containers, applications, and clusters at large scale, including starting, stopping, scaling, and organizing containerized workloads via APIs, container-based virtualization, or Web portals.
  4. DevOps Support for CI/CD
    Container technology supports streamlined build, test, and deployment from the same container images to make it easier to implement and automate CI/CD pipeline.
  5. Some Other Cool Use Cases
    -
    Batch Processing
    - Machine Learning
    - Hybrid Application

At Garanti BBVA Technology..

Garanti BBVA has many different digital products which have millions of users in various fields like banking, insurance and so on. We have been getting the benefits of containerization technologies to produce and maintain our digital products. Since we have been working with agile scrum methodology in Garanti BBVA Technology, we have many regular releases till the end of each sprint. It would so difficult to manage CI/CD pipeline, runtime issues and etc. without containerization technologies.

For a specific example, we have microservice components for Bulk SMS and Bulk Email system of Garanti BBVA Bank which serves millions of users every day and these microservices run on containers. Thus, we improve overall efficiency in operation, have faster deployments and also we can get benefits of container technology in terms of software reliability, scalability and consistency.

Moreover, we have started ARK Technology Transformation program for modernization of our technology stack. And, usage of containerization technologies has boosted with this program. Our microservices and distributed systems run on containers at Garanti BBVA Technology. Also we are migrating monolithic apps to microservices in a planned manner to get benefits of service-oriented architecture (SOA) and container technologies.

Conclusion

In this post, we learnt some cool facts of containerization quickly. Container is actually an application that packages the necessary application code, libraries, dependencies, and system tools to run on various platforms and infrastructures.

The main aim of containerization is providing the ability to run software reliably from on computing environment to another and this addresses application management issues mainly. The famous big tech companies like YouTube, Facebook and Google have been using it because it provides great efficiency, reliability, scalability and consistency. And, we also use and get the key benefits of containerization technologies at Garanti BBVA Technology.

Moreover, with the domination of service-oriented architecture (SOA) and agile methodologies (regular releases), containerization technologies is being more important and more popular day by day!

--

--

--

Daima geleceği hayal edip tasarlar, gelişen teknolojilerin ve dijital dünyanın getirdiği tüm imkanları ekosistemimiz ile entegre ederek, yenilikçi çözümleri “tek bir ekibiz” bakış açısıyla geliştiririz

Recommended from Medium

Solve the Problem In Front Of You

Numbering system edge cases of JAVA

How to setup HTTPS users to upload code into codecommit using git credentail

Hacking the Hackathon: 3 Steps to Success from Samsung Next

The Shared Product Mindset

Python Efficiency — Reduce Computing Time and Memory Usage!

Build An Among Us Inspired Live-Multiplayer Game with Phaser 3 and Socket.io: Part 1

Debugging memory leaks & buffer overflows in FreeRTOS

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ahmet Özlü

Ahmet Özlü

I am a big fan of Real Madrid CF and I love computer science!

More from Medium

Hotfix Pipelines

Journey to reverse engineer OpenShift operator

What are Docker, Containers, Virtual Machines, and Containerization?

Set optimal Kubernetes container requests in seconds using Kubecost