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

Evolving big microservice architectures

Evolving big microservice architectures

Microservices are a well-established architecture applied by many organizations around the world to build scalable and fault-tolerant backend systems. But as these systems grow so does the number of services in them. And this brings many challenges when we want to introduce new functionality. For a simple feature, engineers may need to spend a lot of time designing the end to end flow, changing code in multiple services and setting up complex test scenarios. During this talk, we’ll explore how to evolve a microservice architecture to be easily extensible based on some lessons learned from running 5000 microservices in production. We’ll go over different architectural patterns and open source tools that we can use to make it easy for all engineers to understand, extend and be more and more productive in such big complex systems.

Nikolay Stoitsev

November 02, 2019
Tweet

More Decks by Nikolay Stoitsev

Other Decks in Technology

Transcript

  1. Low Risk / P0 High Risk / P1 High Risk

    / P0 Med Risk / P3 High Risk / P0 Build
  2. Low Risk / P0 High Risk / P1 High Risk

    / P0 Med Risk / P3 High Risk / P0 Build CI / CD
  3. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Apache Kafka Apache Kafka Apache Kafka Sample architecture
  4. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Apache Kafka Apache Kafka Apache Kafka
  5. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 Apache Kafka Apache Kafka Apache Kafka
  6. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Apache Kafka Apache Kafka Apache Kafka
  7. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Task #2 Apache Kafka Apache Kafka Apache Kafka
  8. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Task #2 Task #3 Apache Kafka Apache Kafka Apache Kafka
  9. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Task #2 Task #3 Task #4 Apache Kafka Apache Kafka Apache Kafka
  10. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Task #2 Task #3 Task #4 Task #5 Apache Kafka Apache Kafka Apache Kafka
  11. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Task #2 Task #3 Task #4 Task #5 OK Apache Kafka Apache Kafka Apache Kafka
  12. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Task #2 Task #3 Task #4 Task #5 OK Task #6 Apache Kafka Apache Kafka Apache Kafka
  13. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Change Apache Kafka Apache Kafka Apache Kafka
  14. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Change MOCK MOCK MOCK MOCK Apache Kafka Apache Kafka Apache Kafka
  15. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Change Apache Kafka Apache Kafka Apache Kafka
  16. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Change Test Data Test Config Test Config Test Data Apache Kafka Apache Kafka Apache Kafka
  17. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Audit tenancy traffic Check Test Config Test Config Test Data Apache Kafka Apache Kafka Apache Kafka Check Check Check
  18. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Task #1 OK Task #2 Task #3 Task #4 Task #5 OK Apache Kafka Apache Kafka Apache Kafka
  19. Dispatch Pricing Services Tax Calc Vehicles Trips Services Users Payments

    Services Receipts Apache Kafka Apache Kafka Apache Kafka
  20. Dispatch Pricing Services Tax Calc Vehicles Orders Platform Users Payments

    Services Receipts Apache Kafka Apache Kafka Apache Kafka
  21. Dispatch Pricing Services Tax Calc Vehicles Orders Platform Users Payments

    Services Receipts Apache Kafka Apache Kafka Apache Kafka
  22. Dispatch Pricing Services Tax Calc Vehicles Orders Platform Users Payments

    Services Receipts Apache Kafka Apache Kafka Apache Kafka
  23. Dispatch Pricing Services Tax Calc Vehicles Orders Platform Users Payments

    Services Receipts Apache Kafka Apache Kafka Apache Kafka
  24. Dispatch Pricing Services Tax Calc Vehicles Orders Platform Users Payments

    Services Receipts Where to put it? Business logic Apache Kafka Apache Kafka Apache Kafka
  25. Users Vehicles Order Platform Pricing Tax Calc Payments Receipts Rides

    Elevate Web Services Mobile Backend Generic Specific
  26. Users Vehicles Order Platform Pricing Tax Calc Payments Receipts Rides

    Elevate Web Services Mobile Backend Breaks everything Breaks specific thing
  27. Users Vehicles Order Platform Pricing Tax Calc Payments Receipts Rides

    Elevate Web Services Mobile Backend Presentation LoB Biz Infra Core
  28. Users Vehicles Order Platform Pricing Tax Calc Payments Receipts Rides

    Elevate Web Services Mobile Backend Presentation
  29. Users Vehicles Order Platform Pricing Tax Calc Payments Receipts Rides

    Elevate Web Services Mobile Backend Biz Infra
  30. Proprietary © 2019 Uber Technologies, Inc. All rights reserved. No

    part of this document may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval systems, without permission in writing from Uber. This document is intended only for the use of the individual or entity to whom it is addressed and contains information that is privileged, confidential or otherwise exempt from disclosure under applicable law. All recipients of this document are notified that the information contained herein includes proprietary and confidential information of Uber, and recipient may not make use of, disseminate, or in any way disclose this document or any of the enclosed information to any person other than employees of addressee to the extent necessary for consultations with authorized personnel of Uber.