Open-Source Service Discovery

Photo of Space Shuttle Discovery from wikipedia

http://jasonwilder.com/blog/2014/02/04/service-discovery-in-the-cloud/


From the blog post:

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: Lightweight RPC library built on ZeroMQ & MessagePack with Node.js, Python, & command line clients

ZeroRPC logo

http://zerorpc.dotcloud.com/


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.

Article: Microservices, by Martin Fowler and James Lewis

Microservices image

Article about Microservices from a couple of Thoughtworks guys.

From the article:

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.

Gilliam: Micro-services framework built on Docker, written in Python

Gilliam masthead

I like the idea of micro services. It feels very Unix-y to me. This project is full of buzzword goodness: Docker, REST, JSON, event-driven IO… If only they had worked Git in somehow!

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.