Service Discovery

How do I find a service?

... for SOA, micro services, distributed systems

©2015 André Grötschel

Previously

reading matter: a list

Type Description
Simple File / Excel

Dies kann nur einer verwalten

Viel Absprache notwendig

Wiki

immer noch manuelle Pflege

bzw. Wiki = Mülldeponie oder veraltet

Wiki Example

background reading matter

It is called
Service Repository

Type Description
Architekten Liste

zentrale Stelle

manuell

Service

jeder Service muss als Client sich anmelden

zentrale Verwaltung

manueller Eingriff möglich

technical construction

known companies

Communication

Software

  • Apache Zookeeper
  • coreos/Etcd
  • consul.io
  • airbnb nerve und synapse framework
  • doozerd
  • Netflix’s Eureka (aws)
  • hashicorp/serf (dezentral, gossip protocol)

Apache Zookeeper

coreos/Etcd

  • source: github coreos/etcd
  • go (golang)
  • Fokus: unix/linux / container
  • HTTP+JSON
  • distributed

Doozer

consul.io

  • source: consul.io
  • go (golang)
  • service discovery, monitoring
  • Fokus; Multi-Datacenter

self made

  • restfuel service
  • json -> simple protocol
  • 1. Versuch C#
  • 2. Versuch go
  • web user interface

api / urls

json protocol (see next slide)

  • /showall
    (only get)
  • /service/{name}
    (get, put, delete)

protocol

http://ds.example.com/service/myservice

    {
        "name":"myservice",
        "expired":"2015-07-20 21:00:00",
        "service": 
                [ 
                    {
                        "url": "http://myservice.example.com",
                        "version": 1.2
                    }
                ]
    }

service side info

http://my.service-example.com/info

    {
        "name": "myservice",
        "description": "my wonderful service",
        "version": 1.2,
        "methods": 
                [ 
                    {
                        "methodname": "abc",
                        "paramter": "mydata",
                        "description": "get mydata, a wonderful data structure",
                    },
                    {
                        "methodname": "two",
                        "paramter": "date",
                        "description": "get a date",
                    },
                ]
    }
###Links### * [projekt-matrix.de](http://projekt-matrix.de) * [github.com/andre-hub](https://github.com/andre-hub/) * [Twitter: grtschl](https://twitter.com/grtschl) * [ADN: grtschl](https://app.net/grtschl)
##THE END## by André Grötschel [slides.projekt-matrix.de/servicediscovery](http://slides.projekt-matrix.de/servicediscovery/) Thanks