jug - soup to nuts with self contained systems

25
SELF CONTAINED SYSTEMS SOUP TO NUTS

Upload: donovan-muller

Post on 05-Apr-2017

79 views

Category:

Software


0 download

TRANSCRIPT

Page 1: JUG - Soup to Nuts with Self Contained Systems

SELF CONTAINED SYSTEMSSOUP TO NUTS

Page 2: JUG - Soup to Nuts with Self Contained Systems

WHO AM I

▸ DONOVAN MULLER

▸ LEAD TECHNICAL PARTNER AT BARCLAYS AFRICA/ABSA

Page 3: JUG - Soup to Nuts with Self Contained Systems

SO(A) WHAT’S THE BIG HYPE?

▸ ISN’T THIS JUST SOA?

▸ YES BUT WITHOUT ESB, VENDORS, ORCHESTRATION ENGINES, SOAP

▸ SO, NO CENTRALISED ESB TEAM

Page 4: JUG - Soup to Nuts with Self Contained Systems

HOW BIG IS A MICRO SERVICE ANYWAY

DOES SIZE REALLY MATTER?

▸ NO, IT SHOULDN’T

▸ SIZE DOES NOT MAKE A MICROSERVICE

▸ IT’S ALL ABOUT CONTEXT…

Page 5: JUG - Soup to Nuts with Self Contained Systems

NO DEPENDENCIES

WHY DO WE NEED MICROSERVICES?

▸ IT’S ABOUT BEING INDEPENDENT/AUTONOMOUS

▸ ASKING FOR PERMISSION SUCKS

▸ WAITING SUCKS

▸ I HATE JEE

▸ I WANNA GO FAST

Page 6: JUG - Soup to Nuts with Self Contained Systems

WE HAVE TO WAIT HOW LONG…

NO HAND OFFS

▸ INTER-TEAM DEPENDENCIES WASTE TIME

▸ KEEP IT IN THE TEAM

▸ WHICH MEANS, WE NEED TO CONTROL THE STACK

Page 7: JUG - Soup to Nuts with Self Contained Systems

I THOUGHT THIS WAS ABOUT MICROSERVICES…

WHAT’S A SELF CONTAINED SYSTEM?

▸ http://scs-architecture.org

▸ Autonomous application

▸ Owned by one team

▸ Communication asynchronous where possible

▸ No shared UI

▸ No shared business code

▸ Minimal shared infrastructure

Page 8: JUG - Soup to Nuts with Self Contained Systems

BE SELFISH

SHARE NOTHING

▸ SHARING IS NOT CARING

▸ CAUSES DEPENDENCIES BETWEEN TEAMS

▸ SHARING SOME THINGS IS OK THOUGH

▸ STANDARDISED LIBRARIES FOR LOGGING ETC.

▸ TRADE OFFS

Page 9: JUG - Soup to Nuts with Self Contained Systems

BUT…

TRADE OFFS

▸ NO PERFECT DESIGN

▸ ALWAYS TRADE OFFS

Page 10: JUG - Soup to Nuts with Self Contained Systems

DDD

▸ DOMAIN DRIVEN DESIGN

▸ MODEL THE BUSINESS PROBLEM

▸ NOT THE INFRASTRUCTURE

Page 11: JUG - Soup to Nuts with Self Contained Systems

BOUNDED CONTEXTS

▸ MOST IMPORTANT CONCEPT?

▸ THINGS THAT BELONG TOGETHERSTAY TOGETHER

▸ BOUNDED CONTEXT = SCS

Page 12: JUG - Soup to Nuts with Self Contained Systems

AGGREGATES

▸ A GROUP OF RELATED DOMAIN OBJECTS

▸ CONSISTENCY BOUNDARY

Page 13: JUG - Soup to Nuts with Self Contained Systems

DOMAIN EVENTS

▸ WHEN THINKING OF STATE, THINK WHAT EVENT HAS JUST TAKEN PLACE

▸ EASIER FOR PEOPLE TO MODEL WHAT SOMETHING SHOULD DO, RATHER THAN HOW TO DO IT

Page 14: JUG - Soup to Nuts with Self Contained Systems

EVENT SOURCING

▸ STATE IS THE LEFT FOLD OF YOUR DOMAIN EVENTS

▸ KEPT IN A PERSISTENT EVENT STORE

▸ BUILT IN AUDIT RECORD

▸ TEMPORAL QUERIES

Page 15: JUG - Soup to Nuts with Self Contained Systems

CQRS

▸ COMPLIMENTS EVENT SOURCING

▸ MATERIALISED VIEWS

▸ EASY COME, EASY GO

Page 16: JUG - Soup to Nuts with Self Contained Systems

DEMO - AXON

Page 17: JUG - Soup to Nuts with Self Contained Systems

FRAMEWORKS

▸ AXON WITH SPRING X

▸ LAGOM

▸ MANY MORE

▸ ROLL YOUR OWN?

Page 18: JUG - Soup to Nuts with Self Contained Systems

PAAS - OPENSHIFT

▸ “ENTERPRISE” KUBERNETES

▸ SERVICE DISCOVERY, CONFIGURATION MANAGEMENT, ETC. FOR FREE

▸ BUILD AND RUN

▸ BUILT IN JENKINS PIPELINES

Page 19: JUG - Soup to Nuts with Self Contained Systems

EVENT DRIVEN ARCHITECTURE

▸ ASYNCHRONOUS COMMUNICATION BETWEEN SYSTEMS

▸ LESS DEATH STAR

▸ MORE FLEXIBLE AND AUTONOMOUS

▸ TRADE OFFS

Page 20: JUG - Soup to Nuts with Self Contained Systems

REACTIVE MANIFESTO

▸ http://www.reactivemanifesto.org/

▸ RESPONSIVE

▸ RESILIENT

▸ ELASTIC

▸ MESSAGE DRIVEN

Page 21: JUG - Soup to Nuts with Self Contained Systems

INTEGRATIONS (STREAMS)

▸ SPRING CLOUD STREAM/DATA FLOW

▸ ALPAKKA

▸ ETC.

Page 22: JUG - Soup to Nuts with Self Contained Systems

WHAT ABOUT TRANSACTIONS?

▸ NO XA (BETWEEN SYSTEMS) :O

▸ EVENTUALLY CONSISTENT

▸ SAGA PATTERN

Page 23: JUG - Soup to Nuts with Self Contained Systems

MSA FOR THE UI

▸ MICROSERVICES ARE NOT ONLY FOR THE BACKEND

▸ AVOID SHARED UI

▸ TAILOR, ESI (EDGE SIDE INCLUDES), ETC.

Page 24: JUG - Soup to Nuts with Self Contained Systems

JUST GETTING STARTED

▸ MONITORING

▸ LOGGING

▸ SERVICE CATALOGUE

▸ API GATEWAY

▸ SECURITY

Page 25: JUG - Soup to Nuts with Self Contained Systems

THANK YOU

@donovancmuller