Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Saturday Night Disco on Monday Morning

Saturday Night Disco on Monday Morning

Service discovery must be hard, from ye olde SRV records and UDDI to hip new etcd and serf, we keep inventing new ways to help robots talk to each other. But instead of trying to pick a winner, let's review the space so you can figure out how let applications work with whatever's clever.

More Decks by Joseph Anthony Pasquale Holsten

Other Decks in Technology

Transcript

  1. https://www.flickr.com/photos/-staci-/3197185673
    Saturday Night Disco
    on Monday Morning

    View Slide

  2. Hi, I’m

    View Slide

  3. View Slide

  4. View Slide

  5. adjustable capacity

    !
    highly available

    !
    low latency

    View Slide

  6. adjustable capacity

    !
    highly available

    !
    low latency
    change capacity

    !
    fail over

    !
    switch data center

    View Slide

  7. View Slide

  8. View Slide

  9. Name ➝ Connection Info

    View Slide

  10. What kind of
    clusters?

    View Slide

  11. LB

    View Slide

  12. VIP
    s
    s
    M
    s

    View Slide

  13. View Slide

  14. LB

    View Slide

  15. Shared Nothing

    Master-Slave

    JBOS

    Auto-balancing

    View Slide

  16. Service Facades

    Cluster Member Lists

    View Slide

  17. Service Facade

    Proxy

    DNS Record Set

    Virtual IP

    View Slide

  18. Cluster Member List

    Order

    Port

    Metadata

    View Slide

  19. { "myface-facade": [!
    { "hostname": "myface-lb.example.net" } ],!
    "myface": [!
    { "hostname": “myface-docker-001.example.net",!
    "port": 49160 },!
    { "hostname": “myface-docker-002.example.net",!
    "port": 49086 } ],!
    !
    !
    "myface-db-master": [!
    { "hostname": "myface-db-master.example.net" } ],!
    "myface-db-slave": [!
    { "hostname": "myface-db-002.example.net" },!
    { "hostname": "myface-db-003.example.net" } ],!
    !
    !
    "statsd": [!
    { "hostname": "10.0.0.216" } ] }

    View Slide

  20. View Slide

  21. Name ➝ Connection Info

    View Slide

  22. Name ➝ Connection Info
    Across Time

    View Slide

  23. Now you’ve got

    two problems

    View Slide

  24. Consistency

    Propagation

    View Slide

  25. Consistency

    Eventual

    Read-after-Writes

    Linearizable
    !
    chef, serf

    dns, s3

    zk, consul

    View Slide

  26. Propagation

    PubSub

    Poll
    !
    zk, etcd, serf

    dns, chef, consul

    View Slide

  27. eventual ryw linearizable
    poll chef dns consul
    pubsub serf zk

    View Slide

  28. View Slide

  29. but my app doesn’t
    like config from

    zk, dns, http!

    View Slide

  30. Config management

    Agent

    Remote Exec

    confd
    !
    cfengine

    ansible

    View Slide

  31. Facade v Member Set

    Ordered Record Sets

    Locator + Metadata

    !
    Consistency

    Propagation

    View Slide

  32. View Slide

  33. Wait, what happened
    to the MySQL master?

    View Slide

  34. M
    VIP
    s

    View Slide

  35. View Slide

  36. View Slide