SlideShare a Scribd company logo
1 of 77
Download to read offline
Jak skopać wydajność od początku projektu
studium przypadków
Krystian Zybała
Krystian Zybała
Principal Java Engineer / Java Performance Engineer
JVM, Kafka, Cassandra
Pomaga, szkole, doradzam
Motywacja
Czy wydajność jest dla nas
ważna?
Czy wydajność jest dla nas ważna?
• Tak, jest bardzo ważna ale nie na tym etapie bo musimy dowieźć XYZ
• Tak, system musi być wydajny ale wiesz musi też być tani
• Nie ma czasu na wydajność
• Po to mamy mikro serwisy aby było wydajnie
• Mamy Kubernetes’a to ogarnie za nas
Cel
„Jaki są cele naszego systemu?”
Jakie są cele naszego systemu?
• Potrzebujemy wydajnego systemu aby realizować nasze wymagania
• Tworzymy nowy system od podstaw który zastąpi monolit bo był wolny
• Przepisujemy system z monolitu na system rozproszony aby zyskać
wydajność i skalowalność
• Musimy być konkurencyjni bo inni robią to znacznie szybciej i taniej
Jakie są cele naszego systemu?
• Potrzebujemy wydajnego systemu aby realizować nasze wymagania
• Tworzymy nowy system od podstaw który zastąpi monolit bo był wolny
• Przepisujemy system z monolitu na system rozproszony aby zyskać
wydajność i skalowalność
• Musimy być konkurencyjni bo inni robią to znacznie szybciej i taniej
Nie dyskretne pytania
Nie dyskretne pytania
• Czy ktoś mierzy/mierzył wydajność?
• Jak obecnie mierzycie wydajność?
• Jakie są metryki?
• Gdzie jest krytyczna ścieżka systemu?
• SLA/SLO/SLI?
„Czy wydajność naprawdę jest ważna w naszym systemie?”
https://tenor.com/view/spongebob-rainbow-imagination-meme-idc-gif-17331659
https://i1.memy.pl/obrazki/6515376204_i_co_ja_tu_robie.jpg
Nie podajemy się!
Nadciąga pierwsze wdrożenie
na produkcje
Co poszło nie tak?
Akt 1- przemówienie
Akt 2 - zbieranie wymagań
https://img-9gag-fun.9cache.com/photo/a0Nzx1X_700bwp.webp
Co poszło nie tak?
Akt 3 - architektura
CV
Order Query Billing Query
Account
Query
Order
query
Recipient
Query
Payment
Command
Auth Server
Order Command
Order Query
Recipient Command
Recipient Query
BFF
Payment Query
Czas wybrać technologie
Auth Server
Order Command
Order Query
Recipient Command
Recipient Query
BFF
Payment Query
Donald Knuth
„Premature optimization is the root of all evil.”
Co poszło nie tak?
Akt 4 - development
Prekursorzy stylu
Deszcz dependencji
Fajny ten CQRS ale trzeba
czekać na zdarzenia
Jak wysyłać eventy?
Batch
Akt 5 - testowanie
Po klikamy po UI
Zróbmy testy wydajnościowe
Rodzaje testów wydajnościowych
• Testy wydajności Testy obciążenia
• Testy przeciążenia
• Testy wytrzymałościowe
• Testy przepustowości
• Testy skalowalności
• Testy skokowe
Akt 6 - wdrożenie
Akt 7 - płacz
Akt 8 - spłaćmy dług który
zaciągnęliśmy
UI Driven Development
CQRS i EDA
Fallacies of distributed computing
• The network is reliable
• Latency is zero
• Bandwidth is in
fi
nite
• The network is secure
• Topology doesn't change
• There is one administrator
• Transport cost is zero
• The network is homogeneous
Kafka
Distributed Database
DDD
Jednorodne podejście czyli
jeden pattern do wszystkiego
Data locality
Transfer Accounting
req HTTP
Transfer Accounting
10k reqs HTTP
Transfer Accounting
Event
Cache
Infrastruktura
Estymacja
Biblioteki
Premature optimization
Observability
Akt 9 - problem dziewięciu
kobiet
Akt 10 - dlaczego to jest
wszystkie … drogie?
Podsumowanie
Podsumowanie
• O wydajności trzeba myśleć
• Wydajność powinna być brana na każdym etapie projektu
• Macie realny wpływ
• Rozwiązania które projektujecie mają istotny wpływ na wydajność
• Rozsądny wybór technologi a nie hype
Podsumowanie
• Metrics-
fi
rst to dobre podejście
• Brak metryk powoduje, problem na produkcji
• Sumaryczne metryki przetwarzania eventów
• Metryki biznesowe i techniczne
• Aktywne alertowanie
Pytania?
Dziękuje

More Related Content

Similar to Jak spieprzyć wydajność od początku projektu studium przypadków..pdf

Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiAntoni Orfin
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Quick-Solution
 
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...PROIDEA
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymDariusz Jagieło
 
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...asquelt
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wojciech Barczyński
 
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...Future Processing
 
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSeeQuality.net
 
Case study - Wdrożenie eCommerce w TIM SA
Case study - Wdrożenie eCommerce w TIM SACase study - Wdrożenie eCommerce w TIM SA
Case study - Wdrożenie eCommerce w TIM SATomasz Karwatka
 
Case Study - eCommerce w TIM SA
Case Study - eCommerce w TIM SACase Study - eCommerce w TIM SA
Case Study - eCommerce w TIM SADivante
 
DevOps - what I have learnt so far
DevOps - what I have learnt so far DevOps - what I have learnt so far
DevOps - what I have learnt so far Wojciech Barczyński
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
Continuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychContinuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychDreamLab
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaJakub Hajek
 
SkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel DecSkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel Deckraqa
 
Certyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case StudyCertyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case StudyTobias Koprowski
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testowWiktor Żołnowski
 
Wiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanie
Wiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanieWiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanie
Wiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanieMichał Parkoła
 
Prezentacja agile telco
Prezentacja agile telcoPrezentacja agile telco
Prezentacja agile telcoDawid Mielnik
 

Similar to Jak spieprzyć wydajność od początku projektu studium przypadków..pdf (20)

Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?
 
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - ...
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
 
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
 
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
 
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
 
Case study - Wdrożenie eCommerce w TIM SA
Case study - Wdrożenie eCommerce w TIM SACase study - Wdrożenie eCommerce w TIM SA
Case study - Wdrożenie eCommerce w TIM SA
 
Case Study - eCommerce w TIM SA
Case Study - eCommerce w TIM SACase Study - eCommerce w TIM SA
Case Study - eCommerce w TIM SA
 
DevOps - what I have learnt so far
DevOps - what I have learnt so far DevOps - what I have learnt so far
DevOps - what I have learnt so far
 
Robert Olejnik - Bezpieczeństwo w chmurach, czyli jak i dlaczego stworzyliśmy...
Robert Olejnik - Bezpieczeństwo w chmurach, czyli jak i dlaczego stworzyliśmy...Robert Olejnik - Bezpieczeństwo w chmurach, czyli jak i dlaczego stworzyliśmy...
Robert Olejnik - Bezpieczeństwo w chmurach, czyli jak i dlaczego stworzyliśmy...
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Continuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychContinuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowych
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólna
 
SkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel DecSkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel Dec
 
Certyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case StudyCertyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case Study
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
 
Wiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanie
Wiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanieWiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanie
Wiosenne Wieczory ze Scrum 4 Wdrożenie i skalowanie
 
Prezentacja agile telco
Prezentacja agile telcoPrezentacja agile telco
Prezentacja agile telco
 

Jak spieprzyć wydajność od początku projektu studium przypadków..pdf