Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly reliable distributed coordination. ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are…
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.
Consul looks to me like an amazing solution to store configuration data. In huge cloud environments like what we are using nowadays, it is quite important to have a reliable source of parameters to our distributed applications, easily scalable and also, easy to change parameters spreading them efficiently over our entire environment.
Service Health: Using Consul for service health/discovery has been critical to our success in a hybrid environment
K/V Store: The Consul K/V store is the best solution out there for our particular use case, which is as a locking mechanism to coordinate otherwise random runs of our configuration management system. This has allowed us to have peace of mind of system availability in our on-prem infrastructure.
API: The Consul API as a whole is excellent and extremely easy to work with
Documentation: Hashicorp really does documentation well. Their examples are easy to follow and everything is written in a manner that is easy to understand for beginners with the tool.
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.
We used to use Microsoft SQL Server for configuration management of our services. Unfortunately that was a pain because of:
Developers did not know how to persist objects effectively in MS SQL Server
SQL queries or a custom web UI were the ways of keeping the data up to date, but both options were hard to use
Each service would have its own slightly different configuration in a file and in MS SQL Server so that caused a lot of confusion and configuration management overhead
Consul brought the following benefits:
Its own modern web UI
Streamlined use of objects and multiple different configuration (JSON-based)
Service DNS vs IP addresses is a God-send for the dev and operations teams.
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.