There are two sides to monitoring – exposing problems with alerts and acting upon those alerts to find solutions to the exposed problem. For exposing problems, users can define any script for Consul to intelligently check and report the health status of all nodes in a cluster. These scripts could be as simple as returning a 200, or as complex as querying the load and query response time on a database server. Other monitoring solutions already provide such functionality, but where Consul shines is in the second half of monitoring – automatic intervention to find solutions to problems without human operators.
Since Consul has built-in health checking, it not only notifies operators of a node or service failure, but automatically routes traffic away from unhealthy nodes. Consul is also able to re-route traffic back to a troubled node, once the node reports it is healthy again. In this way Consul pushes the existing paradigms of monitoring, making it much more than a simple notification system. Rather it surfaces problems and solves them without human intervention. Don’t worry about that pager going off in the middle of the night – rest easy with Consul.
This talk will cover many of the high-level features of Consul by HashiCorp. Consul is completely free and open source and the code is publicly available on GitHub at https://github.com/hashicorp/consul.
While this talk may seem deeply technical on the surface, it is aimed at a very large audience. For those unfamiliar with Consul, I will discuss the internals of Consul (design, structure, deployment). For those familiar with Consul, I will demonstrate some amazing features they may not be aware of as well as provide useful examples. There will be some commands/code on slides, but there will be no live demos.
The most important component of the talk is demonstrating that Consul is more than a monitoring and alerting solution. It is a runtime for the modern datacenter. With Consul, infrastructure can adapt and mutate to the changing needs of the environment. If an alert is triggered that a web node has too much load, Consul can automatically remove that node from the load balancer. Once the health checks return to normal, the node is dynamically re-added in real time.
Seth Vargo has been a member of the DevOps community for about five years. He is a polyglot software engineer and open source advocate at HashiCorp. Previously, Seth worked at Chef (Opscode), CustomInk, and a few Pittsburgh-based startups. He is a co-author of O’Reilly’s Learning Chef and is passionate about inequality in technology and organizational culture. When he is not writing software or working on open source, Seth enjoys speaking at local user groups and conferences. He is a co-organizer for DevOps Days Pittsburgh and loves all things bacon. You can find him on the internet under the single moniker “sethvargo”.
Seth is the author of O’Reilly Media’s Learning Chef. Learn more. http://oreil.ly/1cKkJls