microservices 2019 microservices: a taxonomy · stefan tilkov @stilkov [email protected]...

26
Microservices: A Taxonomy Stefan Tilkov [email protected] @stilkov Microservices 2019

Upload: others

Post on 15-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Microservices:A Taxonomy

Stefan [email protected]@stilkov

Microservices 2019

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

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

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

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

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

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

Pattern: μSOA (Microservice-SOA)

• Small, self-hosted

• Communicating synchronously

• Cascaded/streaming

• Containerized

Description: As seen on:• Netflix

• Twitter

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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