SlideShare a Scribd company logo
© 2019 TWILIO INC. ALL RIGHTS
RESERVED.
Micromonoliths
Fixing the microservice monoliths
Asko Tiidumaa
atiidumaa@twilio.com
© 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
© 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...
© 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
© 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
© 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.
© 2019 TWILIO INC. ALL RIGHTS
RESERVED.
Incentivising microservices
• Reduce the cost of introducing a new service
• Self-service everything
• Everyone is a devops
THANK YOU

More Related Content

PDF
Cloud Computing - 10 minutes essentials and the future of cloud (Cloud Develo...
PPTX
Applications for Cloud Video Management
PDF
About Me - Vinay Pandey
PDF
Into the cloud white paper
PPS
Product List March 2010
PPTX
The distributive aspect of cloud on the digital world
PDF
Castle: $30K VC investment, eventually raising $3.3M. Castle's initial pitch ...
PDF
Mon1030 euro entrepreneurshipcloud-antonioferreira-lunacloud
Cloud Computing - 10 minutes essentials and the future of cloud (Cloud Develo...
Applications for Cloud Video Management
About Me - Vinay Pandey
Into the cloud white paper
Product List March 2010
The distributive aspect of cloud on the digital world
Castle: $30K VC investment, eventually raising $3.3M. Castle's initial pitch ...
Mon1030 euro entrepreneurshipcloud-antonioferreira-lunacloud

Similar to Modern problems in backend engineering, Asko Tiidumaa (20)

PDF
"Evolution of microservice architecture on Conversations API", Alexander Mali...
PDF
apidays LIVE Paris 2021 - What does the future of communication APIs look lik...
PPTX
Monolith to microservices?
PDF
Twilio Inc.: Comprehensive Profile and Global Locations
PPTX
Distilling the monolith to microservices journey at CMG
PDF
Kranky Geek 2015 - Decisions & Considerations in building your WebRTC App
PPTX
API Service Gateway. First Steps on the Way from Monolith to Microservices.
PDF
Building data-driven microservices
PDF
WTF is a Microservice - Rafael Schloming, Datawire
PPTX
On Microservices
PDF
An illustrated guide to microservices (boston python meetup - Aug 2016)
PPTX
Microservices - firststatedot.net - 13-oct-15
PDF
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
PPTX
Twilio using Groovy Grails
PDF
Wie Monolithen für die Zukuft trimmen
PDF
DockerCon 18 Cool Hacks: solo.io
PPTX
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
PPTX
Microservices architecture ext
PDF
apidays LIVE Singapore 2021 - Building the next generation of financial servi...
"Evolution of microservice architecture on Conversations API", Alexander Mali...
apidays LIVE Paris 2021 - What does the future of communication APIs look lik...
Monolith to microservices?
Twilio Inc.: Comprehensive Profile and Global Locations
Distilling the monolith to microservices journey at CMG
Kranky Geek 2015 - Decisions & Considerations in building your WebRTC App
API Service Gateway. First Steps on the Way from Monolith to Microservices.
Building data-driven microservices
WTF is a Microservice - Rafael Schloming, Datawire
On Microservices
An illustrated guide to microservices (boston python meetup - Aug 2016)
Microservices - firststatedot.net - 13-oct-15
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
Twilio using Groovy Grails
Wie Monolithen für die Zukuft trimmen
DockerCon 18 Cool Hacks: solo.io
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Microservices architecture ext
apidays LIVE Singapore 2021 - Building the next generation of financial servi...
Ad

More from MobileMonday Estonia (20)

PPTX
Modern problems in backend engineering, Siim Kaspar Uustalu
PPTX
Modern problems in backend engineering, Marten Meikop
PPTX
Modern problems in backend engineering, Joel Mislav Kunst
PPTX
Modern problems in backend engineering, Jüri Tarkpea
PDF
Scientists meet Entrepreneurs - AI & Machine Learning, Mark Fishel, Institute...
PPTX
Scientists meet Entrepreneurs - AI & Machine Learning, Kristjan Korjus, Starship
PDF
Scientists meet Entrepreneurs - AI & Machine Learning, Peeter Piksarv, Moonca...
PPTX
Scientists meet Entrepreneurs - AI & Machine Learning, Tambet Matiisen, Unive...
PDF
Scientists meet Entrepreneurs - AI & Machine Learning, Dima Fishman, Universi...
PDF
Space Edition, Sven Lilla, ESA BIC
PPTX
Space Edition, Kadri Bussov, EST Cube
PPTX
Space Edition, Kalev Koppel, KappaZetta
PPTX
Space Edition, Dr. Ali Nadir Arslan
PPTX
Product Marketing, Kair Käsper, Pipedrive
PDF
Product Marketing, Marelle Ellen
PPTX
Product Marketing, Mattias Liivak, Fortumo
PDF
What Does it take to Develop Kickass Products?, Laura Noodapera
ODP
What Does it take to Develop Kickass Products?, Britt Maasalu
PPTX
Meeting Female Entrepreneurs in Tech, Triinu Sirge
PDF
Meeting Female Entrepreneurs in Tech, Triin Kask
Modern problems in backend engineering, Siim Kaspar Uustalu
Modern problems in backend engineering, Marten Meikop
Modern problems in backend engineering, Joel Mislav Kunst
Modern problems in backend engineering, Jüri Tarkpea
Scientists meet Entrepreneurs - AI & Machine Learning, Mark Fishel, Institute...
Scientists meet Entrepreneurs - AI & Machine Learning, Kristjan Korjus, Starship
Scientists meet Entrepreneurs - AI & Machine Learning, Peeter Piksarv, Moonca...
Scientists meet Entrepreneurs - AI & Machine Learning, Tambet Matiisen, Unive...
Scientists meet Entrepreneurs - AI & Machine Learning, Dima Fishman, Universi...
Space Edition, Sven Lilla, ESA BIC
Space Edition, Kadri Bussov, EST Cube
Space Edition, Kalev Koppel, KappaZetta
Space Edition, Dr. Ali Nadir Arslan
Product Marketing, Kair Käsper, Pipedrive
Product Marketing, Marelle Ellen
Product Marketing, Mattias Liivak, Fortumo
What Does it take to Develop Kickass Products?, Laura Noodapera
What Does it take to Develop Kickass Products?, Britt Maasalu
Meeting Female Entrepreneurs in Tech, Triinu Sirge
Meeting Female Entrepreneurs in Tech, Triin Kask
Ad

Modern problems in backend engineering, Asko Tiidumaa

  • 1. © 2019 TWILIO INC. ALL RIGHTS RESERVED. Micromonoliths Fixing the microservice monoliths Asko Tiidumaa atiidumaa@twilio.com
  • 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. © 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. © 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. © 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. © 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. © 2019 TWILIO INC. ALL RIGHTS RESERVED. Incentivising microservices • Reduce the cost of introducing a new service • Self-service everything • Everyone is a devops

Editor's Notes

  • #2: GOAL: introduce myself and the topic This is not going to be technical, as many challenges need to be diluted by non-technical means at first
  • #3: GOAL: describe what a twilio is Why does one need a twilio - we take care of the burden of protocol translation, legal requirements etc We make the bizarre telco protocols invisible for the customer, encapsulating the complexity behind a nice HTTP API
  • #4: GOAL: familiarise audience with how we introduce new features, leveraging the small independent teams principle Some examples of things that have become popular (wireless), and some that are not (twilio SMSC) We sell trust - we should not break the customer experience with our experiments (vs facebook - go break things)
  • #5: GOAL: describe how a new feature service or client is introduced It does not matter whether we use HTTP or queues to communicate internally Create the service/API; create the library; use the library
  • #6: GOAL: describe the problem with logic being introduced to the client AND service The problem here is that the business logic for a feature owned by a team is not encapsulated within their service. It is now within the client library and even worse - upstream service. This is a problem as when one wants to change the functionality, it requires the coordination of many changes. Sometimes client libraries have also introduced "smart" fallbacks, totally invisible for the upstream service. Many microservices dependent on the libraries need to be changed. May actually be a hint of serious structural issues Not ALL changes are implemented within the library - downstream service specific business logic starts to leak outside of client
  • #7: GOAL: describe OUR ways to mitigate the problem Establish product/functional level dependency first - may help to refactor and isolate the change Prefer Swagger generated clients - service team publishes only the API spec, upstream service owns implementation - java, scala, python Split into smaller services which are safer to bump Strong borders between teams - but this has a communications cost… Time difference also helps :) Adopting maven BOM does address part of the problem. Quality assurance - detect issues as early as possible
  • #8: GOAL: describe ways of making introducing microservices easier admiral - create new role, comes with maven archetypes, repository and role templates what are the steps needed to introduce a new service/role? we have come a long way - security approvals etc Product SLA also helps to streamline strange wrinkles in the dependency graphs
  • #9: GOAL: wrap it up, allow questions My email address is atiidumaa@twilio.com