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

the microservices journey from a
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
slide-4
SLIDE 4

The beginning … A monolith in every aspect

One team One collaboration product One technology stack

slide-5
SLIDE 5

After an evolving while …

Productivity suffered Usability and UX suffered New features released slowly

slide-6
SLIDE 6

JUST CONNECT

Social Network

JUST CHAT

Real-time collaboration

JUST WIKI

Knowledge Base

JUST DRIVE

Document Sharing

JUST TASKS

Task Management

Separate Collaboration Apps

slide-7
SLIDE 7

JUST CONNECT

Social Network

JUST CHAT

Real-time collaboration

JUST WIKI

Knowledge Base

JUST DRIVE

Document Sharing

JUST TASKS

Task Management

Small, autonomous teams

with well-defined responsibilities

slide-8
SLIDE 8

In the long run ...

slide-9
SLIDE 9

Looks easy at first glance ...

slide-10
SLIDE 10

Microservices come with complexity

Design for Failure Monitoring Deployment Debugging Testing Eventual consistency Skillset is different Authentication & Authorization Development environment

slide-11
SLIDE 11

Challenges of transformation

Transformation takes longer than anticipated You still have to take care of your existing system Core functionality is hard to untangle All involved parties need to agree and to be on board

slide-12
SLIDE 12

Don't partition without a good reason.

slide-13
SLIDE 13

How to start?

? ? ? ?

slide-14
SLIDE 14

Key concepts of modelling Microservices

High cohesion within a service Loose coupling between services

slide-15
SLIDE 15

Identify Bounded Contexts

“A specific responsibility [..] enforced with explicit boundaries”

http://blog.sapiensworks.com/post/2012/04/17/DDD-The-Bounded-Context-Explained.aspx

slide-16
SLIDE 16

Bounded Contexts = Collaboration Apps

JUST DRIVE JUST TASKS JUST CHAT JUST CONNECT JUST WIKI

Monolith

slide-17
SLIDE 17

First approach as a co-existing service

JUST DRIVE

JUST DRIVE JUST TASKS JUST CHAT JUST CONNECT JUST WIKI DB Adapter REST API Web App DB Adapter

     

 Message Broker

M e s s a g e B r

  • k

e r A d a p t e r Message Broker Adapter

 Monolith

slide-18
SLIDE 18

Heavy undertake if you do all at once

New technology New UI New data structure Extend skillset Maintain & run current system

slide-19
SLIDE 19

Split in steps – e.g. top down

slide-20
SLIDE 20

Split in steps – e.g. top down

DB Adapter Web Client Browser

Monolith

slide-21
SLIDE 21

Split in steps – Step 1) Extracting Web App

Business Logic

DB Adapter Web Client Browser REST API REST Client Web Client

Web App Monolith

slide-22
SLIDE 22

Split in steps – Step 2) Extracting Business Logic

Business Logic

DB Adapter Web Client Browser

Business Logic

DB Adapter REST API Web App

Monolith

REST API REST Client R E S T A P I REST Client

slide-23
SLIDE 23

Split in steps – Step 3) Extracting Data Storage

Business Logic

DB Adapter Web Client Browser

Business Logic

DB Adapter REST API Web App

Monolith

REST API REST Client R E S T A P I REST Client Message Broker Adapter Message Broker Adapter Message Broker

slide-24
SLIDE 24

Which one first?

Easy to extract Changing frequently Different resource requirements

slide-25
SLIDE 25

Stop feeding the monolith

Monolith

slide-26
SLIDE 26

Get your CI/CD pipeline ready

Compile Code Analysis Unit Tests Integration Tests CDC Tests Assemble distribution Publish binaries

+

Commit Stage

Retrieve binaries Deploy binaries Functional Test

Acceptance Stage

Deploy binaries

UAT

Deploy binaries

Production

Manually triggered

slide-27
SLIDE 27

Testing - Consumer Driven Contract Tests with Pact

Source: https://jaxenter.de/microservices-consumer-driven-contract-testing-mit-pact-20574

slide-28
SLIDE 28

Deployment in a polyglot enviroment

 Cloud  On-Premises

Service Instance per Host Multiple Service Instances per Host/Process Each service instance runs in complete isolation Efficient resource utilization

slide-29
SLIDE 29

Design for Failure

 Timeout-Handling  Limit number of outstanding requests  Circuit Breakers  Provide fallbacks

slide-30
SLIDE 30

Development environment

Full access to the entire system

slide-31
SLIDE 31

Summary

Get your build and delivery pipeline ready It's not only a technical but also a cultural shift Don't partition without a good reason Identify your bounded contexts

Split in manageable steps

 

slide-32
SLIDE 32
slide-33
SLIDE 33

… AND W/ MICROSERVISES !

slide-34
SLIDE 34

THANK YOU!

Susanne Kaiser CTO @suksr Just Software @JustSocialApps