Dlaczego infrastruktura ma takie znaczenie w Magento
Magento to jedna z najbardziej wymagających platform e-commerce. Każde wejście na stronę kategorii, każde wyszukiwanie i każde dodanie produktu do koszyka to dziesiątki zapytań do bazy danych i indeksu wyszukiwarki. Na współdzielonym hostingu albo źle dobranym serwerze sklep zwyczajnie muli — a problemy nasilają się dokładnie wtedy, kiedy ruch jest największy i każda minuta przestoju kosztuje najwięcej.
Dla klientów sklepu różnica jest odczuwalna od pierwszego kliknięcia. Szybki sklep sprzedaje lepiej — nikt nie czeka na wolno ładujące się strony, a każda dodatkowa sekunda to porzucone koszyki. Sprawna wyszukiwarka oparta o Elasticsearch zwraca wyniki natychmiast i nie zamula filtrowania kategorii, więc klient znajduje produkt, zamiast wyjść do konkurencji. Szybkość ładowania to również czynnik rankingowy w Google (Core Web Vitals) — dobra infrastruktura pracuje na widoczność sklepu w wynikach wyszukiwania.
Jest jeszcze druga strona: koszty i spokój. Stack dobrany do realnej skali sklepu kosztuje mniej niż przewymiarowany serwer trzymany „na zapas", a możliwość skalowania zasobów sprawia, że kampania reklamowa czy Black Friday przestają być loterią — to właśnie wtedy sklep musi działać najlepiej, nie najgorzej.
Minimalne wymagania Magento 2
Magento 2.4 ma konkretne wymagania techniczne. Bez ich spełnienia sklep nie wystartuje albo będzie działał znacznie poniżej możliwości:
| PHP | 8.3 lub 8.4 (PHP-FPM) z rozszerzeniami m.in. intl, soap, bcmath, gd — plus poprawnie ustawiony OPcache |
|---|---|
| Baza danych | MySQL 8.0/8.4 lub MariaDB 10.11+ — z buforami dobranymi do rozmiaru katalogu produktów |
| Wyszukiwarka | OpenSearch 2.x lub Elasticsearch — od Magento 2.4 wymagane, bez tego nie działa katalog |
| Cache i sesje | Redis dla cache aplikacji i sesji; Varnish jako full-page cache (zalecany na produkcji) |
| Kolejki | RabbitMQ dla przetwarzania asynchronicznego (opcjonalny, ale odciąża sklep przy dużej liczbie operacji) |
| Pamięć RAM | 2 GB to absolutne minimum do instalacji — produkcyjny sklep potrzebuje realnie od 8 GB wzwyż |
„Minimalne" nie znaczy „produkcyjne". Konfiguracja, która wystarcza do uruchomienia Magento, rzadko wystarcza do sprzedawania — dlatego wymagania zawsze przeliczamy na realny katalog, ruch i integracje konkretnego sklepu.
Dlaczego oddzielamy bazę danych od aplikacji
W typowej instalacji „wszystko na jednym serwerze" PHP-FPM, MySQL i Elasticsearch konkurują o te same zasoby. Wystarczy cięższa reindeksacja katalogu albo skok ruchu i baza zaczyna zabierać pamięć aplikacji — sklep zwalnia, chociaż na papierze serwer ma jeszcze zapas.
Dlatego w środowiskach produkcyjnych rozdzielamy warstwę bazodanową od aplikacyjnej. Każda z nich dostaje wtedy zasoby na wyłączność i konfigurację pod swoją rolę: MySQL własną pamięć na bufory i szybkie dyski, PHP-FPM własne CPU pod obsługę ruchu. Warstwy skalują się niezależnie — aplikację rozbudowujesz pod rosnący ruch, bazę pod rosnący katalog, bez przenoszenia całego sklepu.
To także kwestia bezpieczeństwa i utrzymania. Baza działa w sieci prywatnej, bez publicznego adresu i dostępu z internetu — na zewnątrz wystawiony jest wyłącznie front sklepu. Deploy czy restart aplikacji nie dotyka bazy, a backupy i tuning prowadzone są osobno dla każdej warstwy. Ten układ zwraca się najpóźniej przy pierwszej dużej kampanii.
Środowiska Magento budujemy na AWS
Jako certyfikowany partner AWS uruchamiamy sklepy na infrastrukturze Amazon Web Services — w europejskich regionach, z pełną separacją środowisk klientów i danymi przechowywanymi na terenie Unii Europejskiej, zgodnie z wymaganiami RODO.
Dla sklepu Magento oznacza to przede wszystkim elastyczność. Zasoby można zwiększyć przed kampanią i zmniejszyć po niej, zamiast utrzymywać przez cały rok serwer wymiarowany pod jeden szczyt sprzedaży. Baza danych i usługi wewnętrzne pracują w sieci prywatnej (VPC), a snapshoty dysków i kopie przyrostowe pozwalają szybko odtworzyć sklep po awarii — również do środowiska testowego, kiedy trzeba bezpiecznie sprawdzić większą zmianę.