Over the next couple of months, I'll be visiting places all around the globe to talk about the benefits, challenges, war stories and all the nook & crannies specific to using Docker in production. And the reason why is because one of the most frequent requests I get from devs is advice on methods for successfully deploying webapps/microservices in production.
So you asked, and I'm responding. As a sneak-peak of how I'm going to tackle the topic, here's an extract of the content I'm working on that will likely form the basis of my presentations. As I'm not completely there yet, feel free to drop me a line with suggestions of what you'd like to hear me talk about.
People Love Good Services
I'm a people-person. First things first; as the primary audience of consumers for your app, never forget who you're developing software for.
Every feature, functionality, addition or enhancement you undertake, should take a holistic approach to how your product will be consumed within its context. It should cover the whole spectrum of what makes a great piece of software - from logical UX, down to tweaking your DB at an Ops level.
I truly believe that great software services should be people-oriented, in order to remain relevant and useful. From a technology point of view it should be built with smart logic, be understandable, maintainable, testable, performant and stable. It was thanks to this belief of wanting to build smarter, better and more efficient apps that I caught the container 'bug' over 3 years ago, and I want to continue championing this cause in my talks.
Building minimal lovable
services images makes us (the team) happy alongside the people that use it. Because don't forget, a team is also very much about people. So expect to hear me talk more about the notion of what you need to make your minimal lovable service tick, and why the whole DevOps movement is in need of a reboot.
Be aware when you go down the tricky slope of deploying your first container-based app. James recently wrote an excellent blog post about the 9 critical decisions you need to consider when using Docker in production. I'll be expanding on those considerations, covering the whole gamut of emotions and feelings (good & bad) you'll sometimes encounter when getting to grips with using containers.
You'll also hear me talk quite a bit about the concept of 'technology noise'.
I'll demonstrate how there's actually a huge learning curve between the reality of a
docker run alpine echo 'hello world' example and actually running your app in production. There's a mountain to climb here folks, and we all know how learning a new technology can be a major pain in the ass. So I want to cover what's likely to be happening to your brain, as you're surrounded by all this noise. Part of that will include pointing-out the pitfalls and the solutions you need to avoid a dying minimal lovable