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

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

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.

rick446

November 19, 2015
Tweet

More Decks by rick446

Other Decks in Programming

Transcript

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

    Docker Deployment with SaltStack Monitoring with ELK
  2. Externalizing our API Share functionality without (necessarily) sharing code Copy-paste

    is evil, and re-using modules makes deployment difficult
  3. 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
  4. Docker Power need by an api != power provided by

    a VM Port management for “free” https://github.com/jwilder/nginx-proxy
  5. 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
  6. Deployment Build the container locally Use DockerHub Blue - green

    deployment Automatic reverse-proxy with nginx-proxy Use an orchestration framework Do connection draining? (someday...)