Understanding Containers: A Brief Guide
date: July 25, 2019
In an age where speed, availability, and performance matter most, modern applications are increasingly built with microservices. As a result, companies are able to bring better applications to market faster with the peace of mind that comes with knowing they can scale rapidly
Apart from hybrid cloud and multi-cloud computing environments, containers are one of the key technologies that enable microservices, and even if you might instinctively think of it as a pair of pants, you may have heard of the most popular container platform: Docker.
More and more companies are using containers because they provide a number of benefits, which we will dive into a bit later.
In fact, while Gartner says less than 30% of global organizations use containers today, the firm predicts that more than 75% will use them by 2022. Here’s why.
What are containers?
Simply put, containers enable developers to create, deploy, and run applications anywhere, which, in turn, accelerates the development lifecycle considerably.
Like the name suggests, developers can “package” the code and dependencies of an application in a container and then move that container from one environment to the next.
What are the benefits of containers?
Containers deliver a number of benefits to the developers that use them. Here are six of them.
1. Platform agility
Developers can take a container from one environment to the next without any hassle. For example, you can move a container from your laptop to a virtual server to a private cloud to a physical server and back again. This portability saves a lot of time and makes testing easy.
2. Accelerated development
Containers run without an operating system, which means developers can start, create, copy, and decommission them in just a few seconds. This speed helps companies that use containers increase agility and deliver stronger customer experiences.
3. Increased efficiency
Containers consume less OS resources than virtual machines. As a result, containers help reduce data center costs by allowing companies that use them to get by with less hardware.
4. Resource sharing
While virtualization requires running a full operating system in order to achieve application-level isolation, containers achieve the same application-level isolation without full OS virtualization and therefore are compute-efficient—even though they share servers and resources. In the event a containerized application gets knocked offline, other containers running the same application will continue running as designed.
5. Increased productivity
Containers are modern tools that make it easier to build applications. Not only do they help eliminate repetitive work and old-school development practices, features like version control make it easy to roll back an application update in just a few clicks. Suddenly much of the stress of software is removed from the equation. All of the above benefits translate into increased developer productivity and engagement, which work together to improve retention.
Since containers are relatively new, they still haven’t reached their full potential. But we already know that containers are versatile tools. For example, you can even run databases in containers. In this light, containers help you future-proof your infrastructure since industry pundits believe that we’ll see more and more databases in containers as we move into the future.
Due to the above benefits, it comes as no surprise that the larger a company gets, they more likely it uses containers. For example, a recent report from DataDog suggested that Docker adoption is directly correlated to infrastructure scale.
In other words, if your organization has lots of computing infrastructure but isn’t using containers, some may say you’re doing it wrong.
Do you build modern applications? It’s time to use containers
To take advantage of the above benefits while delivering increasing value to your users, you need to start thinking about building applications with microservices packed inside containers.
Like anything else, however, you can’t just decide to use containers and think everything will work out just fine. You need a strategy.
As you create such a strategy, you need to consider things like security and governance, monitoring, storage, networking, and container orchestration (e.g., Kubernetes).
Do your due diligence, and with the right approach, you can transform your company’s approach to software development, enjoying better business outcomes along the way.