The adoption of cloud-native technologies such as containers has seen interest grow in the concept of a service mesh, a layer needed to control the service-to-service communications typically found in a microservices architecture. The need for this layer became apparent as the number of services expanded, making management of these communications complex and difficult. While the open source community has been working on solving the challenges of managing service-to-service communications in the containers ecosystem through the rise of Istio, this is not the only use case for the service mesh. AWS has taken a broader perspective on what modern hybrid application environments need and developed an application-centric service mesh called AWS App Mesh.
AWS looks to extend the concept of a service mesh to all applications
The application landscape is changing rapidly, with cloud-native applications, such as containers, being developed and deployed to take advantage of the benefits a distributed cloud environment provides. Ovum's infrastructure software forecast for 2017‒22 for the container management platforms show a CAGR of nearly 34% by 2022. This increase in the management platforms is in response to the growth in applications expected over this period.
The need to manage business-critical applications in the cloud means IT must be able to control the many different variables that affect performance and security through the application of policies. The rise of cloud-native applications has been led by one specific team, developers, and as such has spawned an entirely new set of tools, processes, and solutions to develop, deploy, and manage these applications. This was the genesis of DevOps, but with the increase in adoption of a microservices approach, the management of these services from both a development and operational perspective now requires a new approach.
App Mesh from AWS is an application-centric service mesh that uses the open source Envoy technology as a network proxy that runs as a sidecar on the application. Ovum considers that using this commonly used technology (Envoy) will help AWS, because organizations that already have experience of running Envoy can quickly adopt AWS App Mesh.
AWS App Mesh is based on a control-plane and data-plane architecture, where the data plane is responsible for managing the incoming and outgoing traffic to the service based on the policies set in the control plane. AWS App Mesh supports third-party monitoring and reporting tools, since the metrics from the services can now be exported and consumed by any tool, which allows organizations to deploy App Mesh without needing to retool its monitoring and management solutions.
This first release of AWS App Mesh will work with services that run on EKS, ECS, Fargate, EC2, and Kubernetes on EC2. The network-routing capabilities of the initial release are limited to simple weighted routing, but AWS has stated that future releases will support the ability to configure new traffic-routing features such as retries, timeouts, circuit breaking, and server-side rate limiting in a consistent manner.
Ovum considers that with App Mesh, AWS is providing customers with a capability that will allow greater visibility and control of applications, resources, and service levels across their AWS environments. As the cloud-native and microservices approach to application development and deployment becomes more common, this more granular service-level management will be required. AWS is not the first vendor with this technology, but it has produced an easy-to-use approach so that organizations can begin to get benefits from a service mesh quickly. Ovum considers that this ease of use will be a major advantage for AWS; the challenges for service mesh technology will become apparent later as organizations look to use a service mesh in a multi-environment scenario.
Roy Illsley, Distinguished Analyst, Infrastructure Solutions