microservices or new dress for the service emperor

38
[email protected] New dress for the service emperor …or what are microservices really good for

Upload: martin-sjoeblom

Post on 17-Jul-2015

69 views

Category:

Software


1 download

TRANSCRIPT

[email protected]

New  dress  for  the  service  emperor

…or  what  are  microservices  really  good  for

[email protected]

∗ Software  development  in  more  or  less  all  roles  since  1991    

∗ I  like  to  program  in  most  languages  ∗ Military  systems  (REAL  systems  :-­‐)  for  about  10  years  

∗ …in  an  international  environment  ∗ …where  we  amongst  other  things  developed  a  Service  Oriented  Infrastructure  

∗ …based  on  ideas  like  microservices

Me,  myself  and  I

[email protected]

∗ A  technology  to  solve  all  problems  ∗ A  flame  bait  for  nerds  ∗ The  new  new  black  ∗ All  or  nothing  of  the  above

What  are  microservices?

[email protected]

∗ Understand  what  micro  services  are  ∗ Showing  examples  ∗ Make  You  actively  think  when  to  use  it  ∗ Show  dynamic  configuration  

Goal  of  presentation

[email protected]

Microservices  according  to  god

[email protected]

SOA  Basics

Producer ConsumerSe

rvic

e

[email protected]

API  !=  Service

System A System BA-

>B Ser

vice

[email protected]

API  !=  Service

Radar UIPl

ots

with

pos

and

Sym

bol

[email protected]

API  !=  Service

Radar UIId

Pos

Sym

bol

[email protected]

API  !=  Service

Radar

UIId

Pos

Sym

bol

Symbol Server

[email protected]

Define  the  right  services

[email protected]

Demo  1

Number DisplayNu

m S

ervi

ce

[email protected]

So  where  are  the  services?

[email protected]

String urlString = ”http://soa.com//service-call”; URL url = new URL(urlString);

Hardcoded?

Only  works  for  really  static  systems!

[email protected]

Zero-­‐configuration  ∗ mDNS  ∗ Apple  Bonjour  ∗ DNS/DNS-­‐SD  ∗ UPnP  SSDP  ∗ SLP  

Other  solutions  ∗ Apache’s  ZooKeeper  ∗ Eureka  ∗ etcd

Service  Registry

[email protected]

The  holy  trinity

Producer Consumer

Serv

ice

Service Registry

[email protected]

Demo  2

Producer Consumer

Service Registry

[email protected]

Chaining  services  and  systems  of  systems

[email protected]

Demo  3

Number generator

Screen

LEDReverse Number

[email protected]

From  task  to  services

Ability 1

Ability 3

Ability 2

Service a

Service d

Service b

Service c

Task

[email protected]

10

Service a

Service d

Service b

Service c

1

3 4

6

5

7

8

9

11

12

2 The  system  is  configured

[email protected]

Goal

Ability 1

Ability 3

Ability 2

Service a

Service d

Service b

Service c

10

1

3

4

6 7

8 9

11

12

2

Mgmt

Task

[email protected]

Difference  SOA  &  Msg  Passing

Producer Consumer

[email protected]

Difference  SOA  &  Msg  Passing

Producer ConsumerSe

rvic

e

Quality Location

[email protected]

Why  micro  services?

[email protected]

Why  micro  services?

[email protected]

∗Test  ∗What  to  scale  ∗When  change  ∗Re-­‐use

Why  micro  services?

[email protected]

∗ 10  systems  99.9  =>  99.0  ∗ 10  systems  99.0  =>  90.4

On  the  other  hand

∗ 30  systems  99.9  =>  97.0  ∗ 30  systems  99.0  =>  74.0

[email protected]

On  the  other  hand

[email protected]

On  the  other  hand

[email protected]

Don’t  map  today  to  tomorrow

[email protected]

Don’t  map  today  to  tomorrow

[email protected]

But,  everybody  does  it!

Microservice  envy  

NEW  ●  Hold  January  2015  

We  remain  convinced  that  microservices  can  offer  significant  advantages  to  organizations,  in  terms  of  improving  team  autonomy  and  faster  frequency  of  change.  The  additional  complexity  that  comes  from  distributed  systems  requires  an  additional  level  of  maturity  and  investment.  We  are  concerned  that  some  teams  are  rushing  in  to  adopting  microservices  without  understanding  the  changes  to  development,  test,  and  operations  that  are  required  to  do  them  well.  Our  general  advice  remains  simple.  Avoid  microservice  envy  and  start  with  one  or  two  services  before  rushing  headlong  into  developing  more,  to  allow  your  teams  time  to  adjust  and  understand  the  right  level  of  granularity.

[email protected]

What  you  need  to  do

[email protected]

What  you  need  to  do