AWS App Mesh is a service mesh that provides application-level networking to make it easy for services to communicate with each other across multiple types of compute infrastructure. App Mesh aims to give end-to-end visibility and high-availability for applications. There is no additional charge for using AWS App Mesh. Users pay for the AWS resources (EC2 instances or requested Fargate CPU and memory) consumed by the proxy that is deployed alongside containers.
N/A
Consul
Score 9.6 out of 10
N/A
HashiCorp Consul is a tool for discovering and configuring services in the IT infrastructure. It provides service discovery, health checking, key/value stores and support for multiple data centers out of the box.
If your workloads are primarily based on AWS infrastrucure, where you might have EC2, EKS, Cloud Watch solutions, this service is native and good for you to maintain application level metworking. Also if you want to assess how secure inter service traffic could be achieved without a lot of custom writing, AWS App Mesh is a fine solution.
Consul can provide a light-weight, lightning-fast and robust solution for the following:
Network mesh
Service DNS
Global key-value store (values can be complex objects as well)
Utility for blue-green deployments
Service health checking
Consul can be used in any or a combination of these scenarios. Regardless if you are a network administrator or a regular software engineer, Consul can add value to your work.
The GUI: The GUI interface for Consul has gotten a lot better over the years. Since Consul is so easy to interact with via API, this isn't a showstopper, but for those that are less command line inclined it's always nice to be able to refer them to an easy to use and understand web interface
It's chatty: Consul is extremely chatty. Sometimes it's particularly chatty at 2am with no indication as to why and eats up quite a bit of resources. Just be sure to provision your systems that typically take a heavy load with a little extra for Consul
We rated AWS App Mesh as part of a comparison with Microsoft Azure AKS + Istio. While we rated its usability 6/10, recognizing its strengths in AWS-native integration, the difficult learning curve and limited flexibility made it less appealing for broader use. Also AWS announced the retirement of AWS App Mesh by the end of this year.
Consul's API is extremely user friendly. While their web interface isn't quite as "mature", it's still pretty easily navigated for the average person. Together they make a pretty easy to pick up and use tool.
I've never used paid support from HashiCorp, but I consider its support a good one, since they provide a lot of free resources for the community and there are good user groups supporting you on several sorts of issues. Also, HashiCorp is known as a company with a strong relationship with the community, that is easily noticed by the events HashiCorp promotes over the world.
Istio is high on operational costs as compared to AppMesh. HIgher learning curve for Istio as compared to AppMesh. Multi cluster support in AWS. App Mesh has IAM integration which is a plus for AWS workloads.
Consul was easier to configure out of the box than Serf and gave us more initial options. Its easy to use tools and support were by far superior to Serf in many ways. Support alone was one of those areas that Serf could take an example from Consul to keep its customers happy.
It contains a native web UI, which in contrast to its counterparts, is handy, very intuitive and - most importantly - very informative. It leaves no room for doubt about your services "forest" health. So, for that purpose, the learning curve was almost down to non-existent. Our team managed to work seamlessly with Consul being our services API
Our management staff had a difficult time understanding what Consul was really all about. For technical staff it is pretty simple to understand the huge value such a tool can pose to our suite of solutions, but once our management staff took the grasp of its valuable handy set of tools, we didn't take long to start using it and keeping track of our Swarm overall health, with was a constant concern for the entire company before.
For load balancing purposes, we were relying pretty much on guesses before we decided to use Consul. One would check a certain node overall health and decide if we would need to spring a new instance at AWS or Digital Ocean.