Wysoka skalowalność systemu e-commerce na przykładzie magento

Post on 20-Jul-2015

744 views 0 download

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

Dziękuję za uwagę

Autor: Marcin Dykas

Kontakt: sprzedaz@divante.pl