microservices 2019 microservices: a taxonomy · stefan tilkov @stilkov [email protected]...
TRANSCRIPT
Microservices – Common Traits
• Focused on “one thing”
• Autonomous operation
• Isolated development
• Independent deployment
• Localized decisions
Example: Device Event Handling
• Incoming event validation
• Format transformation
• Fan-out event generation
• Aggregation
• StorageEvent Bus/Infrastructure
→FaaS
Pattern: FaaS (Function as a Service)
• As small as possible
• A few hundred lines of code or less
• Triggered by events
• Communicating asynchronously
Description: As seen on:• Any recent Fred George
talk
• Serverless Architecture
• AWS Lambda
Pattern: FaaS (Function as a Service)
• Shared strong infrastructure dependency
• Common interfaces, multiple invocations
• Application logic in event handler configuration
• Emerging behavior (a.k.a. “what the hell just happened?”)
• (Possibly) billed per request
• (Possibly) unpredictable response times
Consequences:
Example: Product Detail Page
• Core product data
• Prose description
• Images
• Reviews
• Related content Orchestration
→μSOA
Pattern: μSOA (Microservice-SOA)
• Small, self-hosted
• Communicating synchronously
• Cascaded/streaming
• Containerized
Description: As seen on:• Netflix
• Gilt
Pattern: μSOA (Microservice-SOA)
• Close collaboration – common goal
• Need for resilience/stability patterns for invocations
• High cost of coordination (versioning, compatibility, …)
• High infrastructure demand
• Often combined with parallel/streaming approach
• Well suited to environments with extreme scalability requirements
Consequences:
Antipattern: Decoupling Illusion
Stakeholder
Stakeholder
Stakeholder
Pattern: Autonomous Cells
Stakeholder
Stakeholder
Stakeholder
Biz
Dev
Ops
Biz
Dev
OpsBiz
Dev
Ops
Pattern: Autonomous Cells
Stakeholder
Stakeholder
Stakeholder
Biz
Dev
Ops
Biz
Dev
OpsBiz
Dev
Ops
Example: Logistics Application
• Order management
• Shipping
• Route planning
• Invoicing
Frontend→DDDD
Event Bus/Infrastructure
Pattern: DDDD (Distributed Domain-driven Design)
• Small, self-hosted
• Bounded contexts
• Redundant data/CQRS
• Business events
• Containerized
Description: As seen on:• (undisclosed)
Pattern: DDDD (Distributed Domain-driven Design)
• Loose coupling between context
• Acknowledges separate evolution of contexts
• Asynchronicity increases stability
• Well-suited for to support parallel development
Consequences:
That UI thing? Easy!
Assumption
Reality – Antipattern: Frontend Monolith
Example: E-Commerce Site
• Register & maintain account
• Browse catalog
• See product details
• Checkout
• Track status
→SCS
Pattern: SCS (Self-contained Systems)
• Self-contained, autonomous
• Including UI + DB
• Possibly composed of smaller microservices
Description: As seen on:• Amazon
• Groupon
• Otto.de
• https://scs-architecture.org
Pattern: SCS (Self-contained Systems)
• Larger, independent systems,including data + UI (if present)
• Able to autonomously serve requests
• Light-weight integration, ideally via front-end
• No extra infrastructure needed
• Well suited if goal is decoupling of development teams
Consequences:
Building Block0..1
*
One more thing …
One more thing …We love monoliths –so let’s build a lot of them!
Separateseparatethings
Join things that belong together
Stefan Tilkov @[email protected]: +49 170 471 2625
innoQ Deutschland GmbH
Krischerstr. 100 40789 Monheim am Rhein Germany Phone: +49 2173 3366-0
innoQ Schweiz GmbH
Gewerbestr. 11 CH-6330 Cham Switzerland Phone: +41 41 743 0116www.innoq.com
Ohlauer Straße 43 10999 Berlin Germany Phone: +49 2173 3366-0
Ludwigstr. 180E 63067 Offenbach Germany Phone: +49 2173 3366-0
Kreuzstraße 1680331 München Germany Phone: +49 2173 3366-0
@stilkovThat’s all I have. Thanks for listening!
www.innoq.com
OFFICES
Monheim Berlin Offenbach Munich Zurich
FACTS
~125 employees Privately owned Vendor-independent
SERVICES
Strategy & technology consulting Digital business models Software architecture & development Digital platforms & infrastructures Knowledge transfer, coaching & trainings
CLIENTS
Finance Telecommunications Logistics E-commerce Fortune 500 SMBs Startups