There is a simple truth that pervades pretty much every discipline within enterprise IT. In order to gain flexibility you must sacrifice some simplicity and vice versa. In conjunction with the DevOps revolution which rapidly increased development times for new and existing applications came the breakout of the traditional monolithic application architecture into multiple component parts. Breaking the application into smaller components such as individual services or even as small as a function has provided the agility that developers needed to rapidly iterate their applications, but has resulted in an application architecture that is overall more complex.
Naturally the complexity of this new architecture gave birth to complete new product and service categories. Monitoring, testing, and troubleshooting of highly distributed applications has seen advancements in the Application Performance Monitoring space as well as the emergence of chaos engineering as a means of testing and understanding such highly distributed applications.
Automating the Last of the Infrastructure
Another new development that has come about as the result of cloud native application architecture is service mesh, a communication layer meant to provide connectivity between disparate services running on different platform, be they VMs, containers, or even serverless functions. The services that a service mesh enables communication with can exist across multiple clouds or even stretch between a public cloud and a traditional on-premises data center.
The primary value of a service mesh is that it allows development teams to define networking constructs such as load balancers, firewalls, and gateways programmatically. The main benefit of this is the ability to avoid the typical enterprise workflow of opening a ticket with the networking team and waiting days, or even weeks for the request to be completed. The automation of the network layer that comes with the adoption of a service mesh brings the network to the same programmatic state as the rest of the infrastructure being used in DevOps workflows.
A Change in the Adoption Curve
Service Mesh tools such as HashiCorp Consul, Istio, Solo.io SuperGloo have been out for several years. Despite this, adoption within the enterprise has not taken off up until now. There has been plenty of talk an excitement, yet there have been few large scale deployments to speak of. I was recently briefed by HashiCorp, creators fo the Consul service mesh platform and they are of the opinion that this is about to change.
Enterprise IT in general is known to be slow to adopt new technologies. Nowhere is the phrase “if it ain’t broke, don’t fix it” true than in a setting where a line of business application that is critical to daily operations is left in a stagnant state to avoid outages and loss of revenue. Eventually however, adoption of new technologies tend to make their way into the enterprise after they have seen successful adoption elsewhere. Slow uptake within the fortune 2000 is largely attributed to most enterprise IT being largely ITIL based operations with exists in a natural state of friction with DevOps workflows.
Service Mesh saw growing adoption and excitement during 2018 mostly in the SaaS space. As this adoption has grown, Hashicorp has seen more enterprise IT interest and smaller scale deployments for the purposes of testing and development. Use cases have begun emerging within the likes of financial services and automotive organizations that are expected to drive the adoption and deployment of service mesh further in 2019 than at any point up until now. Deployment can take place in stages so as to appease the more cautious of customers to avoid costly outages and other disruptions to business processes.
I remember when I first heard of service mesh and I conflated it with microservices as many have. It took me a while to understand the concept and its value as I’m sure it did for many enterprise IT shops. As usual, there were early adopters who understood and embraced the concept of service mesh early on and paved the way for the rest of us. As cloud computing matures and models of application development reach a critical mass, we are likely to see service mesh in the mix.