14 Containerization Use Cases: Hit a Home Run with Containers
Containerization has rapidly emerged as a technology that enables organizations to have “dynamic venturing” into application development and deployment. And an organization that learns how to adapt and reinvent itself becomes a guiding light for other businesses.
Let’s look at an inspirational example of a company, Netflix, that has successfully embraced new technologies and grown exponentially. Given the size of Netflix’s ops, the company needed to ensure the worth of those changes first before upgrading its core technologies.
Initial migration of some of its services to containers had its share of challenges, prompting the company to develop its own container management platform called Titus. Netflix now runs video streaming, content-encoding, recommendations and machine learning (ML), studio technology, big data, and internal engineering tools in containers, which add up to 200,000 clusters and half-a-million containers per day.
In this article, we’ll look at containerization use cases with some more real-world examples. However, before going into details, let’s just quickly recall what containers are.
The point to keep in mind is that we’d often use Docker as an example, as it is one of the most popular container implementations (container engine.)
What is a container?
An application must work the same as intended in development, test, and production environments to be successful. That can be pretty difficult as every environment has its own configurations and sets of supporting files. Containers solve the problem by carrying all the necessary information in a single container image to run in isolated user environments.
Some interesting points to know about containers
- The majority of containers used by businesses are Linux containers.
- There are various types of containers, like Docker, LXC, CRI-O, and rkt.
- With containers as a service (CaaS), you can have capabilities to automate the hosting and deployment of containers across multiple cloud environments.
- The Open Container Initiative (OCI), launched by Docker and other leaders in the container industry, is an open governance structure that creates open industry standards around container formats and runtimes.
Container and virtual machines
Two frameworks for modern networks – virtual machines and containers – have completely changed the software industry’s perception of virtualization. Both frameworks facilitate moving contents from one physical device to another, and neither is mutually exclusive. The key difference between containers and virtual machines lies in how they achieve virtualizations. VMs virtualize an entire machine down to the hardware layers with a hypervisor, while containers only virtualize software layers above the OS level.
Benefits of containers
- The words that you’d often find associated with containers are – “lightweight” and “portable.” The absence of the guest operating system makes containers lightweight and, thus, portable and fast.
- Containers run applications independently on the OS, reducing overall infrastructure needs.
- Enhances business agility as developers can quickly make small changes without disrupting application workflows or overhauling the entire system.
- With a more agile working container environment, engineers can have DevOps tools to work on the latest improvements even while applications are running. This enables efficient and quick code releases without obstructing productivity.
- Quicker delivery of features, upgrades, and products increases customer satisfaction and revenue.
- The ability to develop and test new features in isolation gives greater flexibility to DevOps.
- Applications, isolated from each other and the host system, naturally enhance security. The self-contained and immutable containers increase agility without endangering confidential information.
The burst in the growth of apps over the last decade is driven by cloud-native technologies like DevOps, microservices, containers, orchestrators, and serverless.
Until recently, adopting newer technologies was left mainly to bigger enterprises. Fortunately, it looks like a bygone era now. Containers have created excitement among companies of all sizes. Above mentioned advantages drive the practical use cases of containers.
Let’s see what containerization use cases are for different sizes of companies.
Containerization use cases for startups
Startups are springing up in every corner of the world. However, as widely known, very few of them succeed. There can be many reasons behind the startup failure, from an inability to execute faster to a lack of scaling and capability to adopt changes.
Apparently, no company, including startups, can build, deliver, or market its application without innovative and trending technology. Containerization is one such technology that provides a startup what it’s looking for, i.e., faster execution and quick time-to-market.
Here’s how containers like Docker can address startups’ problems and achieve the desired results.
Building consistency in environments
One of the major issues that a startup faces while developing an application is differences in the environments between development, QA, and production. Even a minor issue in any environment can result in a myriad of problems. With containers, the environment in which the application runs in production is the same as the environment where it was tested. A well-documented and consistent environment makes it easy to identify the problems and keep track of the application.
Infrastructure and environment isolation
Continuing with the above use case, if maintaining security is a crucial requirement for a startup, it can build separate containers for each component and avoid conflicting dependencies. It can also run multiple projects on a single server without bothering about creating conflicts in the system. This way, even if some container is compromised with malicious code, it won’t affect other containers.
Implementation of different strategies
Startups are generally concerned with faster delivery, aiming to respond quickly to the evolving conditions. Containers make it easier and quicker to introduce new features and functionalities. Besides, it can roll back to the previous version rapidly if required. With a container up and running in seconds, startups do not have to wait for a VM to boot up the OS and thus, can easily implement different strategies.
How adopting a container-friendly architecture helped Beta Labs?
Beta Labs strongly advocates Docker because the installation of the Docker desktop managed everything for it while they could concentrate on the coding part. Handling top-level architecture became easier with the declarative nature of the tools that provided a simple description of how runtime components talk to each other. The startup appreciates Docker for allowing them to package their application together with exactly the kind of environment they wanted.
However, startups should avoid using containers when
- It does not have a system administrator, and the application is complex
- The application requires high storage
- Looking for cross-platform development
Containerization use cases for medium-sized enterprises
Now that containers have moved past the earlier stages of innovation and adoption, the timing is perfect for midmarket organizations to escalate their efforts to benefit from this technology.
Containers these days are increasingly being delivered as-a-service and used with ease. This maturity, along with stable features and well-defined APIs, makes containers an ideal technology, a better fit for mid-sized IT companies. Also, managed services offered around containers could be an opportunity for those willing to invest in a new business unit.
Whether you are a medium retail chain, government agency, educational institution, or an eCommerce platform serving your industry, leveraging the benefits of containers is now easily within reach.
Cloud migrations and bringing agility to on-prem organizations
There are some SMEs that still rely heavily on on-premise technology. However, as containers operate in a cloud-native way irrespective of the underlying infrastructure, organizations whose infrastructure is entirely on-premise can get cloud-like agility without migrating to a new platform.
So, if you containerize your workloads and decide to keep them on-premise, they’ll run more efficiently and use fewer resources while maximizing your current investments. Also, migrating to a cloud platform down the line will be an easy transition as containers run the same way no matter where you host them. In short, an SME will have advantages with containers at every stage of the cloud journey.
Check out six cloud migration strategies with popular examples and best practices
Supporting continuous operations with no downtime
Downtime means much more than a temporary power outage for mid-sized enterprises in today’s digital ecosystem. If a customer can’t reach you because your system is down, they will go elsewhere. SMEs often count on every single customer, and thus, each loss delivers a noticeable blow. Container architecture is inherently beneficial in continuous operations as it provides a standardized way to divide applications into separate containers.
As a result, you can place containers on different physical or virtual machines, on-premises, or in the cloud. This flexibility works wonders for workload management and building fault-tolerant systems. Moreover, with Docker container monitoring, you can track metrics to evaluate how containers are functioning, which is critical for ensuring uptime and performance of containerized applications.
Containerization use cases for big enterprises
Regardless of the type, scale, and customer base, technology adoption is critical for any business’s growth. However, it’s never easy. Many big enterprises are hard-coded into their legacy technology systems that handle essential business processes and are pretty difficult to replace. With the proper implementation, containers become a key to unburdening businesses from traditional systems and achieving digital transformation.
Containerization of legacy applications
The main reasons for containerizing legacy applications are the need to have portability, scaling, and the ability to respond quickly. Also, to enable them to coexist with more modern technologies and support different languages, databases, frameworks, and tooling. Ultimately, refactoring the existing applications provides the system required flexibility to evolve and opens the door to modernization.
However, first, it is essential to include everything that is required to prepare an existing app to support the run-as-a-container concept. You should also determine the technical feasibility, the scale, and expected business benefits. Kubernetes is essential to migration projects as it improves application reliability and scalability and ensures the containerized environment runs properly.
How did Cornell University containerize its administrative application?
Confluence, an administrative application, is quite essential to Cornell University, but it doesn’t directly enhance Cornell’s mission. The application was quite old, was maintained manually, and the tech stack was becoming outdated. They wanted to have the ability to track the changes they made and ensure that the environment was supportable in the future.
Docker helped supercharge their efforts. The University leveraged Dockerfiles to create a reproducible infrastructure and coupled them with Puppet to create instance-specific images. They implemented a series of base images to build on and rebuild them with the latest patches on a daily basis.
Increased developer’s productivity
If a developer wants to test an early stage of an application, they can execute it from their PC without hosting on the main OS, without setting a complete testing environment. Moreover, containers solve problems around environment configuration, address scalability issues, and make operations easier. With containers solving many problems, developers can focus more on app development and less on operations.
How is Visa gaining operational efficiency with Docker?
As mentioned earlier, Docker use cases are prominent across all industries. Docker Enterprise Edition is empowering Visa on its mission to avail electronic payments to everyone, everywhere, and make global economies safer by digitizing currency. The world’s largest retail electronic payment network handles 130 billion transactions and processes $5.8 trillion annually. Their expanding global footprint was putting pressure on the organization.
After going into production with Docker Containers-as-a-Service architecture, they soon saw a 10x increase in scalability. Visa wanted new developers to be able to deploy code on their first day, which also became possible because of Docker. Now Visa can maximize the utilization of its existing data center footprint while reducing the time the team spends on refreshing hardware and patching.
Building containers into the DevOps process
Without containers, build, release, and test pipelines will have a more complex configuration to achieve DevOps continuity. The very nature of containerization technology allows the development team to share their software and dependencies with the operations team easily. By solving application conflicts between different environments, containers make it easy for developers and IT operations to collaborate.
Developers own everything in the container, like application/service, dependencies, frameworks, and components, and also how the containers behave together as an application. Meanwhile, operations teams can focus on the management of infrastructure, scalability, production environments, monitoring, and, ultimately, ensuring the proper delivery of an application to the end-users without having to know the contents of the various containers.
How did Citizens Bank succeed by learning to fail fearlessly?
Citizens Bank wanted the capacity to innovate faster, scale to meet increased demand, and deliver new applications to modernize the mortgage experience for its customers while reducing IT infrastructure costs.
They learned the most important lesson while incorporating innovation into a regulated and traditional business: being ready to “fail fearlessly.” And they believed that to try new ideas and be fearless constantly; one has to minimize the consequences and cost of failure.
In November 2016, Citizens Bank started its innovation team and had around a dozen containers and three or four services running. Since then, they’ve grown to over 3,000 containers across their entire platform and over 1,000 services. Docker made it easy for them to tackle every part of the pipeline, all the way from their development environments through production.
Containers and IoT
More and more organizations are recognizing the value of connected systems. And the adoption is becoming easier, too, as the cost of sensors continues to reduce while the power of edge and cloud computing consistently increases. As a result, enterprise IoT solutions are getting matured rapidly, both in size and scope. However, organizations are facing unique challenges with IoT devices in terms of continuity, connectivity, and cybersecurity.
The portability, immutability, and isolation of environments provided by containers make them an ideal solution to address these concerns. Besides making it easier for enterprises to develop software, containers also manage updates for the endpoint devices. Moreover, containers enable the scaling of the IoT environment with a microservices model.
How did containers support Lindsay Corporation’s IoT vision?
Lindsay Corporation provides safe, sustainable, and customized solutions for advanced irrigation, infrastructure, and industrial technology. However, the organization was having issues with legacy applications and infrastructure, mainly older Windows servers, as they couldn’t support its IoT vision.
With the adoption of Docker Enterprise, Azure, .NET Core, AI, and edge computing, Lindsay migrated legacy applications and servers to a cloud environment. Docker Enterprise enabled the organization to connect 450,000 of IoT- enabled FieldNET pivot irrigation systems spread worldwide to save over 700 billion gallons of water.
Tech superpowers using containers
Everything at Google, one of the ‘Big Five’ tech companies, runs in containers. Containerization helps Google’s development teams deploy software efficiently and operate at an unprecedented scale. No wonder it was Google that originally developed Kubernetes, the most commonly used container orchestration platform today. The power that containers land to tech superpowers is striking. Let us see a couple of examples.
Container-based microservices architecture
Microservice-based architecture has ousted monolith designs. (no, monoliths haven’t become obsolete yet!) However, the question of “what execution environment to use for microservices applications” is daunting. Earlier, the only option would have been installing and running microservices on a physical server running on an OS. Now, you have other choices like running multiple services on a single OS instance or dividing up a physical server into various virtual servers.
However, these options have their limitations. In comparison, containerized microservices can provide finer-grained execution environments, faster initialization and execution, and better isolation for component cohabitation. So, let’s see how containers are the best choice for running a microservices application architecture.
How did eBay modernize with microservices and containers?
When eBay, the world’s leading online auctioneer, started its operations in 1995, it had a monolithic application. Down the line, with various issues popping up, eBay developed a polyglot set of microservices, that is, services written in more than one language.
eBay’s development teams used Docker containers in dev and test and Kubernetes to support Docker. Moreover, the organization started running production applications in containers. Now, the integration infrastructure of eBay is entirely container-dependent. The eBay system has around 1000 microservices that are currently functioning as per user requirements and evolving continuously.
A single software instance can serve a single end-user or group in a single tenancy. While in multi-tenancy, multiple independent instances of one or more applications serve many distinct user groups—for example, Software-as-a-service (SaaS) offerings. Multitenancy can refer to shared hosting in cloud computing, where server resources are divided among various customers.
Multi-tenancy offers many benefits like lower cost of ownership, fast deployment, convenient maintenance, API integration scalability, etc. Also, containers simplify multi-tenancy deployments by using the Docker runtime and the kernel to spin up each container and enabling the deployment of multiple enterprise applications on a single host.
How did Pinterest solve operational issues with containerization?
Pinterest evolved its platform towards containerized technology to resolve the operational issues and manage the increasing workload. However, migrating infrastructure was challenging owing to the scale and complexity.
So, as the process evolved, they decided to take a phased approach. Pinterest first moved its services to Docker to have an immutable infrastructure and free up engineering time spent on Puppet. After the completion of the first phase of containerizing the services, they planned to adopt the container orchestration and build a multi-tenant cluster to have a unified interface for long-running services and batch jobs.
Other general use cases of containers
Building cloud-native applications
Cloud-native applications are programs designed for cloud-computing architecture. Microservices and containers are at the core of cloud-native application architecture because these apps are generally packaged as lightweight, self-managed containers to have portability and scalability.
Creating lightweight stateless applications
A stateless application does not store past transaction-related data on its server. Most container applications today are stateless. As containers are ephemeral, the data in a container is not stored after the container is deleted, shut down, or stops working. If your application does not need to save information about its state, stateless applications will work the best.
Running big data systems in containers
Data containers store and analyze virtual objects (self-contained entities consisting of data and procedures to manipulate data). Running big data systems in containers has become a viable option. Spark, Hadoop, and other big data platforms can now be deployed in Docker container clusters. Even mainstream databases are adopting big data containers. In addition to providing greater flexibility and agility for big data applications, containers can also drive real-time decision-making.
Fret not! Time to jump on board
Containerization use cases are moving way beyond cloud-native applications. Organizations are exploring extensive use cases—everything from managing IoT devices to application modernization—and deploying containers in multi-cloud environments. Container adoption is advantageous to both technical and business decision-makers as it addresses the needs for rapid and effective software development and reduces overall costs and risks.
Yes, this approach certainly brings complexity, but the benefits outweigh the challenges. Moreover, the rapid improvements in container system management, automation, and the strong industry/community support for this approach makes it a safer choice. So let Simform be your partner in your containerization adoption journey, and we’ll together build a foundation for future growth.