In today’s hyperactive, hyperconnected world, everybody wants things now. If not sooner. That puts companies in a difficult position. The old developer joke of “Better, faster, cheaper. Pick 2.” is not only no longer funny (if it ever was), it is the kiss of death for modern applications. They must be delivered more quickly, less expensively, and with high quality and more features, if their creators want to compete. In fact, a global study by Vanson Bourne revealed that 94 percent of executives face increased pressure to get apps out the door more quickly. And gone are the days of point releases that are basically bug fixes in disguise.
Instead, companies have had to find better ways to develop and deploy high-quality applications more quickly.
Microservices – single-function components of applications that can be released, updated, orchestrated, and integrated more easily and quickly than the monolithic applications of yore – are increasingly stepping into the gap. According to Julie Craig of Enterprise Management Associates, over 30 percent of organisations are already delivering software via microservices, and three quarters of them view microservices as being very important or critical to the future of their business.
Yet microservices also have a down side. They may help simplify the software development lifecycle by making it more agile, but at the same time, they make monitoring and managing application performance more complex and difficult. Instead of coping with one large program, operations or DevOps needs to keep an eye on dozens, or even hundreds of microservices. And each microservice must be monitored to preserve a good user experience, whether it resides on-premises or in the cloud.
That’s challenging enough, but increasingly, rather than using virtual machines (VMs) as homes for these microservices, organisations are running them in containers such as industry-leading Docker. And although containers are well-suited to running microservices, the monitoring and managing of their performance is nowhere near as mature as the same function for VMs.
Furthermore, noted Robert Gauthier, senior principal consultant at CA Technologies, “Elephants are easy to monitor; they can be tagged and tracked in their herds. But hummingbirds dart all over the place. Microservices are the hummingbirds of the IT infrastructure, and we need a completely new way to track them.”
Monitoring Docker containers, and the microservices that live in them, involves a series of challenges, since a containerized environment differs from others in key areas:
for Container Monitoring Virtual Tour”
- The ephemeral nature of containers. It doesn’t make sense to track individual containers, but rather clusters of containers and services. And it’s virtually impossible to poll containers the way we poll servers, which means containers must contain an agent to push information to the monitor.
- The proliferation of objects, services, and metrics to track. Compared to traditional architectures, there are many more things to monitor. A traditional stack of operating system and application may have 150 metrics, while a 10 container cluster on one host could have 1150.
- Services are the new focal point for monitoring. A microservice may be composed of several processes, each running in its own container. Monitoring needs to be performed within and across containers to accurately gauge performance and health.
- A more diverse group of monitoring end-users. In today’s DevOps world, IT staff aren’t the only ones monitoring applications.
- New mindsets are resulting in new methods, including machine learning and analytics.
Application Performance Management (APM) software is rising to the occasion. It can track how each component of an application responds as it does its job, and can pinpoint which microservices are lagging. Metrics can reveal where problems lie, and help identify the root cause. It also can detect whether a container is defective in some way, and initiate remediation.
Some APM products use artificial intelligence and machine learning to identify patterns and detect anomalies, cutting down on the number of spurious alerts that just serve to desensitize IT/DevOps to real issues.
This allows a company to monitor the overall user experience, which is probably the most critical metric for today’s users. Even if an app does its job, and does it well, if user perception is that it’s slow, or clunky, or difficult to navigate, the app will be considered a failure by frustrated users.
Sadly, more than half of organisations admit that they lack the tools to properly monitor Docker containers and microservices. That can be an expensive omission. Poor performance not only can lose existing customers, it can drive away potential new customers. There are too many choice available in the market to risk either of these results when a solid APM solution can keep things on track.
Yes, there’s an investment. But the cost will be overshadowed by the benefits to the business.