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

Beyond Microservices

Beyond Microservices

This presentation defines microservices and shows benefits and challenges. It then discusses alternatives to microservices and why they might make sense.

Eberhard Wolff

April 24, 2018
Tweet

More Decks by Eberhard Wolff

Other Decks in Technology

Transcript

  1. Creator: INNOQ | http://isa-principles.org >Reuse “Module” ideas: >High cohesion, low

    coupling, >Separation of concerns, >Single Responsibility … 1 | Modules
  2. Creator: INNOQ | http://isa-principles.org >Modules provide interfaces >Access only through

    interface >Microservice must not use other microservices’ internals (e.g. database schemas). 1 | Modules
  3. Creator: INNOQ | http://isa-principles.org >All modules part of one system

    3 | Macro / Miro Architecture Why Macro Architecture?
  4. Creator: INNOQ | http://isa-principles.org >Microservices can only be deployed independently

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

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

    Micro Architecture Independent Continuous Delivery Pipeline Resilience Integration Communication Standardized Operations Standards: Interface only Container
  7. Inverse Conway Maneuver Architecture drives organization Cross-functional team (database, logic,

    UI) Team responsible for Bounded Context(s) With so much independence… ...teams can decide for themselves Self-organization
  8. Extreme Decoupling Originally: Changing a module does not influence other

    modules. i.e. independent development Now: Independent … – technical decision – scalability – deployment – crashes – security (e.g. firewall)
  9. Replaceability Small components hard to mess up Each module can

    be replaced …small green field project ...different technology stack possible
  10. Build Pipeline for Microservices Smaller Easier to set up Less

    features (3rd party systems) Faster Feedback: Less tests
  11. Refactoring Move code to a new service: Easy Move code

    from service to service Might be a port to a different language Hard
  12. 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? Bounded Context are quite stable – probably no need for large refactoring.
  13. Many New Technologies Microservices framework Service discovery Routing / API

    Gateway Continuous Delivery pipeline Docker Kubernetes ....
  14. Layered: Issues Changing a business process cause many changes …in

    frontends and many backends Lots of communication between teams and components
  15. Decoupled Development - Decoupled Scalability - Decoupled Crashes + Security

    + Architecture Firewalls + Replaceability + Continuous Delivery - Technological Benefits
  16. Layered More challenges, less benefits, same effort Microservices worsen problems

    caused by strong coupling. Microservices are just modules implemented differently. It the domain architecture, stupid!
  17. Decoupled Development - Decoupled Scalability + Decoupled Crashes + Security

    + Architecture Firewalls - Replaceability - Continuous Delivery - Technological Benefits
  18. Centralized Database Bad idea Consistency can require lots of compromises

    Why all the effort for microservices if you allow such strong coupling?
  19. Bounded Context Domain model is only valid for one context

    There is no universal data model! See all failed SOA attempts
  20. 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 #
  21. Decoupled Development + Decoupled Scalability + Decoupled Crashes + Security

    + Architecture Firewalls + Replaceability + Continuous Delivery + Technological Benefits
  22. Microservice + Bounded Context Microservices as they should be. …even

    though Bounded Context is older than microservices
  23. Deployment Monolith Deploy everything as one module Might be structured

    …but most often Makes no sense to talk about benefits and challenges
  24. Decoupled Development + Decoupled Scalability - Decoupled Crashes - Security

    - Architecture Firewalls + Replaceability - Continuous Delivery - Technological Benefits
  25. Conclusion Microservices: set of architecture decision …a new way for

    modularization Independent System Architecture Architecture is about trade-offs Architecture is different for each project Go beyond microservices & pick the best decisions!
  26. Usually good tradeoffs SCS, Bounded Context, Microlith Bounded Context in

    a deployment monolith Strongly separated modules in a deployment monolith …structured monolith
  27. EMail [email protected] to get: Slides + Microservices Primer DE /

    EN + Microservices Recipes DE / EN + Sample Microservices Book DE / EN + Sample Practical Microservices DE/EN + Sample of Continuous Delivery Book DE Powered by Amazon Lambda & Microservices