What is our primary use case?
I work in the IT industry as a technical consultant, and my day-to-day responsibilities involve providing customer solutions, designing solutions, and helping to build infrastructure, mostly on cloud and containers.
I have used HashiCorp Consul for multiple features, and in my current organization, we are using it because it provides a distributed system with servers, agents such as client agents, control plane, and data plane. We are using this in an on-premises environment, and it has good scalability, which strengthens the whole environment. This is similar to Kong Konnect, which I worked with earlier, but specifically, this is HashiCorp Consul, and it is a distributed solution.
In my use cases, we are using HashiCorp Consul to manage knowledge base articles and microservices such as serverless and service mesh type solutions. It helps us to connect, find, and secure communication between services or between applications. For example, we have user services, order services, payment services, and inventory services. We do not need to find everything manually; we just use HashiCorp Consul, and it provides all the information when we need it.
What is most valuable?
The best features of HashiCorp Consul for my use case are its strong service discovery, hybrid cloud readiness, and high scalability. It has a built-in service mesh solution available, and from the security standpoint, it supports ACLs. Additionally, it integrates well with the HashiCorp stack; as I already mentioned, we are using Terraform and Vault, which is a positive point.
HashiCorp Consul really helps my organization. When we are troubleshooting, it is very easy to identify issues, missing services, or any gaps. From the deployment perspective, I would not say this is a positive impact because deployment is not that easy; the setup is complex. It is not user-friendly where you can research for a day or two and then directly deploy it. You need proper learning. It is not beginner-friendly, but once it is set up, it is easy to use, providing a strong microservice and service mesh platform.
What needs improvement?
The biggest friction point I have encountered with HashiCorp Consul so far is that it 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; it is a bit complex. Additionally, the UI is not that polished or user-friendly; it looks a bit cheap. Lastly, to go with HashiCorp Consul, you need to have a good and strong understanding of DevOps; otherwise, managing or deploying it is challenging.
If I could improve one thing about HashiCorp Consul, it would be enhancing the UI for better visibility and user-friendliness. That would help my team to manage better because if it provides a good understanding and a good overview of my service mesh and the details, that would be much better.
For how long have I used the solution?
I have been using HashiCorp Consul for the last one year.
What do I think about the stability of the solution?
I can think of this from the incident standpoint. Initially, we had a couple of issues while developers were doing application onboarding with the service mesh and this solution. Nowadays, we are not seeing any issues; we are not seeing any new Jira tickets created for issues, and we are not seeing any new incidents complaining about service mesh and service discovery. It really helps us to reduce our workload and to fix the existing issues that we had seen earlier with other tools.
What do I think about the scalability of the solution?
We had to go through particular training to adopt HashiCorp Consul when we first implemented it in our environment. 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, the components, and how its architecture works with server-based and client-based agents. The key components include a service registry, internal health checks, and a key-value store, and we mostly use it for service mesh as well.
Which solution did I use previously and why did I switch?
Before adopting HashiCorp Consul, we used Istio for service discovery and secure service-to-service communication. Istio is an open-source solution, and we tried the free, open-source product. With the help of Istio, we managed our services, the service mesh, and the whole solution itself, but now we are relying on HashiCorp Consul.
How was the initial setup?
As we recently adopted this tool, I can say that it is not used company-wide. I think only one or two departments are using it. We have developers who are using it, and we have infrastructure people who manage the clusters, and they are also using it. It is not widely used in my organization, but some of the departments are using this tool.
Which other solutions did I evaluate?
We did not look for the tools you mentioned, but we did try Kong, though not for the current project I am working on. For another project, we used Kong Konnect. Before going for HashiCorp Consul, we used an inbuilt solution provided by the Red Hat OpenShift platform, but we did not find that it worked that well, so we moved to HashiCorp Consul because it provides good scalability, performance, and from a monitoring standpoint, it is also good. Another part is the integration; it has a good ecosystem. In our current setup, we have OpenShift clusters, we have Vault, and we are also using HashiCorp Vault. We have integrated with Terraform, and all the deployments and infrastructure as code solutions are being done 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?
I am not using those additional features or the mature features of HashiCorp Consul, as we are new to this tool and we are still exploring the other components. I would rate my overall experience with HashiCorp Consul as an eight out of ten.
Which deployment model are you using for this solution?
On-premises