You are on page 1of 6

#A: Skalowanie operacji

Mikoaj Olszewski
Jakie pytania po lekturze?
Skalowalno
W temacie
Umiejtne przetwarzanie rosncej liczby zada
Moliwo rozbudowania / rozszerzenia
Poza tematem
Prdko, wydajno (2 GHz vs. 3 Ghz)
Systemy operacyjne (Solaris vs. Linux)
Technologia (Java vs. Python)
Platforma sprztowa (Intel vs. AMD)
System skadowania danych (SAN vs. NAS)
Optymalny kod (10 lini kodu vs. 1000 lini kodu)
Wydajno
Skalowalno
Prawdy...
1. Nie skaluje si to, co nie jest zaprojektowane do skalowania.
2. Nawet jak jest zaprojektowane do skalowania, najprawdopodobniej bdzie bolao.
Skala blu
Sposoby skalowania
Pionowe lepsze (wydajniejsze) maszyny
koszty nie skaluj si liniowo
ograniczone przez rozwj technologiczny
proste
Poziome wicej maszyn i rozdzielenie zada
trudniejsze w zaprojektowaniu i utrzymaniu
moliwe skalowanie stopniowe
Sposoby podstawowe
Wielo -wtkowy/-procesowy serwer (WSGI)
Serwowanie statycznych plikw przez dedykowany serwer
Loadbalancer dodanie kolejnych serwerw
DNS
sprztowy
software'owy
Cache'owanie
Wygeneruj raz, odczytaj wielokrotnie
Przechowywanie danych (klucz-warto)
pliki na dysku
baza danych
sowniki w pamici operacyjnej (memcached, redis)
Odwieanie danych potencjalny bl gowy
kasowanie
automatyczna anihilacja
operacje atomowe
Kolejkowanie
Kolejka pojemnik na wiadomoci
Waciwoci
asynchroniczko
wieloprocesowo
nawet wieloplatformowo (!)
Sposb zastosowania
kosztowny proces odpalany w tle
powiadomienie uytkownika o rozpocztym zadaniu
(czasem) notyfikacja zakoczenia
Kolejki produkcyjne
Gwarancja dostarczenia wiadomoci
Przeycie restartu lub zepsucia jednego wza
Standardy
JMS Java
AMQP Python
Przykady
Ghetto Queue
TheShwartz
RabbitMQ
Apache ActiveMQ
ZeroMQ
Systemy zadaniowe
Co na wzr RPC (automatyczna wielozadaniowo)
Wykorzystanie kolejek
Automatyczna serializacja zada
identyfikator funkcji/obiektu
parametry
wynik
Duo prostszy interfejs
Lepsze wykorzystanie zasobw maszyny
Elastyczno moiwo wspdziaania z rnymi transportami
Przykady: Celery, Gaerman, Huey, RQ
Dobre praktyki
Nie wynajduj koa skopiuj czyj pomys
Zachowaj prostot
Myl poziomo zamiast pionowo
Uatw sobie radzenie z bdami
izoluj usugi
nie zmieniaj za wiele na raz
Nie przeoptymalizowuj
Testuj skalowalno pod obcieniem
Uywaj cache'a gdziekolwiek ma to sens
Duo pamici i architektura 64-bitowa s pomocne
Analizuj funkcjonalnoci pod ktem skalowalnoci
Co dalej?

You might also like