Pondering the "it works on my machine" problem
I've been working recently with Kubernetes and docker (super fun!). A question kept lingering in the back of my mind though: why is inconsistent stability and results in prod such a broadly reported issue?
I came across a LinkedIn course by Carlos Nunez and I really liked the reasons he gave:
- Missing Tools - Sometimes the dev system has a lot of tools that the app depends on that aren't on other machines.
- Different Configuration - Configuration for your app might come from different places depending on where it is. That inconsistency can cause issues.
Great analogy:
I like to compare a Docker to making a good meal for your friends. You have an awesome recipe passed on down through the generations. When you make it at home, it tastes phenomenal. However, it tastes very different when you make it at a friend's house and even more differently when you make it at your parents' house.
Maybe it's because they have different pans, maybe it's because they have kosher salt instead of sea salt, or their stove is an electric stove instead of a gas stove. The reasons for the differences can be endless. It would be awesome if you had a box with all the hardware, ingredients, and tools needed to give justice to your great, great, great grandparents amazing recipe regardless of where it's made. You would have very high confidence in knowing that your friends and family will enjoy the same amazing dish that you did in your house.
That's the advantage that Docker brings to software development.
Posted in: dockerkubernetes