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

ISA Principles

ISA Principles

ISA (Independent Systems Architecture) is a collection of best practices based on experience in particular with microservices and Self-contained Systems and the challenges faced in those projects.

Other Decks in Technology

Transcript

  1. Independent
    Systems
    Architecture:
    ISA
    Creator: INNOQ | http://isa-principles.org

    View Slide

  2. Creator: INNOQ | http://isa-principles.org
    Principles of Microservices

    View Slide

  3. Creator: INNOQ | http://isa-principles.org
    1 | Modules
    2 | Macro / Micro Architecture
    3 | Container
    4 | Integration & Communication
    5 |Authentication & Metadata
    6 | Independent Continuous Delivery Pipeline
    7 | Standardized Operations
    8 | Standards: Interface only
    9 | Resilience

    View Slide

  4. Creator: INNOQ | http://isa-principles.org
    Best practices
    > for microservices
    > for Self-contained Systems (SCS)
    http://scs-architecture.org
    Introduction
    Why ISA?
    !
    ! !

    View Slide

  5. 1 | Modules
    Creator: INNOQ | http://isa-principles.org

    View Slide

  6. Creator: INNOQ | http://isa-principles.org
    > Modules: Old idea
    > Modularization for a system
    1 | Modules

    View Slide

  7. Creator: INNOQ | http://isa-principles.org
    Reuse “Module” ideas:
    > High cohesion, low coupling,
    > Separation of concerns,
    > Single Responsibility …
    1 | Modules

    View Slide

  8. Creator: INNOQ | http://isa-principles.org
    > Modules provide interfaces
    > Access only through interface
    1 | Modules

    View Slide

  9. Creator: INNOQ | http://isa-principles.org
    > Information hiding
    > Microservice must not use other microservices’
    internals (e.g. database schemas).
    1 | Modules

    View Slide

  10. 2 | Macro / Micro Architecture
    Creator: INNOQ / http://isa-principles.org

    View Slide

  11. Creator: INNOQ | http://isa-principles.org
    > Decisions for all modules
    2 | Macro / Micro Architecture
    Macro
    Architecture

    View Slide

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

    View Slide

  13. Creator: INNOQ | http://isa-principles.org
    > All modules part of one system
    > Goal: Minimal Macro Architecture
    > Macro Architecture stable
    2 | Macro / Micro Architecture
    Why Macro
    Architecture?

    View Slide

  14. 3 | Container
    Creator: INNOQ / http://isa-principles.org

    View Slide

  15. Creator: INNOQ | http://isa-principles.org
    > Modules = containers (or VMs, processes …)
    3 | Container

    View Slide

  16. Creator: INNOQ | http://isa-principles.org
    > Decoupling
    > Independent …
    – technical decision
    – scalability
    – deployment
    3 | Container
    Process,
    Container,
    VM

    View Slide

  17. 4 | Integration & Communication
    Creator: INNOQ | http://isa-principles.org

    View Slide

  18. Creator: INNOQ | http://isa-principles.org
    > Integrate modules to become a system
    Synchronous, asynchronous, or UI
    4 | Integration & Communication

    View Slide

  19. Creator: INNOQ | http://isa-principles.org
    > Limit options
    > Just one: not enough
    4 | Integration & Communication

    View Slide

  20. Creator: INNOQ | http://isa-principles.org
    > Define technical communication protocol
    > REST, messaging …
    4 | Integration & Communication

    View Slide

  21. 5 | Authentication & Metadata
    Creator: INNOQ | http://isa-principles.org

    View Slide

  22. Creator: INNOQ | http://isa-principles.org
    > Standardize metadata e.g. for authentication or
    tracing
    > Authorization in each module
    5 | Authentication & Metadata

    View Slide

  23. 6 | Independent Continuous
    Delivery Pipeline
    Creator: INNOQ | http://isa-principles.org

    View Slide

  24. Creator: INNOQ | http://isa-principles.org
    > Microservices can only be
    deployed independently …
    > ... if pipelines are independent
    6 | Independent Continuous Delivery Pipeline

    View Slide

  25. 7 | Standardize Operations
    Creator: INNOQ | http://isa-principles.org

    View Slide

  26. Creator: INNOQ | http://isa-principles.org
    > Configuration,
    log analysis, tracing,
    monitoring, deployment
    > Reduce effort
    7 | Standardize Operations

    View Slide

  27. 8 | Standards: Interface only
    Creator: INNOQ | http://isa-principles.org

    View Slide

  28. Creator: INNOQ | http://isa-principles.org
    > Standardize e.g. configuration
    … or log interface
    > Do not standardize the library!
    8 | Standards: Interface only

    View Slide

  29. 9 | Resilience
    Creator: INNOQ | http://isa-principles.org

    View Slide

  30. Creator: INNOQ | http://isa-principles.org
    > Module still work … if other modules fail
    9 | Resilience

    View Slide

  31. Creator: INNOQ | http://isa-principles.org
    > Module still work … if moved somewhere else
    9 | Resilience

    View Slide

  32. Creator: INNOQ | http://isa-principles.org
    Independent System Architecture
    Container
    Modules
    Macro / Micro
    Architecture
    Independent
    Continuous
    Delivery Pipeline
    Resilience
    Integration &
    Communication
    Authentication
    & Metadata
    Standardized
    Operations
    Standards:
    Interface only

    View Slide

  33. Creator: INNOQ | http://isa-principles.org
    COPYRIGHT
    This presentation is copyrighted
    under a Creative Commons
    Attribution-ShareAlike 3.0 /
    Unported License
    http://creativecommons.org/licenses/by-sa/3.0/
    Creator

    View Slide