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

Beyond Microservices

Beyond Microservices

This presentation shows the properties, advantages and challenges of microservices. It then discusses alternative architectures beyond microservices.

Eberhard Wolff

October 05, 2017
Tweet

More Decks by Eberhard Wolff

Other Decks in Programming

Transcript

  1. Creator: INNOQ | http://isa-principles.org > Best practices > for microservices

    > for Self-contained Systems (SCS) http://scs-architecture.org Introduction Why ISA ? ! ! !
  2. Creator: INNOQ | http://isa-principles.org > Reuse “Module” ideas: > High

    cohesion, low coupling, > Separation of concerns, > Single Responsibility … 1 | Modules
  3. Creator: INNOQ | http://isa-principles.org > Information hiding > Microservice must

    not use other microservices’ internals (e.g. database schemas). 1 | Modules
  4. Creator: INNOQ | http://isa-principles.org > Decisions for all modules 3

    | Macro / Micro Architecture Macro Architecture
  5. Creator: INNOQ | http://isa-principles.org > Decisions per module 3 |

    Macro / Miro Architecture Micro Architecture
  6. Creator: INNOQ | http://isa-principles.org > All modules part of one

    system > Goal: Minimal Macro Architecture > Macro Architecture stable 3 | Macro / Miro Architecture Why Macro Architecture?
  7. Creator: INNOQ | http://isa-principles.org > Integrate modules to become a

    system Synchronous, asynchronous, or UI 4 | Integration
  8. Creator: INNOQ | http://isa-principles.org > Microservices can only be deployed

    independently … > ... if pipelines are independent 6 | Independent Continuous Delivery Pipeline
  9. Creator: INNOQ | http://isa-principles.org > Standardize e.g. configuration … or

    log interface > Do not standardize the library! 8 | Standards: Interface only
  10. Creator: INNOQ | http://isa-principles.org Independent System Architecture Container Modules Macro

    / Micro Architecture Independent Continuous Delivery Pipeline Resilience Integration Communication Standardized Operations Standards: Interface only
  11. Replaceability > Small components hard to mess up > Each

    module can be replaced > …small green field project > ...different technology stack possible
  12. Build Pipeline for Microservices > Smaller > Easier to set

    up > Less features (3rd party systems) > Faster Feedback: Less tests
  13. Decoupled Development Decoupled Scalability Decoupled Technical decisions Decoupled Crashes Security

    Architecture Firewalls Replaceability Continuous Delivery Technological Benefits
  14. Inverse Conway Maneuver > Architecture drives organization > Cross-functional team

    (database, logic, UI) > Team responsible for Bounded Context(s)
  15. Consistency Order Invoice Delivery Order #42 is cancelled! ✅ ✅

    ⁉ Goods might be delivered if order arrives after cancellation.
  16. Refactoring > Move code to a new service: Easy >

    Move code from service to service > Might be a port to a different language > Hard
  17. Global Refactoring > Really hard: Global restructuring > i.e. moving

    everything to a different place. > …but that is always hard… > ...and the result of a major screw-up. > Do you want to optimize for this?
  18. Many New Technologies > Microservices framework > Service discovery >

    Routing / API Gateway > Continuous Delivery pipeline > Docker > Docker scheduler (Kubernetes) > ....
  19. Decoupled Development -- Decoupled Scalability + Decoupled Technical decisions +

    Decoupled Crashes + Security - Architecture Firewalls - Replaceability -- Continuous Delivery - Technological Benefits
  20. Layered: Issues > Changing a business process cause many changes

    > …in frontends and many backends > Lots of communication between teams and components
  21. Decoupled Development - Decoupled Scalability - Decoupled Technical decisions ++

    Decoupled Crashes + Security + Architecture Firewalls + Replaceability + Continuous Delivery - Technological Benefits
  22. Bounded Context > Domain model is only valid for one

    context > There is no universal data model! > See all failed SOA attempts
  23. Order Shipping address Tracking # Items Item Categories Priority shipping

    Customs # Account # ... Credit card # Order # Customs Order Recommen- dations Order Tracking Order Shipping address Tracking # Item Categories Priority shipping Customs # Payment Order Account # Credit card #
  24. Decoupled Development ++ Decoupled Scalability ++ Decoupled Technical decisions ++

    Decoupled Crashes ++ Security ++ Architecture Firewalls + Replaceability + Continuous Delivery ++ Technological Benefits
  25. Decoupled Development + Decoupled Scalability -- Decoupled Technical decisions --

    Decoupled Crashes -- Security -- Architecture Firewalls ++ Replaceability + Continuous Delivery + Technological Benefits
  26. Conclusion > Microservices: set of architecture decision > Independent System

    Architecture > Architecture is about trade-offs > Architecture is different for each project > Go beyond microservices by picking the best decisions! > …and gain most benefits
  27. Usually good tradeoffs > SCS, Bounded Context, Microlith > Bounded

    Context in a deployment monolith > Strongly separated modules in a deployment monolith
  28. EMail [email protected] to get: Slides + Microservices Primer + Microservices

    Rezepte + Sample Microservices Book + Sample of Continuous Delivery Book Powered by Amazon Lambda & Microservices