Service discovery tools for microservices
6 Microservices Options You Need To Consider
Microservices is a software development technique that focuses on breaking applications into discrete and separate services within the wider app. This carries multiple powerful benefits. The “connected but separate services” approach gives you more flexibility in planning your architecture, and doesn’t nail you down to one set of ideas as rigidly as other approaches tend to do.
With a microservices orientation to your apps, they’ll also be easier to test along the pathway of development, since there are discrete separations and fewer entanglements. Clarity is power…and that’s the power of microservices.
To that end, here are 6 of our top picks for microservices deployment options.
Drawing on fifteen years of expertise from handling project workloads at Google, Kubernetes allows you to scale your operations seamlessly, without increasing the size of your team or onboarding anyone else in any capacity.
One of the core tenets of their philosophy is “never outgrow.” In other words, they’re centered around growing with you. Your business can and should scale, and the demands placed upon it will grow, certainly. But with Kubernetes at your back, your actual team doesn’t have to grow an inch.
Kubernetes is also open-source, which means you can operate in a wide variety of environments: hybrid infrastructure, on-premises infrastructure, and public cloud infrastructure. So your projects can go where you need them to.
Consul was created by the programmers over at Hashicorp, which has already produced a variety of previous software offerings. Consul focuses on a less invasive approach to services discovery.
In most microservices approaches, each service element has to formally announce to a central cluster that it’s “alive and ready for business,” so to speak. This clogs the overall flow of things, and is more invasive to your system than it needs to be. It will then have to put out a separate command when it needs to be removed from active service.
Consul gets past this inconvenient hurdle by having each node in your system contain the Consul agent. The Consul agent automatically tracks the status of each service element, so that discrete separate commands don’t have to be issued at each opening and closing of a service.
Etcd is an offering from Compose, an IBM company. Compose’s mission statement says it best, “to help developers run databases reliably, securely, quickly, and easily – 24/7.”
Etcd is a fully managed “database as a service” platform. This makes it ideal if you need to manage large amounts of databases, but don’t want to jump through the countless hoops of database operations. On their site, Compose states that Etcd can expertly help developers run thousands of databases without a hitch. The service is perfect for companies with truly large-scale operations in mind.
Aside from that, their prime feature is their auto-scaling ability. By tracking either storage or RAM, they can automatically detect when you need more storage space, and institute the required action for you. However, if you prefer to do things manually in certain cases, you can also scale manually depending on traffic expectations.
Zookeeper is an open-source microservices offering. As noted on their site, they focus on bringing their customers unrivaled strength in shifting conditions, with the recognition that a centralized approach is the most streamlined and efficient.
Presence, group management, and consensus protocols are automatically implemented, so that your various applications will not have to waste time and clog your workflow by doing it themselves.
They even link out to a page called “Zookeeper Recipes,” which details the various combinations of software stacking you can carry out to create even more powerful applications. So Zookeeper is ideal if you value a bit more creativity in your approach.
Smartstack is an automated and transparent service discovery and registration system that is designed to be simple to use. It is built using ZooKeeper, HAProxy, Synapse, and Nerve. Smartstack adds another layer of control over a service discovery setup, and is a direct competitor to Consul. The two products, SmartStack and Consul, are close enough that you will get different answers. Airbnb seems to prefer SmartStack, with the reasoning that the flatter setup of SmartStack is preferable to Consul.
Eureka is a REST (Representational State Transfer) based service for locating services aimed at load balancing and failover of middle-tier servers. It is probably best known for being used by Netflix for helping manage their fleet inside of AWS. It is relatively easy to setup and integrate with spring-cloud, has built in health checking and monitoring features along with a web UI.
Eureka is primarily a load balancer, and generally is the superior option when needing to deploy a large amount of traffic-intensive microservices.