Service discovery is a key component of most distributed systems and service oriented architectures.
The problem seems simple at first: How do clients determine the IP and port for a service that exist on multiple hosts?
Solutions described in the blog post:
ZeroRPC is a light-weight, reliable and language-agnostic library for distributed communication between server-side processes. It builds on top of ZeroMQ and MessagePack. Support for streamed responses – similar to python generators – makes ZeroRPC more than a typical RPC engine. Built-in heartbeats and timeouts detect and recover from failed requests. Introspective capabilities, first-class exceptions and the command-line utility make debugging easy. ZeroRPC powers the infrastructure behind dotCloud.
In short, the microservice architectural style is an approach to developing a
single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP resource
API. These services are built around business capabilities and independently
deployable by fully automated deployment machinery. There is a bare mininum of
centralized management of these services, which may be written in different
programming languages and use different data storage technologies.
From the Gilliam website:
Gilliam is a open source Platform as a Service (PaaS) that allows you easily develop, deploy and scale your application backend. Unlike commercial
and many other open source PaaS systems, Gilliams is intended for Micro Service Architectures.
Gilliam stands on the sholders of Docker. Every piece of code running on Gilliam is a Docker image. To that Gilliam adds service discovery, a router,
scheduling and elastic scaling.