Autoskalowalny klaster kontenerów Magento w chmurze UniCloud
Od sklepiku do hipermarketu i z powrotem.
Sklep w rozmiarze, jakiego potrzebujesz w danej chwili.
Czy sklepik osiedlowy może stać się hipermarketem gdy niespodziewanie przyjdą tłumy?
Sklepik trudno jest rozciągnąć, ale sklep internetowy może szeroko otworzyć swoje podwoje gdy nagle łowcy okazji zaczną szturmować wejście, oraz zmniejszyć swoją wielkość gdy wyprzedaż się zakończy. Pozwala to z jednej strony zaoszczędzić na utrzymywaniu przewymiarowanych zasobów, z drugiej zaś zapewnia możliwość obsłużenia nagłych wzrostów ilości operacji, jakie zdarzają się na przykład w ‘Czarny piątek’.
Ze względu na modułową architekturę, CMS Magento [1] poddaje się rozbudowie, modyfikacji i dostrojeniu do indywidualnych potrzeb, takich jak optymalizacja silnika czy skalowanie, zarówno pionowe, jak i poziome, co jest gwarantem odpowiedniej dostępności dla użytkowników. Dla platformy UniCloud przygotowana została przez Jelastic specjalna wersja automatycznie skalowalnego klastra pakietu Magento. Jedno kliknięcie pozwala na uruchomienie złożonej topologii przełączania awaryjnego opartą na kontenerach.
Topologia klastra Magento [2]
Domyślna struktura automatycznie skalowalnego klastra Magento przedstawiona jest na poniższym schemacie.
Dla ujednolicenia i uproszczenia obsługę komponentów aplikacji, wykorzystano następujące obrazy Docker:
Varnish – moduł równoważenia obciążenia, który rozdziela ruch przychodzący w klastrze i buforuje całą zawartość statyczną działającą jako proxy HTTPS; automatycznie skalowane w oparciu o ilość ruchu przychodzącego
NGINX PHP – serwery aplikacji do obsługi samego silnika Magento; automatycznie skalowane w oparciu o ilość ruchu przychodzącego.
Storage – węzeł do przechowywania i udostępniania statycznej treści między instancjami serwera aplikacji za pośrednictwem NFS.
Redis Session Storage – węzeł magazynowania w celu zachowania parametrów sesji użytkownika tak, aby w przypadku awarii jednego węzła serwera aplikacji drugi mógł pobrać wymagane dane i kontynuować obsługę klientów bez istotnej przerwy w działaniu.
Pamięć podręczna Redis – węzeł do przechowywania pamięci podręcznej Magento, który pomaga skrócić czas reakcji aplikacji dzięki szybszemu ładowaniu strony podczas przetwarzania podobnych kolejnych żądań.
MySQL DB Cluster – serwery baz danych MySQL z asynchroniczną replikacją typu master-slave pomiędzy nimi w celu osiągnięcia wysokiej dostępności, poprawy ochrony danych i złagodzenia skutków awarii systemu.
Instalacja Magento Cluster
1. Zaloguj się do panelu użytkownika UniCloud (https://app.unicloud.pl)
2. Z listy gotowych aplikacji wybierz Auto-Scalable Magento Cluster
3. W oknie instalacji wpisz nazwę środowiska i opcjonalnie alias, kliknij przycisk Zainstaluj
4. Po kilku minutach instalacji i konfiguracji klastra pojawi się okno z linkiem do panelu administracyjnego Magento, z danymi autoryzacyjnymi
5. Po otwarciu linka w przeglądarce pozwala na przejście do strony wstępnie skonfigurowanego Theme Magento LUMA, która umożliwia na korzystanie z systemu Magento eCommerce niezwłocznie po zakończeniu instalacji.
Dostosowywanie
Środowisko można dostroić i dostosować do swoich potrzeb. Możemy doinstalować i skonfigurować dodatki zapewniające wielochmurowe HA, DR, równoważenie obciążenia, optymalizację wydajności, WAF, CDN i inne. Po wszystkim pozostaje przenieść dane do klastra, jak opisano w Bazie Wiedzy [3].
Info:
[1] Magento:
https://magento.com/products
[2] Magento cluster
https://github.com/jelastic-jps/magento-cluster
[3] Baza Wiedzy UniCloud:
http://pomoc.unicloud.pl/unicloud/hosting-aplikacji/magento-unicloud-przenoszenie-danych-autoskalowalnych-klastrow
Autor:
Piotr Niemcewicz, pracuje w Centrum Danych Asseco Data Systems SA jako Starszy Inżynier Systemów IT, zajmuje się projektowaniem systemów i wsparciem podczas ich wdrażania. Na co dzień rozwija Bazę Wiedzy UniCloud.