A Local Leader Describes the Pros and Cons of Containers

Unsure about the best way to leverage container technology? A technical lead at Ollie shares how and when his team uses it.

Written by Olivia McClure
Published on Oct. 12, 2021
A Local Leader Describes the Pros and Cons of Containers
Brand Studio Logo

Container technology undoubtedly holds a multitude of benefits, such as portability, consistency and scalability. Yet even the most robust tools have their limitations. 

This is something Craig Holden knows well. As a technical lead at pet wellness brand Ollie, he and his teammates leverage container technology for various reasons, one of them being that it increases efficiency in a manner unlike that of other types of architecture, including virtual machines. 

While Holden noted that containers can still be complicated for even the most experienced users, he said the fact that many in the technology community use it makes it easier for teams to find solutions to common problems. One example of this is the tool’s lack of persistent storage. While this can be an issue, he offered a simple solution to avoid it. 

“Once a container is removed, so are all of its files,” Holden said. “To get around this, store persistent content on an attached volume or some other kind of external storage system, such as Amazon S3.”

Built In NYC caught up with Holden to learn how and when his team leverages containers and what he considers to be the technology’s benefits and limitations. 

 

Craig Holden
Technical Lead • Ollie

 

What are the key advantages of using container clusters over virtual machines or other types of architecture?

The key advantages of using containers rather than other forms of deployed architectures include portability, efficiency, consistency and scalability. In the past, getting something running on your system took significant time, spawning the phrase, “It works on my machine.” Thanks to the portability of containerization, which allows programs to run on virtually any system, we can now all consistently run in the same environment. This increases our efficiency since we no longer have to fiddle with the environment or mess with our local systems. While VMs can also achieve this, they are much more expensive in terms of host system resources and take more time to run. Containers are disposable by nature and do not concern themselves with the lower level, allowing the host system to take care of that. This is what makes them great for scaling as well, as it’s quick and easy to run more of them as needed or remove them.

 

In your experience, what is the best use case for container technology?

The best use case for container technology is running instances of a single application where you care about cross-system compatibility, faster responses to failures and easy scaling. Containers have solved the issue of cross-system compatibility by isolating the runtime environment away from that of the host’s. That means teams can focus on running the container’s engine software rather than worry about what operating system the user is running. The isolated disposable environment helps if the application crashes during its runtime, as it will not bring down the host machine, which may also be running other containers. The instance can easily and quickly be replaced by another instance. This behavior also provides a great advantage at scale, as we can simply add more instances in order to handle more load. When that load goes back to normal levels, you can just remove the ones that are no longer being used.

 

The best use case for container technology is running instances of a single application where you care about cross-system compatibility, faster responses to failures and easy scaling.”

 

What are the limitations of container architecture, and how do you work around or mitigate them?

Containers are great for many reasons, but they come with their own limitations. It’s better to keep containers isolated to just a single application. Trying to run multiple or large applications on a single container is generally a bad idea, as this will eat up more resources than expected and bring down the entire container with only a single point of failure. Nevertheless, it’s an easy fix. Just be sure to keep your containers dedicated to run a single application, and run any additional ones as separate containers. Storage is another large limitation of containers. Unlike VMs of bare metal, they are not capable of persistent storage.

 

 

Images via listed company and Shutterstock. Responses have been edited for length and clarity.

Hiring Now
Peloton
Digital Media • Fitness • Hardware • Mobile • Software