Analyze This: Understand Microservices Monitoring
Microservices have begun to see massive deployments by Netflix, Uber, Amazon, and other tech giants as well as by smaller organizations — and thus far, the power and agility microservices offer have more than lived up to the initial hype. As artificial intelligence (AI) and machine learning are added to the mix, you can expect to see this relatively new and powerful computing architecture to become that much more awe-inspiring.
But as organizations break the shackles of monolithic applications in favor of deployments that run on a shared pool of microservices, they quickly learn life can become more complicated than expected. First of all, microservices, which might serve various applications with very different computing needs, need to communicate. The resulting exponential number of potential interdependencies and errors thus makes managing and monitoring microservices that much harder.
The obvious solution, as the momentum for massive-scale deployments of microservices builds; is the adoption of advanced microservices analysis tools, as IT organizations wake up to the need to be able to monitor microservices down to every individual module.
“People have been focusing on just setting up microservices since their adoption began a couple of years ago. But people are just starting to realize that complexity becomes an issue when managing hundreds or perhaps thousands of interdependent microservices,” Jakob Freund, co-founder and CEO of Camunda, said. “Now, people are beginning to seek on a granular level how they work and want more visibility about how they all play together.”
Since the advent of large-scale deployments of microservices just a couple of years ago; Netflix, Uber, ING, and Amazon have since developed their own engines for microservices orchestration and analytics in-house.
Netflix, for example, has offered a seminal look at the possibilities microservices analytics as well as orchestration offer when the video streaming company revealed its open source Conductor platform over a year ago. Netflix continues to rely on the platform to allow millions of users select, stream and download movies and TV series, as microservices run transparently in the background.
Netflix’s Conductor’s orchestration engine manages these thousands of microservices with a JSON DSL-based blueprint, which defines execution flow. Conductor enables Netflix developers and administers to analyze, test, pause and stop, and repair individual models within the different processes, all of which power Netflix’ worldwide network.
“As the number of microservices grow and the complexity of the processes increases, getting visibility into these distributed workflows becomes difficult without a central orchestrator,” content Netflix engineers Viren Baraiya and Vikram Singh wrote in a blog post. “We built Conductor ‘as an orchestration engine’ to address the following requirements, take out the need for boilerplate in apps, and provide a reactive flow.”
Netflix’s and others’ microservices analytics and orchestration platforms are open source. They thus offer a wealth of information and code for organizations that want to take the plunge and develop their own deployments house. These deployments offer code for visibility into how individual microservices, which are really separate applications, are performing and communicate with each other, many of which have separate persistent storage interfaces.
The ultimate goal, of course, is for processes, errors, and bottlenecks to be managed in ways that are totally transparent to end users, as microservices-based platforms fix themselves with the help of microservices analytics. In the event of a bottleneck, for example, an end-use customer who tries to buy a widget or service on the Web would ideally never receive an error message that might prompt the user to “try again later.”
Developing microservices orchestrations and associated analytics capabilities are easier said than done in-house, of course. To that end, third-parties have emerged with solutions and services for those organizations that lack resources to develop the architectures in-house.
“Microservices are moving toward mainstream use today and often show many integration points with existing monolithic enterprise applications,” Torsten Volk, an analyst for Enterprise Management Associates (EMA), said. “Meanwhile, vendors of DevOps-centric application and infrastructure analytics software are stepping up to monitoring this often complex and dynamic world of applications consisting of shared services with often disconnected release schedules.”
To fill in the void for organizations seeking third-party alternatives that offer microservices analytics and monitoring capabilities within Business Process Model and Notation (BPMN), Oracle’s BPM offering or IBM’s WebSphere Processor Server serve as alternatives for large-scale deployments. Some stand-alone microservices analytics solutions have also emerged from Camunda, Stackstate, and Dynatrace, while others will surely follow.
Camunda offers Optimize 2.0, which is part of its enterprise workflow platform based on the BPMN standard. The open source graphics interface consists of a workflow diagram allowing for the monitoring and reconfiguring of individual microservices running in real time. One potential use-case scenario might be if, for example, an organization receives a cluster of 1,000 unexpected orders and transactions during a short time period. Thanks to the visibility the Optimize 2.0’s workflow diagram offers, monitoring and reconfiguring individual microservices to prevent or fix workflow bottlenecks are facilitated, Camunda says.
Stackstate’s microservices capabilities, in addition to business processes; cover cloud, container, and virtual machine (VM) deployments.
“When the scaling up of these microservices for the marketing campaign caused resource bottlenecks elsewhere,” said EMA’s Volk. “Stackstate shows you all the relevant events in an e-list and a topology diagram that pinpoints the event of your marketing campaign scaling up as the trigger for the bottleneck.”
Dynatrace offers DevOps integration of its full-stack monitoring capabilities. For continuous delivery of microservices, Dynatrace tracks the resource and user impact of each code push, within the overall context of the rest of your data center and cloud apps, Volk said. “Like Stackstate’s system, Dynatrace offers ML-driven dependency and BPM monitoring,” Volk said.
While firms are stepping up to offer tools to closely track performance and other metrics for microservices, they have yet to offer tighter security monitoring for microservices bundled with microservices analytics software. However, third-party vendor tools and services geared for microservices security monitoring exist, of course, as stand-alone services. They might technically fall under the microservices analytics product services category, but are geared for security.
The monitoring and security challenges associated with microservices architectures arises from how microservices were created to be highly scalable — which means they may replicate themselves across nodes rapidly, run for minutes, and then shut down, Rani Osnat, vice president, product marketing, for Aqua Security, said. Security tools geared for static locations, even virtual ones, will thus not work. “Additionally, the network becomes how do you dynamic scaling, so network controls must be able to keep up with the changes and have the visibility for intra-host and inter-host communication between microservices,” Osnat said.
Security, as well as monitoring, will, of course, continue to evolve as microservices deployments and underlying code continue to involve. For those organizations just looking to get their feet wet, the main concern, in addition to data security, is how to use analytics to track the complexity of the underlying architecture in the near term.
“Organizations are just now adopting microservices and setting up these somewhat complex infrastructures,” Camunda’s Freund said. “The next problem is handling this complexity and that is where big workflow automation [can help].”
Aqua is a sponsor of The New Stack.
Feature image via Pixabay.