As more businesses and startups transition to containers in their distributed system environment, or start to use microservices in their daily workflow, the need to have better visibility into what services are running is critical, as well as a good understanding, at some level, of how these microservices fit together.
Basho’s Ricon 2015, held in San Francisco last week, brought together discussion around microservices, working in containers, and agile development strategies for working with applications at scale. The New Stack Founder Alex Williams spoke with Adrian Cockcroft, technology fellow at Battery Ventures and Bridget Kromhout, principal technologist at Pivotal at Ricon regarding the current issues facing distributed systems.
Adrian Cockcroft, Battery Ventures
Monitoring microservices is one of the chief problems facing distributed systems today, Cockcroft said. Microservices have caught on to become tech’s latest buzzword due to their ability to break down application development problems into smaller, actionable tasks that can then be assigned to individuals and acted upon quickly. This allows for enterprises to build systems faster.
With microservices, there are a multitude of small pieces of an application, often bundled with dependencies alongside it to ensure functionality across a variety of systems. This is simple to keep track of if a developer only has a small amount of microservices in their stack. However, when one has hundreds of microservices in a production deployment, keeping track of them all can quickly get out of hand.
To aid in solving the problem of microservice visibility, Cockcroft has built a simulator for microservices that simulates a complicated system environment running across a series of servers, with each individual container generating data to connect with microservice monitoring tools. This will give developers a scenario of where 500 or more VMs are running, complete with associated metrics.
With currently available data models, there can be a complex chain of dependencies to wade through to find the right graph. Existing tools such as Oracle’s EPM try to capture the flow of calls through the system, as do other tools such as App Dynamics and New Relic. These models are often simple, structured with a front end, middle tier, and a database.
Once there are hundreds of microservices and databases deployed with this system architecture, such software struggles to keep up as their data models have difficulty grasping how these microservices are making hundreds or thousands of calls among containers.
“The development world is changing so fast beneath you, you can’t assume everything will stay static,” said Cockcroft.
Bridget Kromhout, Pivotal
Distributed systems are growing so vast that humans are having difficulty logically fathoming their scale. “If one cannot even begin to comprehend a system’s architecture, how they then be tasked with making decisions about where services are located or if their dependencies will work together?” said Kromhout.
This is where developers have to turn to automation to address solutions to these particular issues. If software development teams are trying to solve problems by visualizing entire systems mentally, failure is nearly guaranteed. Building systems at scale requires them to be both resilient and fault tolerant though Kromhout stresses that trying to architect failure out of a system is futile.
In her talk at Ricon, Kromhout delved into the issue of remote teams and communication architecture. Whether a team is distributed or in-house, developers can better foster inter-team communications by adding better documentation to their commits. Rather than saying, “I fixed this.” one can say why, as their distributed team members working off-site will thank them for the additional context.
Basho, New Relic and Pivotal are sponsors of The New Stack
Feature Image: Basho.