tips and tricks for your service oriented architecture @ cakefest 2013 in san francisco

165
TIPS AND TRICKS FOR YOUR SERVICE ORIENTED ARCHITECTURE CakeFest, San Francisco, Sep 2013

Upload: alessandro-nadalin

Post on 08-May-2015

3.416 views

Category:

Technology


2 download

DESCRIPTION

A collection of advices to not bang your head against the wall like I did while taming service-oriented architectures.

TRANSCRIPT

Page 1: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

TIPS AND TRICKS FOR YOURSERVICE ORIENTED

ARCHITECTURECakeFest, San Francisco, Sep 2013

Page 2: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

WARNING

Page 3: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

NO CAKEPHP

AHEAD

Page 4: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

This talk is for those...

Page 5: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Stuck with the legacy

Page 6: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

dealing with CRONs

Page 7: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

in the need of a solid foundation

Page 8: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

rely on web services

Page 9: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

need a pluggable software architecture

Page 10: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SOA

Page 11: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Agenda

1. Service Oriented WHAT?!?!

2. Tips, Tricks and lessons learned (the hard way)

3. Conclusion

Page 12: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

1

Page 13: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SO(A) WHAT?

Page 14: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

A software design based on discrete software components, "services", that collectively provide the functionalities of the larger

software application

Page 15: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

You typically start with theinfamous web application

which does everything on its own

Page 16: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 17: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Then you realize that to providea chat system to your users

PHP might not be the best...

Page 18: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 19: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

And soon you also decide,to improve performances,

that your frontend should have its ownin-memory persistence, to be faster

and you put it into another service

Page 20: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 21: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Then, as always...

Page 22: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SCALE.

Page 23: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 24: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

And eventually, your lead architectwill come up and tell youthat your Java-based chat

sucks and should bereplaced with...

Page 25: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

NODEJS

Page 26: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 27: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

In human-understandable words, SOA is a software design which embraces splitting a monolithic, totalitarian software

architecture into smaller pieces, thus making them independent, loosely coupled and more maintainable

Page 28: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Ok, but in the real world?

Page 29: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

A few points...

Page 30: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

DATA

Page 31: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

each service might have its own data-layer, but nothingprevents you from sharing data across the services

Page 32: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

reads: abstract the data

Page 33: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

WEBSERVICES

Page 34: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Services can request data to other services,usually through WSs

Page 35: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

POX

Page 36: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 37: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SOAP

Page 38: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 39: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

HTTP

Page 40: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

REST

Page 41: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Note to self:check the difference between HTTP and

REST APIs

Page 42: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Note to self:check the difference between HTTP and

REST APIs

(HATEOAS)

Page 43: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Note to self:check the difference between HTTP and

REST APIs

(HATEOAS)

Page 44: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

EVENTS

Page 45: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

services notify the architecture that an event has happened

Page 46: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

asynchronous messaging queues

Page 47: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

2

Page 48: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

TIPS ANDTRICKS

Page 49: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

LEARNT THEHARD WAY

Page 50: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

2.1 AVOID SOA

Page 51: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

DIFFICULT TO TEST

Page 52: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

COMPLEX

Page 53: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SOA would beoverkill for mostof the common

scenarios

Page 54: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

But if you're handlinga product or a

monolithic softwarestack, the added

complexity pays offon the long run

Page 55: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

2.2 FREETHE DATA

Page 56: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

CONSIDER ELIMINATING FK CONSTRAINTS

Page 57: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

A service might need to handle data withanother DBMS, so FKs are virtually impossible

Page 58: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

ABSTRACT THE DATA

Page 59: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

You might think in "rows" but the architecturethinks in "resources"

Page 60: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

No more FKs andthe ability of

JOINing to retrievesome related data

Page 61: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

But you choosewhat perfectly fits

each service:your transactionsover a RDBMS andyour communityover a graph DB

Page 62: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

2.3 Standardize

Page 63: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Build a vast suite of E2E tests

Page 64: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

and give your developer a way to easily test

Page 65: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

EVERY DEVELOPER NEEDSTHE ENTIRE ARCHITECTURE ON LOCAL

Page 66: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

The architecture needsto be installed in

~1 hour

Page 67: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Setting up VMsis an hassle and

they are so slow!

Page 68: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

go #vagrant

Page 69: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

2.4 IDENTIFYWISELY

Page 70: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

AUTHENTICATION IS KING

Page 71: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Centralized authentication = identity service

Page 72: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

NEVER HANDLE CREDENTIALS IN CLEAR

Page 73: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

NEVER.

man in the middle

Page 74: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

NEVER.

man in the middle

SSL

Page 75: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

NEVER.

man in the middle

SSL

tokenize

Page 76: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

OAuth

Page 77: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

OpenID

Page 78: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

JWS

Page 79: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

JSON WEB SIGNATURE

Page 80: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

JSON WEB TOKEN

Page 81: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

JSON WEB SIGNATURE

Page 82: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

JAVASCRIPT OBJECT SIGNING & ENCRYPTION

Page 84: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

1. The user enters the credentials once in your frontend

JS APP

AUTHSERVICE

2. The JS app will forward themto your Auth webservice

3. The Auth webservice will then generate the encryptedJWS and set a cookie withits value

JS APP

4. The JS app can now just execute calls usingthat cookie

Page 85: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

1. The user enters the credentials once in your frontend

JS APP

Page 86: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

AUTHSERVICE

2. The JS app will forward themto your Auth webservice

JS APP

Page 87: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

AUTHSERVICE

3. The Auth webservice will then generate the encrypted JWS and set a cookie with its value

Page 88: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

JS APP

AUTHSERVICE

4. The JS app can now just execute calls using that cookie

Page 89: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

1. The user enters the credentials once in your frontend

JS APP

AUTHSERVICE

2. The JS app will forward themto your Auth webservice

3. The Auth webservice will then generate the encryptedJWS and set a cookie withits value

JS APP

4. The JS app can now just execute calls usingthat cookie

Page 90: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

setcookie($name, $jws,$ttl, $path, $domain, true);

Page 91: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

setcookie($name, $jws,$ttl, $path, $domain, true);

HTTPS

Page 92: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

JWS in PHP?

Page 93: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

namshi/jose

Page 94: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

use Namshi\JOSE\JWS;

$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));

$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());

use Namshi\JOSE\JWS;

$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");

if ($jws->verify($public_key)) { echo "EUREKA!;}

Page 95: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

use Namshi\JOSE\JWS;

$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));

$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());

use Namshi\JOSE\JWS;

$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");

if ($jws->verify($public_key)) { echo "EUREKA!;}

Page 96: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

use Namshi\JOSE\JWS;

$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));

$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());

use Namshi\JOSE\JWS;

$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");

if ($jws->verify($public_key)) { echo "EUREKA!;}

Page 97: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

use Namshi\JOSE\JWS;

$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));

$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString(), ...);

use Namshi\JOSE\JWS;

$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");

if ($jws->verify($public_key)) { echo "EUREKA!;}

Page 98: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

use Namshi\JOSE\JWS;

$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));

$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());

use Namshi\JOSE\JWS;

$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");

if ($jws->verify($public_key)) { echo "EUREKA!;}

Page 99: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

use Namshi\JOSE\JWS;

$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));

$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());

use Namshi\JOSE\JWS;

$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");

if ($jws->verify($public_key)) { echo "EUREKA!;}

Page 100: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

I can't simplyuse the HTTP

basic authentication,it was so

convenient!

Page 101: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

...and flawed.

Modern apps,modern tech.

Page 102: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

All myauthenticated

traffic needs to gothrough HTTPS:

it will be soSLOW!

Page 103: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Only if youdon't know

about...

Page 104: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

WebP

Page 105: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

WebP

lossless compression

Page 106: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

WebP

lossless compression

30% smaller than PNG

Page 107: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

And if you don'tknow about...

Page 108: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SPDY

Page 109: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

HTTP on steroids

Page 110: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

(come to my next talk)

Page 111: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

(that one won't suck)

Page 112: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

2.5 EMBRACEMESSAGING

Page 113: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Don't wait, notify instead

Page 114: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Different services can intercept an even, separately

Page 115: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

If one is down, the others keep working

Page 116: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Who cares about milliseconds for notifications?

Page 117: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

The human body is the bottleneck

Page 118: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Email?

Page 119: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SMS?

Page 120: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Be reliable

Page 121: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

“Daemons are great”

Page 122: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

“Daemons are great”- No PHP developer ever

Page 123: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SUPERVISORhttp://supervisord.org/

Page 124: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SUPERVISEhttp://cr.yp.to/daemontools/supervise.html

Page 125: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

use python ;-)

Page 126: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

It doesn’t matter...

Page 127: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

if you talk الحروف العربیة

Page 128: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Rabbit makes everyone talk the same language

Page 129: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

chat

Batch processing

frontend

sync daemons

transcoding

agony

ERP

telcom

Page 130: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 131: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

But I PHP

Page 132: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Monogamyis so ‘90

“given a hammer,everything

becomes a nail”

Page 133: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

One size doesn’t fit all

Page 134: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

2.5 ALWAYS SUNDAY?

Page 135: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Monitor in real time

Page 136: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

and do retrospectives

Page 137: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 138: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Talking about retrospectives?

Page 139: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Logs are first-class citizens

Page 140: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Sharpen asmuch as possible

Page 141: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
Page 142: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Assume thingswill break

Page 143: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

All in all...

Page 144: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SOA is complex

Page 145: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

A puzzle with more pieces

Page 146: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

More things to keep in mind

Page 147: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

COMPLEXIS NOT

COMPLICATED

Page 148: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Loose coupling

Page 149: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

every service is independent, not forced to theconstraints of a monolithic block

Page 150: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

you have the freedom of changing or replacing serviceswithout the hassle of touching an entire system

Page 151: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

State-of-the-art defense against outages

Page 152: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Fault tolerance

Page 153: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

if one of the services has an outage, the restof the architecture still works

Page 154: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

if a service, listening for messages, is down,the publisher doesn't get stuck

Page 155: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Cleaner architecture

Page 156: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

SoC happens at architectural, not application, level and you can perform large-scale refactorings without the fear of destroying the entire system

Page 157: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Perfect ground for advanced tooling

Page 158: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

...yawn...

Page 159: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Alessandro Nadalin

Page 160: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Alessandro Nadalin

@_odino_

Page 161: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Alessandro Nadalin

@_odino_

Namshi | Rocket Internet

Page 162: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Alessandro Nadalin

@_odino_

Namshi | Rocket Internet

VP Technology

Page 163: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Alessandro Nadalin

@_odino_

Namshi | Rocket Internet

VP Technology

odino.org

Page 164: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Thanks!Alessandro Nadalin

@_odino_

Namshi | Rocket Internet

VP Technology

odino.org

Page 165: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco

Image credits

http://www.flickr.com/photos/randystiefer/6998037429/sizes/h/in/photostream/http://www.flickr.com/photos/55432818@N02/5500963965/

http://www.flickr.com/photos/pamhule/4503305775/http://www.flickr.com/photos/wili/1427890704/

http://www.flickr.com/photos/nickpiggott/5212959770/sizes/l/in/photostream/http://www.flickr.com/photos/nomad9491/2549965427/sizes/l/in/photostream/

http://www.flickr.com/photos/amyvdh/95764607/sizes/l/in/photostream/http://www.flickr.com/photos/matthoult/4524176654/

http://www.flickr.com/photos/kittyeden/2416355396/sizes/l/in/photostream/http://www.flickr.com/photos/jpverkamp/3078094381/

http://www.flickr.com/photos/madpoet_one/5554416836/http://www.flickr.com/photos/87792096@N00/2732978107/

http://www.flickr.com/photos/petriv/4787037035/http://www.flickr.com/photos/51035796522@N01/111091247/sizes/l/in/photostream/

http://www.flickr.com/photos/m-i-k-e/6366787693/sizes/l/in/photostream/http://www.flickr.com/photos/39065466@N04/9111005211/

http://www.flickr.com/photos/marchorowitz/5449945176/sizes/l/in/photolist-9iAoQ1-8s4ueH-bCWef9-bCWdPh-e48XUm-bu67nh-a7xaEr-8wLiNh-9aYU1k-9F4VUN-dYqzr1-9vosHb-8BtFuw-8P3h2e-9tqc6M-82qpt4-7UgkBJ-dgSnfS-aJiubZ-9Xji2U-9UVpkC-

7BSh7Y-8GE54k-91GHtB-8VMHJ2-8wiwvo-aCmPCg-925Tg8-bcBv9T-dGUseY/http://www.flickr.com/photos/blegg/745322703/sizes/l/in/photostream/

http://www.flickr.com/photos/centralasian/4649550142/sizes/l/in/photostream/http://www.flickr.com/photos/pennstatelive/4947279459/sizes/l/in/photostream/

http://www.flickr.com/photos/tjblackwell/7819341478/http://www.flickr.com/photos/brainbitch/6066375386/

http://www.flickr.com/photos/nnova/4215594009/http://www.flickr.com/photos/publicenergy/2246574379/

http://www.flickr.com/photos/andrewteman/4592833017/sizes/o/in/photostream/http://www.flickr.com/photos/beautifulrevelry/8548004964/sizes/o/in/photostream/

http://www.flickr.com/photos/denaldo/5066810104/sizes/l/in/photostream/http://www.flickr.com/photos/picturewendy/8365723674/sizes/l/in/photostream/http://www.flickr.com/photos/danielygo/6644679037/sizes/l/in/photostream/

http://www.flickr.com/photos/ross/7614352/sizes/l/in/photostream/http://www.flickr.com/photos/75932013@N02/6874087329/sizes/l/in/photostream/

http://crucifixjel.deviantart.com/art/300-Wallpaper-03-66516887