Containerization 101: The Easiest Guide You Will Ever Read
Let’s discover software containerization and its magical powers!
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.
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!
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.
A container environment makes applications run smoothly on any platform or cloud via abstracting applications away from the host OS.
A container application has ability to handle increasing work loads so by this way it provides application scalability.
- Faster Deployment
A container environment is able to create a master version of an image (main application) which can be deployed quickly.
- Some Other Cool Advantages
- Ease of handling.
- Less documentation.
- Improve overall efficiency in operation.
- Reduces overall transportation costs.
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.
Use Cases of Containerization
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.
Container technologies provide to run multiple instances of a software on different tenants easily and properly.
- 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.
- 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.
- 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.
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!