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.

Jakub Marchwicki

October 24, 2017
Tweet

More Decks by Jakub Marchwicki

Other Decks in Technology

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]

    View Slide

  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?

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  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

    View Slide

  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ł

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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ę

    View Slide

  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

    View Slide

  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

    View Slide

  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)

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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?

    View Slide

  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

    View Slide

  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?

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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?

    View Slide

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

    View Slide

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

    View Slide

  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 |
    | |
    +-------------+
    //

    View Slide

  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 | +------------------+
    | |
    +-------------+
    //

    View Slide

  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 |
    | |
    +----------------+
    //

    View Slide

  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)
    +
    //

    View Slide

  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)
    +
    //

    View Slide

  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)
    +
    //

    View Slide

  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)
    +
    //

    View Slide

  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
    //

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  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 |
    | |
    +-----------------------------------------------+

    View Slide

  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?

    View Slide

  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 |
    | |
    +-----------------------------------------------+

    View Slide

  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 |
    | |
    +-----------------------------------------------+

    View Slide

  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Ć

    View Slide

  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





    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  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 |
    | | | |
    +-------------+ +------------------+

    View Slide

  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?

    View Slide

  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Ć

    View Slide

  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 |
    | | | |
    +-----+ +------------------+

    View Slide

  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





    View Slide

  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

    View Slide

  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.

    View Slide

  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 |
    +--------------------------+ +---------------------------+

    View Slide

  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

    View Slide

  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

    View Slide

  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"

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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?

    View Slide

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

    View Slide

  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.

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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ć?

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  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ć?

    View Slide

  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.

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  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

    View Slide

  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)

    View Slide

  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)

    View Slide

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

    View Slide

  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ć?

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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ć?

    View Slide

  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…

    View Slide

  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

    View Slide

  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?

    View Slide

  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
    [email protected]
    http://jakub.marchwicki.pl/

    View Slide

  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

    View Slide