Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservice Everything Redux

Microservice Everything Redux

Refreshed version (after 2years) of the Microservice Everything presentation.

B5405045448a182b8ee12236ec63d8b0?s=128

Jakub Marchwicki

October 24, 2017
Tweet

Transcript

  1. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 1/107 MIKROSERWISY, WSZĘDZIE MIKROSERWISY, WSZĘDZIE

    MIKROSERWISY MIKROSERWISY Jakub Marchwicki [@kubem]
  2. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 2/107 @kubem ~ http://jakub.marchwicki.pl the

    5 why’s of microservices the 5 why’s of microservices Mikroserwisy? Mikroserwisy? Mikroserwisy? Mikroserwisy? Mikroserwisy? Dlaczego? Dlaczego? (ง •̀ ω•́ )ง✧, dlaczego? •.◉, dlaczego? ༼☯ ﹏ ☯༽! Dlaczego?
  3. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 3/107 Software engineer Chief Mob

    O cer Jakub Marchwicki <@kubem> http://jakub.marchwicki.pl
  4. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 4/107 @kubem ~ http://jakub.marchwicki.pl dlaczego

    mikroserwisy? dlaczego mikroserwisy? Całkiem prawdopodobna historia, chociaż wszystkie wydarzenia i postacie przedstawione poniżej są kcyjne.
  5. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 5/107 @kubem ~ http://jakub.marchwicki.pl dnia

    pierwszego, siedział architekt dnia pierwszego, siedział architekt
  6. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 6/107 @kubem ~ http://jakub.marchwicki.pl w

    swojej wieży z kości słoniowej w swojej wieży z kości słoniowej w smutku i niepewności
  7. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 7/107 @kubem ~ http://jakub.marchwicki.pl i

    architekt rzekł i architekt rzekł
  8. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 8/107 @kubem ~ http://jakub.marchwicki.pl niech

    nastaną mikroserwisy niech nastaną mikroserwisy
  9. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 9/107 @kubem ~ http://jakub.marchwicki.pl niech

    nastaną małe usługi niech nastaną małe usługi zmieniające się z jednego tylko powodu
  10. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 10/107 @kubem ~ http://jakub.marchwicki.pl niech

    usługi komunikują się niech usługi komunikują się z wykorzystaniem otwartych interfejsów
  11. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 11/107 @kubem ~ http://jakub.marchwicki.pl i

    niech wyjście jednego będzie wejściem dla kolejnego i niech wyjście jednego będzie wejściem dla kolejnego
  12. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 12/107 @kubem ~ http://jakub.marchwicki.pl uczyniwszy

    to architekt dał temu nazwę uczyniwszy to architekt dał temu nazwę
  13. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 13/107 @kubem ~ http://jakub.marchwicki.pl nazwał

    to systemem rozproszonym nazwał to systemem rozproszonym
  14. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 14/107 @kubem ~ http://jakub.marchwicki.pl i

    programiści widzieli to i programiści widzieli to i było to dobre
  15. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 15/107 @kubem ~ http://jakub.marchwicki.pl i

    tak upłynął wieczór i poranek i tak upłynął wieczór i poranek (Rodz. 1, 4-13)
  16. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 16/107

  17. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 17/107 @kubem ~ http://jakub.marchwicki.pl mikroserwisy

    mikroserwisy — Sam Newman “Mikroserwisy to koncept architektoniczny który w założeniu ma na celu rozprzęgnięcie rozwiązania poprzez jego dekompozycje funkcjonalną na mniejsze elementy, komunikujące się między sobą poprzez lekkie mechanizmy, często HTTP
  18. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 18/107

  19. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 19/107 @kubem ~ http://jakub.marchwicki.pl mikroserwisy

    mikroserwisy Niewielki problem biznesowy Niezależny; niezależnie wdrażany Działający we własnym procesie Zarządzający swoimi danymi Integrujący się z wykorzytaniem powszechnych interfejsów
  20. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 20/107

  21. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 21/107 monolit to zło -

    mmkey? monolit to zło - mmkey?
  22. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 22/107 @kubem ~ http://jakub.marchwicki.pl mikroserwisy

    są fajne mikroserwisy są fajne Czysty kod Tworzymy moduły które mają pojedynczą odpowiedzialność Są szybsze niż monolity Łatwiejsze w zarządzaniu Łatwiejsze do skalowania Docker, docker, docker, docker potencjalnie szybsze do wdrożenia, szybsze w działaniu nie wszyscy pracują na pojedynczym code-basie tutaj gdzieś powinien pojawić się Docker
  23. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 23/107 mikroserwisy są fajne -

    mmmkey? mikroserwisy są fajne - mmmkey?
  24. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 24/107 @kubem ~ http://jakub.marchwicki.pl (…

    ) collection of task-oriented or dedicated systems that pool their resources and capabilities together to create a new, more complex system which offers more functionality and performance than simply the sum of the constituent systems
  25. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 25/107 @kubem ~ http://jakub.marchwicki.pl system

    of systems system of systems (… ) collection of task-oriented or dedicated systems that pool their resources and capabilities together to create a new, more complex system which offers more functionality and performance than simply the sum of the constituent systems
  26. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 26/107

  27. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 27/107 @kubem ~ http://jakub.marchwicki.pl co

    może pójść nie tak? co może pójść nie tak?
  28. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 28/107

  29. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 29/107

  30. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 30/107 // Exibit A +-------------+

    | | | Resources | | service | | | +-------------+ //
  31. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 31/107 // Exibit A +------------------+

    +-------------+ | | | | | Access control | | Resources | | | | service | +------------------+ | | +-------------+ //
  32. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 32/107 // Exibit A +------------------+

    +-------------+ | | | | | Access control | | Resources | | | | service | +------------------+ | | +-------------+ +----------------+ | | | Users | | repository | | | +----------------+ //
  33. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 33/107 // Exibit A +------------------+

    +-------------+ | | | | | Access control | | Resources | | | | service | +------------------+ | | +-+-----------+ ^ | | +----------------+ | | | | | Users | | | repository | | | | | +----------------+ (1) + //
  34. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 34/107 // Exibit A +------------------+

    +-------------+ | | | | | Access control | | Resources | | | | service | +------------------+ | | +-+-------+---+ ^ | | | | | +----------------+ | | | | | | | Users | | | (2) | repository | | +-----------> | | | +----------------+ (1) + //
  35. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 35/107 // Exibit A +------------------+

    +-------------+ | | | | | Access control | | Resources | | | | service | +------------------+ | +<---------+ +-+-------+---+ (3) | ^ | | | | | | | +----------------+ | | | | | | | Users | | | (2) | repository | | +-----------> | | | +----------------+ (1) + //
  36. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 36/107 // Exibit A +------------------+

    +-------------+ | | | | (4) | Access control | | Resources +------------>+ | | service | +------------------+ | +<---------+ +-+-------+---+ (3) | ^ | | | | | | | +----------------+ | | | | | | | Users | | | (2) | repository | | +-----------> | | | +----------------+ (1) + //
  37. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 37/107 // Exibit A +------------------+

    +-------------+ | | | | (4) | Access control | | Resources +------------>+ | | service | +------------------+ | +<---------+ +-+-------+---+ (3) | ^ | | | | | | | | | | +----------------+ | | | | | | | | | Users | | | | (2) | repository | | | +-----------> | | | | +----------------+ (1) | + | (.?.) v //
  38. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 38/107 @kubem ~ http://jakub.marchwicki.pl droga

    ku mikroserwisom droga ku mikroserwisom
  39. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 39/107 @kubem ~ http://jakub.marchwicki.pl droga

    ku mikroserwisom droga ku mikroserwisom — Christopher Alexander “ Piecemeal Growth to proces budowy krok po kroku, umożliwiający ciągłą ewaluację istniejącego systemu oraz elastyczne podejmowanie decyzji jaki powinien być kolejny krok.
  40. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 40/107 @kubem ~ http://jakub.marchwicki.pl a

    scoring engine EXIBIT B EXIBIT B -- 2009
  41. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 41/107 +-----------------------------------------------+ | | |

    +-----------------------------------+ | | | | | | | Boundary: SOAP | | | | | | | +-----------------------------------+ | | | | | | | EJB | | | | | | | +-----------------------------------+ | | | | | | +--------+ +-------+ +----------+ | | | | | | | | | | | JAX-WS | | JPA | | DROOLS | | | | | | | | | | | +--------+ +-------+ +----------+ | | | | | | JBoss 4.2.x | | | +-----------------------------------------------+
  42. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 42/107 @kubem ~ http://jakub.marchwicki.pl Można

    to jakoś to wizualizować? Trudno jest sprzedać webservice. cel biznesowy? cel biznesowy?
  43. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 43/107 +-----------------------------------------------+ | | |

    +--------------------+--------------+ | | | | | | | | Boundary: SOAP | JSF | | | | | | | | +--------------------+--------------+ | | | | | | | EJB | | | | | | | +-----------------------------------+ | | | | | | +--------+ +-------+ +----------+ | | | | | | | | | | | JAX-WS | | JPA | | DROOLS | | | | | | | | | | | +--------+ +-------+ +----------+ | | | | | | JBoss 4.2.x | | | +-----------------------------------------------+
  44. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 44/107 +-----------------------------------------------+ | | |

    +-----------------+-----------------+ | +---------------+ | | | | | | | | | Boundary: SOAP | REST endpoint | <--------------+ | Dedicated | | | | | | | mobile | | +-----------------+-----------------+ | | Single Page | | | | | | Application | | | EJB | | | | | | | | | | | +-----------------------------------+ | +---------------+ | | | | | +--------+ +-------+ +----------+ | | | | | | | | | | | JAX+WS | | JPA | | DROOLS | | | | | | | | | | | +--------+ +-------+ +----------+ | | | | | | JBoss 4.2.x | | | +-----------------------------------------------+
  45. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 45/107 @kubem ~ http://jakub.marchwicki.pl Rzeczy

    odmienne trzymaj oddzielnie ZAPAMIĘTAĆ ZAPAMIĘTAĆ
  46. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 46/107 @kubem ~ http://jakub.marchwicki.pl microservices

    checklist microservices checklist Niewielki problem biznesowy Niezależny; niezależnie wdrażany Działający we własnym procesie Zarządzający swoimi danymi Integrujący się z wykorzytaniem powszechnych interfejsów     
  47. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 47/107 @kubem ~ http://jakub.marchwicki.pl retrospekcja

    retrospekcja
  48. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 48/107 @kubem ~ http://jakub.marchwicki.pl —

    James Lewis “ We define libraries as components that are linked into a program and called using in-memory calls, while services are out-of-process components who communicate with remote procedure calls
  49. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 49/107 @kubem ~ http://jakub.marchwicki.pl consumer

    driven contracts consumer driven contracts (… ) drives the development of the Provider from its Consumers point of view, which means consumer describes what and how it wants to receive the information (in a form of a contract) and then provider implements the service following the given contract.
  50. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 50/107 @kubem ~ http://jakub.marchwicki.pl huge

    image repository EXIBIT C EXIBIT C -- 2007
  51. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 51/107 +--------------------------------------+ | | |

    web / controllers | | | +-----------+--------------------------+ | | (1) | v +-------------------------------------+ | | | application logic | | | +--+-------------------------+--------+ | | | (2) ^ | (4) | | | v | (3) v | +----------+--+ +------------------+ | | | | | MySQL | | filesystem | | | | | +-------------+ +------------------+
  52. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 52/107 @kubem ~ http://jakub.marchwicki.pl że

    nie da się pracować Szukajka jest taaaaaaka wolna cel biznesowy? cel biznesowy?
  53. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 53/107 @kubem ~ http://jakub.marchwicki.pl Jak

    nie - polub! Nie ma czegoś takiego jak legacy Gdy nikt nie używa - wyrzuć MIĘTAĆ MIĘTAĆ
  54. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 54/107 Proxy +-----+ +------------------+ |

    | /* | | +----------------+--------------------------> | | | | | | The Old stuff | | | | | +--------+ | | | | | | | | | +------------------+ | | | | | | | | | Elastic Search | | | | data push | | | | | | | | | | | +------------------+ | | | | /search | | | | | +--------------------------> | | <------+ | | | Elastic Search | | | | index | | | | | +-----+ +------------------+
  55. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 55/107 @kubem ~ http://jakub.marchwicki.pl microservices

    checklist microservices checklist Niewielki problem biznesowy Niezależny; niezależnie wdrażany Działający we własnym procesie Zarządzający swoimi danymi Integrujący się z wykorzytaniem powszechnych interfejsów     
  56. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 56/107 @kubem ~ http://jakub.marchwicki.pl retrospekcja

    retrospekcja
  57. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 57/107 @kubem ~ http://jakub.marchwicki.pl Andrew

    Tanenbaum — Consistency protocols (2007) “(… ) as every parent of a small child knows, converting a large object into small fragments is considerably easier than the reverse process.
  58. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 58/107 Write through update query

    +--------------------------+ +----------------------------------+ -------------------->| update denormalized view |-------->| update persistent (master) store | +--------------------------+ +----------------------------------+ Write behind update query +----------------------------------+ +---------------------------+ ---------------->| update persistent (master) store |----------->| update denormalized views | +----------------------------------+ +---------------------------+ Read through read query +--------------------------+ +---------------------------+ <---------------------| update denormalized view |<--------------| read persistent store | +--------------------------+ +---------------------------+
  59. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 59/107 @kubem ~ http://jakub.marchwicki.pl co

    zapamiętać co zapamiętać z tych wszystkich projeków
  60. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 60/107 @kubem ~ http://jakub.marchwicki.pl metoda

    małych kroków metoda małych kroków
  61. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 61/107 @kubem ~ http://jakub.marchwicki.pl przestaną

    działać kiedyś monility to systemy "troszkę mniej rozproszone"
  62. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 62/107 @kubem ~ http://jakub.marchwicki.pl nie

    rysuj - śledź i wizualizuj nie rysuj - śledź i wizualizuj
  63. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 63/107 @kubem ~ http://jakub.marchwicki.pl niech

    aplikacja sama mówi gdzie spędza czas
  64. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 64/107 @kubem ~ http://jakub.marchwicki.pl automatyzuj,

    automatyzuj automatyzuj, automatyzuj
  65. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 65/107 @kubem ~ http://jakub.marchwicki.pl nawet

    pojedynczego JAR’a nie wdrażaj ręcznie
  66. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 66/107 @kubem ~ http://jakub.marchwicki.pl a

    jeżeli już się zdecydujemy a jeżeli już się zdecydujemy to co robią nasze mikro serwisy kiedy nikt nie patrzy?
  67. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 67/107

  68. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 68/107 @kubem ~ http://jakub.marchwicki.pl distributed

    computing distributed computing Leslie Lamport — Jakaś mailing lista Microsoft 1987 A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable.
  69. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 69/107 @kubem ~ http://jakub.marchwicki.pl distributed

    computing distributed computing
  70. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 70/107 @kubem ~ http://jakub.marchwicki.pl fallacies

    of distributed computing fallacies of distributed computing — 1994 - 1998 (is) a set of assertions made by L Peter Deutsch and others at Sun Microsystems describing false assumptions that programmers new to distributed applications invariably make
  71. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 71/107 @kubem ~ http://jakub.marchwicki.pl

  72. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 72/107 @kubem ~ http://jakub.marchwicki.pl innymi

    słowy innymi słowy
  73. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 73/107 @kubem ~ http://jakub.marchwicki.pl sieć

    ścierwi
  74. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 74/107 @kubem ~ http://jakub.marchwicki.pl load

    balance load balance all the things
  75. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 75/107 @kubem ~ http://jakub.marchwicki.pl …

    który load balancer wybrać? … który load balancer wybrać?
  76. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 76/107 @kubem ~ http://jakub.marchwicki.pl AWS

    Elastic Load Balancer nginx Ribbon + Eureka Ribbon + Consul Kubernetes
  77. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 77/107 @kubem ~ http://jakub.marchwicki.pl load

    balancing load balancing
  78. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 78/107 @kubem ~ http://jakub.marchwicki.pl server-side

    load balancing server-side load balancing
  79. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 79/107 @kubem ~ http://jakub.marchwicki.pl client-side

    load balancing client-side load balancing
  80. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 80/107 @kubem ~ http://jakub.marchwicki.pl Client-Side

    Service Discovery / Load balancing Server-Side Service Discovery / Load balancing
  81. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 81/107 @kubem ~ http://jakub.marchwicki.pl Client-Side

    Service Discovery / Load balancing Każdy serwis rejestruje się w centralnym repozytorium, gdzie inne serwisy szukają informacji o dostępności usług. Pozostałe serwisy samodzielnie decydują z którą z dostępnych instancji odbywa się komunikacja. Server-Side Service Discovery / Load balancing
  82. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 82/107 @kubem ~ http://jakub.marchwicki.pl Client-Side

    Service Discovery / Load balancing Każdy serwis rejestruje się w centralnym repozytorium, gdzie inne serwisy szukają informacji o dostępności usług. Pozostałe serwisy samodzielnie decydują z którą z dostępnych instancji odbywa się komunikacja. Server-Side Service Discovery / Load balancing Każdy serwis rejestruje się w centralnym repozytorium. Pozostałe serwisy odwołują się do repozytorium (pojedynczy adres sieciowy), które wewnętrznie przekierowuje ruch do jednej z dostępnych instancji.
  83. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 83/107 @kubem ~ http://jakub.marchwicki.pl …

    który load balancer wybrać? … który load balancer wybrać?
  84. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 84/107 @kubem ~ http://jakub.marchwicki.pl brewer’s

    theorem (cap theorem) brewer’s theorem (cap theorem) — 1998 (… ) it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees: Consistency, Availability and Partition tolerance.
  85. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 85/107 @kubem ~ http://jakub.marchwicki.pl Consistency

    Availability Partition tolerance
  86. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 86/107 @kubem ~ http://jakub.marchwicki.pl Consistency

    Spójność. Każdy odczyt to najświeższe, ostatnio zapisane dane lub błąd. Availability Partition tolerance
  87. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 87/107 @kubem ~ http://jakub.marchwicki.pl Consistency

    Spójność. Każdy odczyt to najświeższe, ostatnio zapisane dane lub błąd. Availability Dostępność. Każdy odczyt zakończony jest sukcesem, nie ma gwarancji że dane które otrzymaliśmy są najświeższe. Partition tolerance
  88. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 88/107 @kubem ~ http://jakub.marchwicki.pl Consistency

    Spójność. Każdy odczyt to najświeższe, ostatnio zapisane dane lub błąd. Availability Dostępność. Każdy odczyt zakończony jest sukcesem, nie ma gwarancji że dane które otrzymaliśmy są najświeższe. Partition tolerance Odporność na podział. System kontynuuje działanie pomimo awarii sieci i braku komunikacji pomiędzy węzłami.
  89. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 89/107 @kubem ~ http://jakub.marchwicki.pl cap

    + network fallacies cap + network fallacies
  90. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 90/107 @kubem ~ http://jakub.marchwicki.pl either

    Consistent or Available when Partitioned
  91. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 91/107 @kubem ~ http://jakub.marchwicki.pl consistency

    vs availability consistency vs availability CP Wszystkie dane są spójne (przechowywane w atomowym repozytorium)
  92. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 92/107 @kubem ~ http://jakub.marchwicki.pl consistency

    vs availability consistency vs availability AP Dane są rozproszone (na wzór sieci peer-to- peer)
  93. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 93/107

  94. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 94/107 @kubem ~ http://jakub.marchwicki.pl …

    który load balancer wybrać? … który load balancer wybrać?
  95. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 95/107 @kubem ~ http://jakub.marchwicki.pl cap

    + network latencies cap + network latencies
  96. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 96/107 @kubem ~ http://jakub.marchwicki.pl in

    the absence of partitions, one has to choose between
  97. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 97/107 @kubem ~ http://jakub.marchwicki.pl pacelc

    theorem pacelc theorem — Daniel J. Abadi 2012 Ignoring the consistency/latency tradeoff of replicated systems is a major oversight [in CAP], as it is present at all times during system operation, whereas CAP is only relevant in the arguably rare case of a network partition.
  98. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 98/107 @kubem ~ http://jakub.marchwicki.pl latency

    w ludzkim ujęciu latency w ludzkim ujęciu
  99. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 99/107 @kubem ~ http://jakub.marchwicki.pl One

    CPU cycle 0.4 ns 1 s Level 1 cache access 0.9 ns 2 s Main memory access (DDR DIMM) ~100 ns 4 min SSD I/O 50–150 μs 1.5–4 days Rotational disk I/O 1–10 ms 1–9 months Internet call SF to NYC 65 ms 5 years
  100. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 100/107 @kubem ~ http://jakub.marchwicki.pl innymi

    słowy innymi słowy
  101. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 101/107 @kubem ~ http://jakub.marchwicki.pl sieć

    zawsze ścierwi
  102. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 102/107 @kubem ~ http://jakub.marchwicki.pl …

    który load balancer wybrać? … który load balancer wybrać?
  103. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 103/107 mikroserwisy są proste… mikroserwisy

    są proste…
  104. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 104/107 … ale nie są

    łatwe … ale nie są łatwe
  105. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 105/107 pytania? pytania?

  106. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 106/107 @kubem ~ http://jakub.marchwicki.pl @kubem

    . http://speakerdeck.com/kubamarchwicki/microservice-everything-redux kuba.marchwicki@gmail.com http://jakub.marchwicki.pl/
  107. 4/11/2019 Mikroserwisy, wszędzie mikroserwisy file:///home/jakub/workspaces/slides/microservices-microservice_everything/pl/slides.html?print-pdf#/ 107/107 @kubem ~ http://jakub.marchwicki.pl @kubem

    ~ http://jakub.marchwicki.pl SegFault - wszystko co potrzebujesz wiedzieć aby awansować 26.04.2019 - Łódź http://segfault.events “ absolutnie niedogmatyczne podejście do programistycznych mód, alergia na bullshit, olewczy stosunek dla autortetów