Imagine you're a cog in a well-oiled team that's architected a wonderful new business app comprising 50 plus microservices running across Docker containers (it's a small deployment). Pretty standard stuff, right?
And everything's Docker-centric across dev, test, and pre-prod environments. The team is so DevOps awesome that they're even thinking about running Docker in production – gasp!
Perhaps it's a cloud delivery model, so you're using a number of elastic compute instances for each one of those container-housed microservice nuggets.
Now let's get down to monitoring.
No problemo I hear you say. Resilience is the mantra, so the team probably automates a swag load of health checks in short time intervals each and every day. Ok, it's resulting in an increase in events and alarms, but we can take it – we always have.
Of course, monitoring doesn't end at the ops console. Because this is a business-critical app, there are some pretty important functional considerations too. Being services-driven, the team is laser-focused on capturing "golden signals" all google SRE style (latency; traffic; errors; saturation), or perhaps they go further, injecting app performance checks into Jenkins CI builds and analyzing cloud instance level performance metrics.
But there is a pattern emerging and it isn't one of those funky analytics-based insights you keep reading about on the Interwebs. Nope, because of the dynamic (even ephemeral) nature of container architectures, microservice dependencies and API-centric communication, that sharp increase in alarms is becoming unmanageable. So much so that the notion of running Docker in production is not looking so good after all.
This is tragic for business.
Why? Because Dockerized applications and services are unequivocally the architectural fabric needed to engage customers at scale. Not next month or next year, now. Defer adoption due to concerns about service levels and the only thing we might be guaranteeing is an uncertain business future.
It's not to say that monitoring is trivial – it certainly isn't. It just requires a different approach. One that treats dockerized apps as the future of a modern digital business and works to, well - future proof them.
There are four important considerations:
1. Fast, Simple and Easy-to-Use
There's no rest for the wicked in the Docker world. What you configure for today can change in minutes, so explore agentless approaches that continuously detect, discover, model and map containers and clusters. When it comes to Docker monitoring, what's key is ensuring monitoring is baked into dockerized apps right from the get-go; not being forced to treat it as tough operational chore.
2. Deep, Actionable Monitoring Insights
Tech loves tech (and there's not much more techy than Docker), but the business cares about functionality and customer experience. It's why you'll need visibility into the "vital signs'"of containerized applications; including latency, response time and performance. Use analytics sure, but to find signals in all the noise, expose patterns, anomalies, behaviors. There'll be plenty of these with Docker, you just need a system that knows what questions to ask to find them.
3. Hyper Performance Delivered at Scale
Table stakes is aggregating millions of data points; rapidly detecting, diagnosing and isolating problems across Docker containers, clusters and elastic cloud services. For DevOps goodness give a big tick to approaches that allow cross-functional buddies to share deep Docker performance insights, while serving up actionable information in context of roles and tasks.
4. Comprehensive, Full Stack Support
Monitor Docker platforms and architectures top-to-bottom, inside-out and outside-in. Sounds like a mouthful, but what it really means understanding Dockerized app performance in context of business outcomes and then correlating to every nook and cranny (across apps, infrastructure and networks) that support them. Whether you're an SRE, app owner or sysadmin, this approach is sure to pay dividends.
Docker is transformational because it helps companies architect and deliver better business outcomes from software - faster. To support these goals, it's time to rethink and re-engineer our Docker monitoring approaches. Seek out solutions that help ensure this tech always delivers on its promise – today and well into the future.
Pete Waterhouse, Advisor, Product Marketing at CA Technologies.
Interested in learning more? Come visit us at DockerCon April 17-20, 2017 in Austin, TX.