What is our primary use case?
My main use case for HashiCorp Consul is for multiple features. In my current organization, we are using it to provide a distributed system with servers, agents, client agents, control plane, and data plane. We are using this in an on-premise environment, and it has good scalability and strengthens the whole environment. This is similar to Kong Connect which I already worked with earlier, but HashiCorp Consul is specifically a distributed solution.
When I work with HashiCorp Consul in a normal week, the first thing I'm usually doing is managing the KVs, which are the knowledge base articles. We are also using this for microservices, serverless, and service mesh solutions. What it does is help us to connect, find, and secure communication between the services or applications. We have user services, order services, payment services, and inventory services. What HashiCorp Consul does is eliminate the need to find everything manually. Instead, we use HashiCorp Consul and it provides all the information when we need it.
How has it helped my organization?
HashiCorp Consul has had a positive impact on my organization so far because it really helped fix issues. When we are doing troubleshooting, it is very easy to troubleshoot if there are any issues, missing components, or gaps. From the deployment perspective, I would not say that this is a positive impact because deployment is not that easy. The setup is not that easy and is somewhat complex because it is not user-friendly. You cannot do research for one or two days and then directly deploy it. You need proper learning and it is not beginner-friendly. From the deployment or setup side, I would say it is a bit more complex compared to other tools. However, once it is available and set up, then it is easy to use. We can easily use it and it provides a strong microservice and service mesh platform.
What is most valuable?
When considering the best features of HashiCorp Consul for my use case, I would say the features include strong service discovery. It is a solution for hybrid cloud and multi-cloud ready. It is highly scalable and has a built-in service mesh solution. From the security standpoint, it supports ACLs. Additionally, it integrates well with the HashiCorp stack, which includes Terraform and Vault that we are already using. That is a positive point.
What needs improvement?
The biggest friction point and frustration I have encountered with HashiCorp Consul so far is what I already highlighted in our previous discussion. First of all, this is not beginner-friendly. We need good learning and proper training to understand the concepts and the architecture. Another part is the deployment or the setup, which is not that easy and is somewhat complex. Another thing I can think of is the UI or interface which we get with HashiCorp Consul. It is not that polished or user-friendly. So it looks somewhat chatty. Another part is that to go with HashiCorp Consul, you need to have a good and strong understanding of DevOps. Otherwise, you will not be able to manage it, deploy it, or use it.
If I could improve one thing about HashiCorp Consul, the single change that would have the biggest positive impact on my workflow would be that the UI has better visibility and is more user-friendly. That would really help my team to manage it because if it provides a good understanding and good overview of the service mesh and the details, that would be much better.
For how long have I used the solution?
We are still exploring the other components.
Which solution did I use previously and why did I switch?
Before adopting HashiCorp Consul, we were using Istio for service discovery and secure service-to-service communication. Istio is the open-source solution and we tried with the free open-source license-based product. With the help of Istio, we were managing the services, the service mesh, and the whole solution itself. Initially, we used Istio. Now we are relying on HashiCorp Consul.
How was the initial setup?
When I first implemented HashiCorp Consul in my environment, it took some time to get everything up and running because we had to go through particular training to adopt HashiCorp Consul. It took some time to understand the concepts and the terminologies. It requires training to understand all the aspects of HashiCorp Consul, such as its architecture, how it works, and what the components are. HashiCorp Consul architecture is server-based and client-based agents. The key components include a service registry, internal health checks, and a key-value store. Mostly we use this for service mesh as well.
Which other solutions did I evaluate?
Regarding looking at any other tools or approaches, we did not look for the tools you mentioned, but we did try Kong for a different project. For that other project, we used Kong Connect. Before going for HashiCorp Consul, we used some inbuilt solution provided by the Red Hat OpenShift platform as a service mesh solution. However, we could not find that working that well. So we moved to HashiCorp Consul because it provides good scalability, good performance, and from the monitoring standpoint, it is also good. Another part I can think of is the integration and the good ecosystem it has. In our current setup, we have OpenShift clusters and Vault as well. We are also using HashiCorp Vault and have integrated with Terraform. All the deployments and infrastructure as code solutions we are doing with the help of Terraform. This is a good choice and good solution for us for my current project.
What other advice do I have?
HashiCorp Consul is not company-wide used in my organization today. I think only one or two departments are using it. We have developers who are using it, and we have infrastructure people who are managing the clusters and are also using it. So it is not widely used in my organization, but some of the departments are using this tool.
I would rate HashiCorp Consul overall as an eight out of ten because it is somewhat complex to understand and from the deployment perspective.
My advice to someone considering HashiCorp Consul who has a workflow similar to mine is that this is a good tool we are using for our service mesh and service discovery. It is not bad to give it a try, so I think you should always give it a try. You can compare it with other tools, but we did the comparison with Istio and some other things, so we prefer it very much. So maybe you can just give it a try. It provides almost all the features including scalability, service discovery, health monitoring solutions, and internal health checks. It is a good solution for service discovery and service mesh and I recommend giving it a try.
Which deployment model are you using for this solution?
On-premises
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Other