Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Modern problems in backend engineering, Asko Tiidumaa

67 views

Published on

Modern problems in backend engineering, Asko Tiidumaa

Published in: Mobile
  • Be the first to comment

  • Be the first to like this

Modern problems in backend engineering, Asko Tiidumaa

  1. 1. © 2019 TWILIO INC. ALL RIGHTS RESERVED. Micromonoliths Fixing the microservice monoliths Asko Tiidumaa atiidumaa@twilio.com
  2. 2. © 2019 TWILIO INC. ALL RIGHTS RESERVED. 7,000,0 00+DEVELOPERS 170,000 +BUSINESSES 100+ COUNTRIES WHAT IS TWILIO A software and cloud-based communications platform
  3. 3. © 2019 TWILIO INC. ALL RIGHTS RESERVED. How do we build Twilio • We believe in small, independent teams • Strong service ownership, everyone is a devops • New services and features often appear as experiments • Everything grows - feature set, teams, service count, complexity...
  4. 4. © 2019 TWILIO INC. ALL RIGHTS RESERVED. Introducing a new microservice • Build or extract the new service • Publish the client library • Upstream service adopts the library Service X Service A Service A client Service Y Service A client
  5. 5. © 2019 TWILIO INC. ALL RIGHTS RESERVED. What actually happens • Changes introduced to client library • All services to adopt the new library • ...suddenly, library with many clients • ...microservices from different
  6. 6. © 2019 TWILIO INC. ALL RIGHTS RESERVED. Getting out of a rut • Addressing issues on product level yields in less hacks • Strong service ownership and design to follow product and organisation structure Establish dependencies on functional level Identifying dependencies on functional and product level helps to identify the service or product team who should own that particular logic Use generated clients API specification published by the upstream service decreases the chances of business logic leakage. Also allows generating native clients for Java, Python, Scala… Divide and conquer Evolution just happens, line of code at a time. Prioritise splitting up services when the time is right.
  7. 7. © 2019 TWILIO INC. ALL RIGHTS RESERVED. Incentivising microservices • Reduce the cost of introducing a new service • Self-service everything • Everyone is a devops
  8. 8. THANK YOU

×