microservices 2019 microservices: a taxonomy · stefan tilkov @stilkov [email protected]...
TRANSCRIPT
![Page 2: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/2.jpg)
Microservices – Common Traits
• Focused on “one thing”
• Autonomous operation
• Isolated development
• Independent deployment
• Localized decisions
![Page 3: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/3.jpg)
Example: Device Event Handling
• Incoming event validation
• Format transformation
• Fan-out event generation
• Aggregation
• StorageEvent Bus/Infrastructure
→FaaS
![Page 4: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/4.jpg)
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
![Page 5: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/5.jpg)
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:
![Page 6: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/6.jpg)
Example: Product Detail Page
• Core product data
• Prose description
• Images
• Reviews
• Related content Orchestration
→μSOA
![Page 7: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/7.jpg)
Pattern: μSOA (Microservice-SOA)
• Small, self-hosted
• Communicating synchronously
• Cascaded/streaming
• Containerized
Description: As seen on:• Netflix
• Gilt
![Page 8: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/8.jpg)
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:
![Page 9: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/9.jpg)
Antipattern: Decoupling Illusion
Stakeholder
Stakeholder
Stakeholder
![Page 10: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/10.jpg)
Pattern: Autonomous Cells
Stakeholder
Stakeholder
Stakeholder
Biz
Dev
Ops
Biz
Dev
OpsBiz
Dev
Ops
![Page 11: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/11.jpg)
Pattern: Autonomous Cells
Stakeholder
Stakeholder
Stakeholder
Biz
Dev
Ops
Biz
Dev
OpsBiz
Dev
Ops
![Page 12: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/12.jpg)
Example: Logistics Application
• Order management
• Shipping
• Route planning
• Invoicing
Frontend→DDDD
Event Bus/Infrastructure
![Page 13: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/13.jpg)
Pattern: DDDD (Distributed Domain-driven Design)
• Small, self-hosted
• Bounded contexts
• Redundant data/CQRS
• Business events
• Containerized
Description: As seen on:• (undisclosed)
![Page 14: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/14.jpg)
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:
![Page 15: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/15.jpg)
That UI thing? Easy!
![Page 16: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/16.jpg)
Assumption
![Page 17: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/17.jpg)
Reality – Antipattern: Frontend Monolith
![Page 18: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/18.jpg)
Example: E-Commerce Site
• Register & maintain account
• Browse catalog
• See product details
• Checkout
• Track status
→SCS
![Page 19: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/19.jpg)
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
![Page 20: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/20.jpg)
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:
![Page 21: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/21.jpg)
Building Block0..1
*
![Page 22: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/22.jpg)
One more thing …
![Page 23: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/23.jpg)
One more thing …We love monoliths –so let’s build a lot of them!
![Page 24: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/24.jpg)
Separateseparatethings
Join things that belong together
![Page 25: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/25.jpg)
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!
![Page 26: Microservices 2019 Microservices: A Taxonomy · Stefan Tilkov @stilkov stefan.tilkov@innoq.com Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein](https://reader035.vdocuments.net/reader035/viewer/2022070111/604f973ca0b3a266835be22d/html5/thumbnails/26.jpg)
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