Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hypermedia-Driven Orchestration in Microservices

2,693 views

Published on

A talk given at O'Reilly Software Architecture Conference, Boston, March, 2015 – Hypermedia-Driven Orchestration in Microservices

Published in: Technology

Hypermedia-Driven Orchestration in Microservices

  1. 1. Hypermedia*Driven Orchestration4in4Microservices Irakli4Nadareishvili * @inadarei Director(of(Strategy,(API(Academy March,42015
  2. 2. 2 ©(2015(CA.(ALL(RIGHTS(RESERVED. Marc Andreessen
  3. 3. 3 ©(2015(CA.(ALL(RIGHTS(RESERVED. Marc Andreessen
  4. 4. 4 ©(2015(CA.(ALL(RIGHTS(RESERVED. Marc Andreessen “This%is%a%pattern%that%we%love% to%fund:%unbundle X%from%Y,% but%then%use%the%liberation%of% X%as%leverage%to%do%amazing% new%things%with%X.”#
  5. 5. 5 ©(2015(CA.(ALL(RIGHTS(RESERVED. “Unbundling”
  6. 6. 6 ©(2015(CA.(ALL(RIGHTS(RESERVED. «unbundled#by»
  7. 7. 7 ©(2015(CA.(ALL(RIGHTS(RESERVED. «unbundled#by»
  8. 8. 8 ©(2015(CA.(ALL(RIGHTS(RESERVED. «unbundled#by»
  9. 9. 9 ©(2015(CA.(ALL(RIGHTS(RESERVED. «unbundled#by»
  10. 10. 10 ©(2015(CA.(ALL(RIGHTS(RESERVED. Irakli(Nadareishvili – @inadarei Hypermedia*Driven Orchestration4in4Microservices
  11. 11. 11 ©(2015(CA.(ALL(RIGHTS(RESERVED. What are “Microservices”?
  12. 12. 12 ©(2015(CA.(ALL(RIGHTS(RESERVED. MartinFowler: O http://martinfowler.com/articles/microservices.html “We(cannot(say(there(is(a(formal( definition(of(the(microservices architectural(style,(but(we(can(attempt( to(describe(what(we(see(as(common( characteristics(for(architectures(that(fit( the(label.(
  13. 13. 13 ©(2015(CA.(ALL(RIGHTS(RESERVED. EVOLUTIONARY4DESIGN CharacteristicsofaMicroserviceArchitectureperFowler: COMPONENTIZATION4VIA4SERVICES ORGANIZED4AROUND4BUSINESS4CAPABILITIES PRODUCTS,4NOT44PROJECTS SMART4ENDPOINTS4AND4DUMB4PIPES DECENTRALIZED4GOVERNANCE4&4DATA4MANAGEMENT 1 2 3 4 5 INFRASTRUCTURE4AUTOMATION/DESIGN4FOR4FAILURE6 7
  14. 14. 14 ©(2015(CA.(ALL(RIGHTS(RESERVED. We KnowWhat It Is Not: Monolith
  15. 15. 15 ©(2015(CA.(ALL(RIGHTS(RESERVED. We KnowIt Is Popular:
  16. 16. 16 ©(2015(CA.(ALL(RIGHTS(RESERVED.
  17. 17. 17 ©(2015(CA.(ALL(RIGHTS(RESERVED. It is notjust abouttechnology
  18. 18. 18 ©(2015(CA.(ALL(RIGHTS(RESERVED. Unbundling:greatestdisruptor of tech industry “Microservices unbundle'your%business% for%internal%and%[controlled]%external% disruption”# – Irakli#Nadareishvili
  19. 19. 19 ©(2015(CA.(ALL(RIGHTS(RESERVED. MicroserviceArchitecture iscomplex Uncomfortable truth:
  20. 20. 20 ©(2015(CA.(ALL(RIGHTS(RESERVED. Monolithis brittle,but has order
  21. 21. 21 ©(2015(CA.(ALL(RIGHTS(RESERVED. Microservices:High Degree of Freedom
  22. 22. 22 ©(2015(CA.(ALL(RIGHTS(RESERVED. Mostof us arequiteawful at designingdistributedsystems. Uncomfortable truth:
  23. 23. 23 ©(2015(CA.(ALL(RIGHTS(RESERVED.
  24. 24. 24 ©(2015(CA.(ALL(RIGHTS(RESERVED. EVOLUTIONARY4DESIGN CharacteristicsofaMicroserviceArchitectureperFowler: DECENTRALIZED4GOVERNANCE4&4DATA4MANAGEMENT5 7
  25. 25. 25 ©(2015(CA.(ALL(RIGHTS(RESERVED. Watch-outfor tightcoupling!
  26. 26. 26 ©(2015(CA.(ALL(RIGHTS(RESERVED. Wecan buildloosely-coupled, evolvableservices,by designing themas HypermediaAPIs Solution we know works:
  27. 27. 27 ©(2015(CA.(ALL(RIGHTS(RESERVED. HypermediaperFielding Architectural(Styles(and(the(Design(of(NetworkObased( Software,(2001 O Roy(T.(Fielding “Hypermedia(is(defined(by(the( presence(of(application(control( information(embedded(within,(or( as(a(layer(above,(the(presentation( of(information
  28. 28. 28 ©(2015(CA.(ALL(RIGHTS(RESERVED. Or: response= data+ controls API(server(would(have(to(send(client( not(just(static data,(but(also(controls( describing(API(affordances.
  29. 29. 29 ©(2015(CA.(ALL(RIGHTS(RESERVED. Challengeby IosebDzmanashvili: Most(common(hypermedia( controls(facilitate(“a(single(step”.
  30. 30. 30 ©(2015(CA.(ALL(RIGHTS(RESERVED. Howdo we orchestrate Loosely-coupledmicroservices for complexworkflows?
  31. 31. 31 ©(2015(CA.(ALL(RIGHTS(RESERVED. #REM:response= data+ controls API(server(would(have(to(send(client( not(just(static data,(but(also(controls( describing(API(affordances.
  32. 32. 32 ©(2015(CA.(ALL(RIGHTS(RESERVED. Affordances Theory(of(Affordances,(1979 O James(J.(Gibson Affordances(are(all("action(possibilities"( latent(in(the(environment.
  33. 33. 33 ©(2015(CA.(ALL(RIGHTS(RESERVED. Affordances
  34. 34. 34 ©(2015(CA.(ALL(RIGHTS(RESERVED. Affordances
  35. 35. 35 ©(2015(CA.(ALL(RIGHTS(RESERVED. Affordances’rekeyto a gooddesign Imagine(a(car(or(a(building(that(you(couldn't(possibly( use,(unless(you(had(a(manual.(That(sounds(silly,(we( don't(build(cars(or(buildings(like(that.(Yet,(that(is( exactly(how(we(build(APIs(today.
  36. 36. 36 ©(2015(CA.(ALL(RIGHTS(RESERVED. Recognizable Affordances
  37. 37. 37 ©(2015(CA.(ALL(RIGHTS(RESERVED. Commonality MakesAffordances Obvious Are(all(cars(exactly(the(same?(No.(Can(we(do(basic(things( with(any(car,(once(we(understand(how(cars(in(general(work?( Yes!(Do(we(need(to(read(a(manual(for(that?(No!
  38. 38. 38 ©(2015(CA.(ALL(RIGHTS(RESERVED. Identify and standardize commonset of affordances We need to:
  39. 39. 39 ©(2015(CA.(ALL(RIGHTS(RESERVED. E*COMMERCE BOOKING4TRAVEL1 2 Examples:
  40. 40. 40 ©(2015(CA.(ALL(RIGHTS(RESERVED. BookingTravel
  41. 41. 41 ©(2015(CA.(ALL(RIGHTS(RESERVED. Diagram(by:(Clemens(Vasters source:(http://vasters.com/clemensv/2012/09/01/Sagas.aspx Saga: Long-LivedCompensating Transactions
  42. 42. 42 ©(2015(CA.(ALL(RIGHTS(RESERVED. Link RelationsforSaga: • rel =(“routingOslip”((new:(microformats) • rel =(“compensatingtx”((new:(microformats) @see:(http://rels.messages.io
  43. 43. 43 ©(2015(CA.(ALL(RIGHTS(RESERVED. E-Commerce
  44. 44. 44 ©(2015(CA.(ALL(RIGHTS(RESERVED. BROWSING/DISCOVERY4–“HYPERMEDIA4MAZE”4(AMUNDSEN) CHECKOUT4– SERVICE4ORCHESTRATION POST*PURCHASE4–SERVICE4CHOREOGRAPHY 1 2 3 3 Typesof ComplexWorkflows
  45. 45. 45 ©(2015(CA.(ALL(RIGHTS(RESERVED. MazeProblems
  46. 46. 46 ©(2015(CA.(ALL(RIGHTS(RESERVED. Maze+XML
  47. 47. 47 ©(2015(CA.(ALL(RIGHTS(RESERVED. Checkout:Orchestration Checkout 1.(Collect(Shipping(Info 2.(Billing(Info 3.(Authorize(Payment 4.(PostOpurchase(processing
  48. 48. 48 ©(2015(CA.(ALL(RIGHTS(RESERVED. OrchestrationforWizard-StyleWFs: • rel =(“next” • rel =(“prev” Standard(IANA(link(relations:
  49. 49. 49 ©(2015(CA.(ALL(RIGHTS(RESERVED. PostPurchase:Choreography PostOPurchase( service Shipping(Service EOmail(notification(service SMS Notification(Service Purchase( Completed( event Push(Notification(Service «subscribes#to»
  50. 50. 50 ©(2015(CA.(ALL(RIGHTS(RESERVED. ServiceChoreography • rel =(“hub”((IANA(standard) • rel =(“sub”((new:(microformats) • rel =(“unsub”((new:(microformats) • rel =(“events”((new:(microformats) Async and(eventOdriven.( Standard:(Pubsubhubbub @see:(http://rels.messages.io
  51. 51. 51 ©(2015(CA.(ALL(RIGHTS(RESERVED. BROWSING/DISCOVERY4–“HYPERMEDIA4MAZE”4(MIKE4AMUNDSEN) CHECKOUT4– SERVICE4ORCHESTRATION POST*PURCHASE4–SERVICE4CHOREOGRAPHY 1 2 3 Typesof ComplexWorkflows DISTRIBUTED4TRANSACTIONS4–SAGA4(HECTOR4GARCIA*MOLINA4&4KENNETH4SALEM4)4
  52. 52. 52 ©(2015(CA.(ALL(RIGHTS(RESERVED. Are theremoreworkflowtypes? Probably,but: next time!
  53. 53. 53 ©(2015(CA.(ALL(RIGHTS(RESERVED. Microservices❤ Hypermedia-DrivenOrchestration Photo(credit:(Corey(Seeman,( CC(BYONCOSA( 2.0.(https://www.flickr.com/photos/cseeman/14144834659
  54. 54. Director(of(Strategy,(API(Academy Irakli4Nadareishvili @inadarei @apiacademy @cainc https://speakerdeck.com/irakli linkedin.com/in/inadarei ca.com

×