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

ISTA 2019 - Migrating data-intensive microservi...

ISTA 2019 - Migrating data-intensive microservices from Python to Go

In order for our systems to scale continuously and be resilient, they need to be constantly evolving. In this talk, I’m going to tell the store of how my team migrated a data-intensive microservice from Python to Go. First, we are going to start with the rationale behind the migration. Then we are going to go over the Python and Go tech stacks that we use. Last but not least, I’m also going to share our approach for migrating the service while running in production, adding new features and making sure there are no regressions.

Nikolay Stoitsev

November 15, 2019
Tweet

More Decks by Nikolay Stoitsev

Other Decks in Technology

Transcript

  1. Background Legal document Vary by country Vary by business line

    Triggered after every trip or food delivery
  2. More than 30 upstream systems More than 100 TBs of

    data stored Running on 400 containers in multiple DCs Large Scale
  3. More than 30 upstream systems More than 100 TBs of

    data stored Running on 400 containers in multiple DCs Running for 5 years Large Scale
  4. More than 30 upstream systems More than 100 TBs of

    data stored Running on 400 containers in multiple DCs Running for 5 years 99.999% availability for last 6 months Large Scale
  5. More than 30 upstream systems More than 100 TBs of

    data stored Running on 400 containers in multiple DCs Running for 5 years 99.999% availability for last 6 months Implemented in Python Large Scale
  6. What we need for each language? Training / Best practices

    / Documentation / Experts Project template / Bootstrapping
  7. What we need for each language? Training / Best practices

    / Documentation / Experts Project template / Bootstrapping Configuration
  8. What we need for each language? Training / Best practices

    / Documentation / Experts Project template / Bootstrapping Configuration Debuggers
  9. What we need for each language? Training / Best practices

    / Documentation / Experts Project template / Bootstrapping Configuration Debuggers Profilers
  10. What we need for each language? Training / Best practices

    / Documentation / Experts Project template / Bootstrapping Configuration Debuggers Profilers Building, Packaging, Deploying
  11. Zap

  12. ELK