Wysoka skalowalność systemu e-commerce na przykładzie magento
Transcript of Wysoka skalowalność systemu e-commerce na przykładzie magento
Wysoka skalowalność systemu e-commerce
na przykładzie Magento
Agenda
1. Systemy e-commerce
2. Jak obsłużyć duży ruch i dlaczego to jest problem?
3. Magento PHP OpenSource
4. Biznes a czas życia projektu
5. Skalowalność
6. Wykorzystywane technologie
7. Oprogramowanie
Systemy e-commerce
• B2B sprzedaje przez WWW
• 20 % wzrostu rynku rok do roku
• Opłacalność gotowego rozwiązania np Magento
• Hasło na dziś: Jedyne co jest wiadome to zmiany
Jak obsłużyć duży ruch ?
• Skończone zasoby sprzętowe
• Wzrost oferty produktowej i transakcji
zakupowych
• Problemy mentalne w powiększaniu
infrastruktury
• Duża ilość transakcji w określonych porach dnia
Magento
• Kompletny silnik e-commerce za darmo
• Elastyczna struktura bazy pozwala na
odzwierciedlenie różnorodnej oferty
• Modułowość systemu Magento umożliwia
bezpieczne rozwijanie
• Wysoki próg wejścia
Biznes i sprzedaż
• Cykl życia projektu
• SLA - service level agreement
• Negatwyny scenariusz czyli ciągła refaktoryzacja
• Pozytywny scenariusz kiedy sprzedaż przerasta
oczekiwania i potrzebny jest skalowalny system
Skalowalność
• pionowa
poprzez dodanie zasobów do serwera: rdzeni,
pamięci i dysków. W początkowej fazie daje
bardzo dobre rezultaty. Często tańsza niż prace
programistyczne. Niestety szybko pojawia się
sciana technologiczna.
Scalability
• pozioma
poprzez rozdzielenie zasobów na wiele
serwerów, które równorzędnie obsługują ruch.
Trudniejsza w realizacji od strony aplikacji i
administratora ale teoretycznie bez limitu.
Rówież poprzez asynchroniczne kolejki
przetwarzania.
Skalowalność aplikacji
Możliwa do realizacji dzięki loadbalncerom rozdzielającym
ruch wg dowolnego algorytmu. Rolę load balancera może
pełnić osobny serwer lub może być realizowane przy
pomocy reverse-proxy varnish. Aplikacja musi być gotowa
na wykonanie na wielu serwerach.
Skalowalna architektura aplikacji
Skalowalność bazy danych
Skalowalność bazy danych realizowana jest w oparciu o
replikację bazy. Jedna baza zapisu jest replikowana w wiele baz
odczytujących. Aplikacja musi być przygotowana na pracę z
wieloma bazami w kontekstach zapisu i odczytu.
Skalowalna architektura bazy
Technologie
OpenSource vs Microsoft
• Debian
• Varnish
• Redis
• Replikacja bazy
• Kolejki przetwarzania danych np Gearman
Oprogramowanie
• Konsolowe
htop, top, logi serwera i aplikacji
• Monitoring
Newrelic
Zabbix