There can be no doubt that containers could make things easier for developers. Having machines across platforms able to run the same code with the same results is a boon in nearly any environment. However, when the rose colored glasses start to fade, developer teams are often left wondering how to orchestrate their containers and scale them reliably. Platforms such as Docker Swarm and Red Hat OpenShift are just a few of the options available to developers that are looking to move beyond running a few containers across their stack.
In this episode of The New Stack Makers embedded below, The New Stack founder Alex Williams spoke with Steven Pousty, developer advocate (a self-described “PaaS dust spreader”) at Red Hat to learn more about using containers in production, why developers should let go of the outdated ‘pets vs. cattle’ analogy, and how containers have changed application development as a whole.
The conversation can also be heard on YouTube.
Pousty went on to explain that developers care about whether their code works, and not necessarily about containers themselves. “In the end, I don’t think most developers care about containers one bit. The thing developers care about is, I wrote my code, it works, and I didn’t spend all my time yak shaving.”
In short, what should be a simple process is made needlessly complicated by having to do a lot of other tasks before the main goal is reached. Spending all day installing a Tomcat server on your laptop just to build a simple Web application, is an example of yak shaving.
“Container platforms and containers are helping developers get rid of a lot of yak shaving. It’s like, ‘Here’s a container that has Tomcat set up how we want it: when you’re devving against it, you’re devving against the exact same container we’re going to be using in production.’ It gives you a way to worry about your code, and not all the other stuff that you didn’t want to do to get your code working,” Pousty said.
One thing that Pousty makes no secret about hating with a passion is the outdated analogy developers use to compare VMs and containers: “Pets vs. cattle.” Pousty states in no uncertain terms that the analogy is not only offensive to a billion people in the world for religious reasons, but fundamentally inaccurate.
“In my former life, I was a conservation biologist. I talked to ranchers; they care a lot about their cows. Every cow is thousands of dollars, so they track all their cows. An analogy I like better is ‘elephants and ants,’ elephants care about each and every member of the herd. The whole herd will protect offspring. That’s your VM. Ants don’t care a lot about each other, there’s no mourning period, and they’re very interchangeable in their work along with being genetically identical. It’s a much better analogy than cattle and pets.”
— The New Stack (@thenewstack) May 17, 2016
Using this analogy would also get developers used to the fact that their databases and servers will occasionally go down or experience issues. Rather than thinking of a system as being invincible, thinking of pieces of one’s architecture as worker ants that can easily come and go is helpful.
Pousty later went on to recall an exchange which summarized what containers have brought to the development ecosphere: “At the first DockerCon, I was talking with Dan Walsh. The thing he was most excited about with Docker was that it was getting rid of RPMs. He’s like, “Now we can deliver the bits and how it’s supposed to be configured.’ It was a huge step forward from RPM-install, and then go read this 30 page manual for how to configure it. It changed the whole conversation for everybody.”
Feature image via Pixabay