Monitor & control communications across microservices applications on AWS with App Mesh
If you wish there was an easy way to monitor and control communications across microservices applications on AWS, consider it granted. AWS App Mesh is the latest announcement at AWS re:Invent to rock our world. Proceed with caution though: this service mesh is currently available as a public preview.
The announcements during AWS re:Invent are plentiful. We were really impressed by Firecracker – a new virtualization technology that enables customers to deploy lightweight micro Virtual Machines or microVMs and Amazon Kinesis Data Analytics for Java and now it’s time for something completely different.
Meet App Mesh: Service mesh for microservices on AWS
Identifying and isolating issues becomes a very difficult task when you start building more than a few microservices within an application. The problems that can occur are countless, starting with higher latencies and ending with error codes across the application. They can be addressed by adding custom code and libraries into each microservice and using open source tools that manage communications for each microservice but these solutions come with their own challenges.
Enter AWS App Mesh, a service mesh which “implements a new architectural pattern that helps solve many of these challenges and provides a consistent, dynamic way to manage the communications between microservices, as explained in the blog post announcing the service. “With App Mesh, the logic for monitoring and controlling communications between microservices is implemented as a proxy that runs alongside each microservice, instead of being built into the microservice code. The proxy handles all of the network traffic into and out of the microservice and provides consistency for visibility, traffic control, and security capabilities to all of your microservices.”
One of the biggest benefits of adding a proxy in front of every microservice is that you can automatically capture metrics, logs, and traces about the communication between your services. This way, you’ll easily collect and export this data to the tools of your choice. As of now, Envoy is integrated with several tools like Prometheus and Datadog.
You should use AWS App Mesh if you want to
- Streamline operations by offloading communication management logic from application code and libraries into configurable infrastructure.
- Reduce troubleshooting time required by having end-to-end visibility into service-level logs, metrics and traces across your application.
- Easily roll out of new code by dynamically configuring routes to new application versions.
- Ensure high-availability with custom routing rules that help ensure every service is highly available during deployments, after failures, and as your application scales.
- Manage all service to service traffic using one set of APIs regardless of how the services are implemented.
Keep in mind that AWS App Mesh is only available as a public preview at the moment and can be used in North Virginia, Ohio, Oregon, and Ireland AWS Regions.
Check out the GitHub repository for examples and roadmap.