singkham - Fotolia

Microservices management tools harmonize polyglot chaos

IT ops must replenish its toolkit to standardize infrastructure management and let developers experiment with the latest programming languages and application designs.

IT ops pros must support developer autonomy without losing the efficiency and control of standardized operations and automated application deployments. The answer for many shops is microservices management tools.

In monolithic application environments, IT ops could use an amalgam of app deployment techniques and management and monitoring tools to support developers. But as modern app architectures become increasingly complex and strain corporate networks, IT ops must consolidate their toolkit to create a unified view of apps and the many ways they're written.

"You have to make sure all your services are communicating the same way, so you can use the same tools and have some consistency," said Harrison Harnisch, a Chicago-based staff engineer for Buffer Inc., a social media management platform with a distributed workforce around the U.S. "Otherwise, you end up with a bunch of different tools to debug, and things get really complex really fast."

App deployment templates map microservices rollouts

Companies that successfully transitioned from monoliths to microservices said refactored app designs present an opportunity to streamline deployments through a DevOps pipeline. Microservices management tools, such as Apache Maven and other emerging open source utilities, stamp out uniform app images in such environments, regardless of programming language.

"Whatever you're working with, you check it out and say, 'Maven install,' [and] it's going to by God install it, no matter what language it's in," said Ernest Mueller, director of engineering operations at AlienVault, an IT security firm headquartered in San Mateo, Calif. "If our product team gets a wild hair to write something in Rust next week, as far as we're concerned, [IT ops] shouldn't be in the way of that."

Mueller's team at AlienVault also created two open source command-line utilities: The first, infra-buddy, automatically spins up infrastructure in the AWS cloud when developers check in code; the second, service-buddy, deploys and monitors microservices post-deployment.*

"All of that ops implementation lead time that can take weeks is completely shortcut," Mueller said. "But, of course, you can only do that if you can have bite-size pieces that can be stamped out."

Microservices prompt network architecture shifts

As individual microservices endpoints grow less complex, the external network between them takes on the communication -- and complexity -- previously handled by larger monolithic nodes. This has led some DevOps shops to shift to a service mesh network architecture to programmatically manage networks that support microservices.

"We get this awesome top-line view of the way all our services are running without having to write any code," said Zack Angelo, director of platform engineering at BigCommerce, an e-commerce company based in Austin, Texas, that uses the Linkerd service mesh. "As soon as a service lands in production, we immediately start capturing metrics on it."

If our product team gets a wild hair to write something in Rust next week, as far as we're concerned, [IT ops] shouldn't be in the way of that.
Ernest Muellerdirector of engineering operations, AlienVault

With Linkerd as the foundation for its microservices management tool arsenal, Angelo's team has added an open source remote procedure call utility developed at Google, called gRPC, which standardizes how apps communicate with one another. Service discovery, a process that automatically detects devices and services on the network, is programmatically handled with HashiCorp's Consul.

"We all share the same interfaces, so no matter if we have a Scala team building one service and a PHP team building another, there's common ground," Angelo said. "We don't have to worry about how URLs are structured with a REST service, for example. It all looks very uniform, so we can say with certainty, 'This operation is taking this long, and it's succeeding at this rate, and these are the latencies.'"

Service meshes come with their own management complexity, but other shops have also begun to evaluate service mesh projects such as Istio to add to their portfolio of microservices management tools.

"We're looking to encrypt traffic between services, and Istio will generate certificates out of the box, so two services can talk just to each other and it will encrypt those messages," Buffer's Harnisch said.

Istio service mesh
Istio service mesh architecture

Microservices ramp up IT monitoring demands

Programmatic network management with a service mesh also produces granular, detailed data for troubleshooting the network between microservices nodes. IT ops pros turn to time-series monitoring and log management tools such as Prometheus and the Elastic Stack -- formerly known as the ELK Stack -- to organize and make sense of this data.

"We traditionally use StatsD and Graphite pretty heavily, but we're moving over to Prometheus now, and we've had some really good early experiences with it," BigCommerce's Angelo said. "It puts everybody on the same page for troubleshooting."

Large-scale microservices shops such as eBay have also turned to open source tools in the Elastic stack, because they can be modified to suit their polyglot application monitoring needs. BigCommerce has also accommodated an increase in logs with an Elastic Logstash pipeline that collects log data and routes it through a Kafka data pipeline for consumption by Elasticsearch.

* Information changed after publication

Dig Deeper on Containers and virtualization

Software Quality
App Architecture
Cloud Computing
Data Center