As a transparent layer in your infrastructure, a service mesh does so much more than facilitate communication between services. By way of how it offers adding security, traffic management, observability, and embeds business logic into the network, a service mesh is intricate in its sophistication and its potential value is enormous. Irrespective of what role you play in the design, implementation, and operations of your applications and infrastructure, cloud native or not, the presence of a service mesh stands to dramatically impact the way in which each of these functions are performed.
Identifying who this book is for has been one of the hardest challenges in writing it. The power of a service mesh is vast, and therefore, empowers individuals of many different roles. In short, this book is for anyone delivering workloads enabled by a service mesh and who wants to ensure their use of a service mesh provides the most possible value to the workloads and teams that rely on it.
You will not learn all of the ways in which people are putting service meshes to use. This book will teach you a subset of those uses and enable you to build these patterns. It will teach you about commonly used features and deployment architectures based on the specific use cases. This book teaches patterns of continuous delivery, in-application observability, identity and security, fine-grained traffic management, business logic augmentation, resiliency and chaos experimentation.
This book is not a cookbook of [name your specific service mesh] recipes. Rather, the patterns outlined here are generally considered to be universally applicable irrespective of the specific service mesh at-hand.
It’s our intention that the broader nature of the patterns presented should be of value to you generally and for a number of years to come. These patterns are open source and highly curated. The specific examples and code samples in this text are included to reinforce your comprehension of a given pattern, making it easier to digest in context of a specific service mesh or use case.
Yes, this book specifically outlines the value service meshes provide to individuals based on their role, so that you might come to expect more from your infrastructure; that you might squeeze all the value you possibly can out of your service mesh. In this way, you will have an understanding of how service meshes benefit developers, operators, and service owners differently.
Sidebars are included throughout with tips to highlight the benefits that a particular pattern brings to the shared work of these roles. We will withhold more lengthy discussions of how service meshes provide a high degree of value to the developer and the product owner. Perhaps, this is a topic for our next book.
The basic technical expectations of readers of this book are as follows:
You have functional knowledge of systems administration and network services.
You have read and digested the basics about containers (Docker, specifically) and container orchestration (Kubernetes, specifically).
You have an environment that has a deployment or aspirations to have a deployment of services running across multiple hosts.
You have familiarity with typical application concerns like authentication, authorization, user accounts, retry logic, timeouts and so on.
You do not have to be running a service mesh prior to reading this book. However, you will find more benefit in this text if you can put these patterns immediately into practice.
Yes, these patterns are useful regardless of where you are in your service mesh deployment because they will help you identify what questions to be asking yourself; they outline considerations you should make when identifying which service mesh to use. Service meshes are a powerful layer of cloud native infrastructure, and therefore, can be used in a number of different ways. Some service meshes may account for your use case (your intended pattern of use) more readily than the next. Understanding these considerations prior to selecting a service mesh or after having selected one, will serve to either enlighten or reinforce your ongoing service mesh selection, deployment, operating, troubleshooting, and so on.