I’ve read a lot of articles recently that seem to suggest containers
kinda suck. And, well, sure. They don’t necessarily make code
faster, or more secure, or much easier to debug. They require
complex orchestration systems, and you can’t even use them to test
your code on a different OS. Gone are the days of evangelist posts
about how containers are the answer to all of life’s problems; now
the think pieces have titles like, “Why You Don’t Need Docker,” and
“I Did This One Weird Trick and Still Hit Kubernetes’s Scaling
Limits.”
But this brand of container fatigue is largely a product of how
we’re using them. I’ve often seen containers referred to as
“lightweight VMs,” yet it’s this focus on containers as a form of
virtualization that leads to a lot of the angst. Yes, there are
parallels and points of overlap, but containers are most useful when
we think of them as a tool for solving a related, but different, set
of problems. They are, in fact, exceptionally helpful—as long as
you’re not trying to use them to mimic an entire operating system.