When monitoring the performance and health of microservices-based applications, it can be hard to see the forest for the trees. These apps have so many individual components that it makes it difficult to get a clear view of the overall picture.
Microservices is an increasingly popular software architecture in which applications run as a set of multiple independent services, with each service providing a small and specific type of functionality. These services are then loosely coupled with application programming interfaces to produce a fully functional application.
This approach effectively enables a continuous development process, with the ability to dynamically add, remove or modify components on the fly. It makes it easier and faster to develop, deploy and update apps in the face of rapidly changing business needs, which is why organizations are embracing the model. More than half of companies in a recent DZone survey indicated they have deployed microservices for at least one application, and 26 percent are doing so in production.
However, microservices apps do present some challenges. In particular, it can be difficult to monitor their behavior, performance and availability due to the loose affiliation of so many different components.
With traditional, self-contained, monolithic applications in which all components are tightly integrated, monitoring is a reasonably straightforward practice. Monitoring tools focus on infrastructure or singular software components, gathering a variety of runtime metrics such as transaction time, system response and transaction volume that help illustrate operational health.
Microservices apps don’t lend themselves to such a narrow monitoring focus because a single app can comprise hundreds of different services, and those services are continually changing. Individual services may be built by different groups of developers using different technologies, programming languages and data platforms, and they may be introduced into the application at any time.
What’s more, all these separate components may be hosted within both virtual machines and containers located across a private cloud, public cloud or hybrid environment. As such, apps rely upon a vast number of unexpected dependencies and interactions with infrastructure resources. All of these characteristics make it difficult to keep track of how services connect and communicate.
To pinpoint performance issues, IT staff responsible for ensuring service delivery require a monitoring solution that provides both a broad, end-to-end perspective of the app, as well as a granular view into each related service. One of the best new tools for meeting these needs is ScienceLogic 8.2, which uses a combination of agent-based and agentless monitoring technology to discover and map the relationships between microservices assets.
The application discovery and dependency mapping features in ScienceLogic enable an organization to identify performance issues anywhere across the stack, whether it’s a problem with an actual service or with one of the many dependencies and interactions with infrastructure resources that allow the services to communicate with each other.
A key feature is ScienceLogic’s lightweight agent technology. Although the core platform is agentless, the agents allow for automated discovery of very granular metrics into specific workloads. The agent technology also allows customers to monitor and analyze log data that often holds the key to pinpointing the cause of application and infrastructure performance issues.
There is growing interest in microservices because the architecture enables apps to be developed, deployed and updated at scale and speed. This makes it easy to try new apps or to tinker with them to get the right tool for the job. Performance monitoring for service assurance can be complicated, however. Give us a call and let us show you how ScienceLogic can enhance your ability to use microservices to boost your business.