The Microservices journey from a startup perspective Susanne Kaiser - - PowerPoint PPT Presentation

the microservices journey from a startup
SMART_READER_LITE
LIVE PREVIEW

The Microservices journey from a startup perspective Susanne Kaiser - - PowerPoint PPT Presentation

The Microservices journey from a startup perspective Susanne Kaiser CTO @suksr Just Software @JustSocialApps Each journey is different People try to copy Netflix, but they can only copy what they see. They copy the results, not the


slide-1
SLIDE 1

The Microservices journey from a startup perspective

Susanne Kaiser CTO @suksr Just Software @JustSocialApps

slide-2
SLIDE 2

Each journey is different

“People try to copy Netflix, but they can only copy what they see. They copy the results, not the process.”

Adrian Cockcroft, AWS VP Cloud Archtitect, former Netflix Chief Cloud Architect

slide-3
SLIDE 3

Our Transformation Process

Establish Microservices ecosystem Identify candidates Decompose candidates

slide-4
SLIDE 4

Transformation process

Start End

slide-5
SLIDE 5

Transformation process

Start

Theory (straightforward) Reality (evolutionary)

Start End

slide-6
SLIDE 6
slide-7
SLIDE 7

The beginning … A monolith in every aspect

One team One collaboration product One technology stack

Single Unit

slide-8
SLIDE 8

After an evolving while …

Productivity suffered Usability and UX suffered New features released slowly

slide-9
SLIDE 9

JUST PAGE

Social Network

JUST CONNECT

Real-time collaboration

JUST DRIVE

Document Sharing

JUST TASKS

Task Management

Separate Collaboration Apps

slide-10
SLIDE 10

Small, autonomous teams

with well-defined responsibilities JUST PAGE

Social Network

JUST CONNECT

Real-time collaboration

JUST DRIVE

Document Sharing

JUST TASKS

Task Management

slide-11
SLIDE 11

In the long run ...

Product Organization Software architecture

slide-12
SLIDE 12

Microservices come with complexities

Slow, unreliable network Multiple independent services Partitioned data Operational complexity Communication complexity Complexity of eventual consistency

slide-13
SLIDE 13

Challenges of transformation

Transformation takes longer than anticipated You still have to take care of your existing system Core functionality is hard to untangle Different skills & tools required

slide-14
SLIDE 14

Our Motivation

  • Product and organizational/culture driven
  • Enabling autonomous teams

with well-defined responsibilities

  • Develop and deploy independently

to release changes quickly

slide-15
SLIDE 15

How to start?

? ? ? ?

slide-16
SLIDE 16

Transformation process

Identify candidates

slide-17
SLIDE 17

Key concepts of modelling Microservices

High cohesion within a service Loose coupling between services

slide-18
SLIDE 18

Identify Bounded Contexts

Well defined business function

slide-19
SLIDE 19

Bounded Contexts = Collaboration Apps

Monolith

slide-20
SLIDE 20

Transformation process

Decompose candidates

slide-21
SLIDE 21

First approach as a co-existing service

JUST DRIVE

JUST DRIVE JUST LIST JUST CONNECT JUST PAGE DB Adapter REST API Web App DB Adapter

     

 Message Broker  Monolith

slide-22
SLIDE 22

Hard work if you do all at once

More features New UI New data structure Maintain & run current system

slide-23
SLIDE 23

Split in steps – e.g. top down

slide-24
SLIDE 24

Split in steps – e.g. top down

DB Adapter Web Client Browser

Monolith

slide-25
SLIDE 25

Split in steps – Step 1) Extracting Web App

Business Logic

DB Adapter Web Client Browser Web Client

Web App Monolith

slide-26
SLIDE 26

Split in steps – Step 2) Extracting Business Logic

Business Logic

DB Adapter Web Client Browser

Business Logic

DB Adapter REST API Web App

Monolith

slide-27
SLIDE 27

Split in steps – Step 3) Extracting Data Storage

Business Logic

DB Adapter Web Client Browser

Business Logic

DB Adapter REST API Web App

Monolith

R E S T A P I Message Broker

slide-28
SLIDE 28

Which one first?

Easy to extract Changing frequently Different resource requirements

slide-29
SLIDE 29

Stop feeding the monolith

Monolith

slide-30
SLIDE 30

How to handle Authz? Our authz context ...

Authorization based

  • n domain
  • bject level

Each domain

  • bject has its
  • wn

authorization handling

slide-31
SLIDE 31

How to handle Authz? We started with…

slide-32
SLIDE 32

How to handle Authz? But we missed a point ...

Inter-Service Authorization Dependency

slide-33
SLIDE 33

How to handle Authz? Leading to …

slide-34
SLIDE 34

How to handle Authz? Not decentralized!

Decentralized

+ Fast in-process calls for read access + No single point of failure

  • Every MS has to implement authz logic
  • For a change every MS has to be updated
  • Duplication of all global authz data
  • Verbose communication
  • Tight coupling between services

=> Authorization is a cross-cutting concern

slide-35
SLIDE 35

How to handle Authz? Centralized!

Prerequisite: General rules applicable for every Microservice!

slide-36
SLIDE 36

How to handle Authz?

Centralized

+ One authz logic implementation + Change at one place + Explicit data sovereignty + No duplicated data

  • Communication over network
  • Single Point of Failure
slide-37
SLIDE 37

Whenever you encounter communication and implementation overhead leading to high coupling between the services the seam might be wrong.

slide-38
SLIDE 38

Transformation process

Establish Microservices ecosystem

slide-39
SLIDE 39

Microservices ecosystem

 CI/CD Pipeline  Monitoring  Log tracing  Central Configuration  API-Gateway  Service Discovery  Load Balancing  Design for Failure  Testing (incl. API)  Dev Sandbox

slide-40
SLIDE 40

Microservices ecosystem Tool examples f. Java

&

Prometheus &

 Spring Cloud Sleuth & Zipkin  Spring Cloud Config 

Zuul

Eureka

Ribbon

Hystrix

Pact (CDC-Testing)

slide-41
SLIDE 41

Lessons learned

  • Establishing Microservices ecosystem takes time and requires

different skills & tools

  • No explicit infrastructure team slows down the process
  • Starting with decomposing big chunks frustrates
  • Evaluate communication flow to identify wrong seams
  • It takes far longer than originally anticipated
slide-42
SLIDE 42

By starting small and decomposing in manageable steps and taking care

  • f your ecosystem from the beginning

the transformation process can be handled with even limited resources.

slide-43
SLIDE 43

*) Quarter of Hamburg, famous for its soccer club & entertainment district :)

*

slide-44
SLIDE 44

… AND W/ MICROSERVISES !

slide-45
SLIDE 45

THANK YOU!

Susanne Kaiser CTO @suksr Just Software @JustSocialApps