Slide 1

Slide 1 text

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]

Slide 2

Slide 2 text

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?

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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ł

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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ę

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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)

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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?

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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?

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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?

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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.

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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?

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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Ć

Slide 46

Slide 46 text

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     

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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.

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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?

Slide 53

Slide 53 text

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Ć

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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.

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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"

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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?

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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.

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

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

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

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.

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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.

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

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.

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

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

Slide 91

Slide 91 text

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)

Slide 92

Slide 92 text

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)

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

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

Slide 97

Slide 97 text

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.

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

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

Slide 100

Slide 100 text

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

Slide 101

Slide 101 text

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

Slide 102

Slide 102 text

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

Slide 103

Slide 103 text

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…

Slide 104

Slide 104 text

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

Slide 105

Slide 105 text

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

Slide 106

Slide 106 text

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/

Slide 107

Slide 107 text

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