Holding it All Together: APIs and Microservices at Synapp.io

55455771d6771dfd58860695d3e597e6?s=47 rick446
November 19, 2015

Holding it All Together: APIs and Microservices at Synapp.io

We had an idea, so we built it. Then we had more ideas, so naturally, we built them too. Before we knew it, we found ourselves trapped under a large and unwieldy system. All the good and the not-so-good in a closely intertwined spaghetti, with each change yielding unpredictable results. We will share how we unraveled our mess, splitting the complexity into independent microservices, all held together by a series of APIs.



November 19, 2015


  1. Holding it All Together: AKA Microservice Glue Rick Copeland @rick446

  2. (me) Not API books Not (primarily) API company

  3. Outline Where we started (last year) Externalizing an API Swagger

    Docker Deployment with SaltStack Monitoring with ELK
  4. Where we started © Carlos Garcia, CC BY-NC-ND 2.0 license

  5. Externalizing an API © Rodney Campbell, CC BY 2.0 License

  6. Core-APIs © Robert Kenney, , CC BY-NC-ND 2.0 license https://flic.kr/p/34RNPh

  7. Externalizing our API Share functionality without (necessarily) sharing code Copy-paste

    is evil, and re-using modules makes deployment difficult
  8. Swagger © Neal Fowler, CC BY 2.0 license https://flic.kr/p/9hmUrc

  9. Swagger Clean, documented, and enforced interfaces Workout the API as

    you’re building the client app, automagically generate client code Build or find the tools you need to be effective https://github.com/synappio/synappio-client
  10. Docker © s_volenszki, CC BY-NC 2.0 license https://flic.kr/p/4o3Ria

  11. Docker Power need by an api != power provided by

    a VM Port management for “free” https://github.com/jwilder/nginx-proxy
  12. Deployment © J J CC BY_NC-ND 2.0 license https://flic.kr/p/8k2Fqt ©

    Dubravko Sorić CC BY 2.0 license https://flic.kr/p/6McAtR © Graham Richardson CC BY-NC-ND 2.0 license https://flic.kr/p/boLcm
  13. Deployment Build the container locally Use DockerHub Blue - green

    deployment Automatic reverse-proxy with nginx-proxy Use an orchestration framework Do connection draining? (someday...)
  14. Monitoring © Rick Payette CC BY_NC-ND 2.0 license https://flic.kr/p/9F8tjX

  15. Monitoring Syslog ELK Stack Monitoring + Debugging

  16. Outline Where we started Externalizing an API Swagger Docker Deployment

    with SaltStack Monitoring with ELK
  17. Thank you @rick446 http://bit.ly/microservice-glue