We are living through a renaissance in DevOps. Companies are undergoing a digital transformation that requires them to integrate software into every area of their businesses. The design of this software inevitably follows Conway’s Law–that organizations will produce systems to match their team structure–and so we’ve seen the transition from monolith to microservices and service-oriented architectures (SOAs). As a result of these forces, companies are now deploying hundreds of applications to support their businesses.
The rise of microservices and SOAs have enabled software teams to meet the needs of their businesses but it has also caused an explosion in complexity. What was once a simple function call is now a cross-continent API request that can fail in unexpected and spectacular ways. What was once a single monitoring dashboard is now a byzantine maze of metrics, logs, and traces. A security model that was once a simple firewall now must protect against a myriad of ever-evolving attack vectors and threats.
Service mesh is an exciting new technology that promises to help tackle this complexity. Consul is a fully featured service mesh from HashiCorp that runs on multiple platforms and across public and private cloud. In this book, you’ll learn how to use Consul to harden security, increase reliability, simplify observability, and speed application delivery. I’m excited for you to start on your service mesh journey with Consul so let’s dig in and get up and running!
This book is written for everyone whose job is to continue to deliver secure and reliable software in these complex environments:
Software engineers and developers
Operators–DevOps engineers, site reliability engineers, systems engineers and system administrators
Security engineers and security teams
Decision makers–managers, directors, engineering VPs and CTOs
This book starts with a high-level overview of service meshes and Consul that will give valuable context to those not directly involved in day-to-day application development and delivery but who still need to understand the issues at stake in order to make intelligent decisions. It then dives into the details with in-depth instructions on how to deploy and operate Consul. This will be invaluable for those who are tasked with evaluating or adopting Consul.
This book assumes general knowledge of application development and networking. The sections on deploying to Kubernetes assume familiarity with Kubernetes. If you are deploying to virtual machines, there are identical instructions for those environments.
This book does not cover Consul features that are not related to its service mesh functionality. For example, Consul’s key/value store and DNS-based service discovery are not covered. In addition, this book is not a detailed production-ready operational guide to Consul. The aim of this book is to familiarize readers with Consul concepts and to get them “up and running” with its functionality.
In this book, you’ll learn service mesh fundamentals: what is a service mesh, how does it work and how did we get here. Next, you’ll learn what makes Consul unique and how it works under the hood. With that groundwork in place, you’ll be ready to deploy your own Consul onto Kubernetes or VMs. You’ll then learn how to use Consul to implement zero trust networking, add observability, increase reliability and control traffic.
Once you’ve mastered the service mesh basics, you’ll learn how to deploy Consul across multiple clusters and platforms and how to connect your service mesh to the outside world with Ingress and Terminating Gateways.
Along the way, I’ve included interesting tidbits from the Consul Engineering team about why Consul is built the way it is and from Consul users about their experiences running Consul in production.