Farmona

Infrastruktura DevOps dla platformy e-commerce

O projekcie

Projekt obejmował przygotowanie oraz utrzymanie środowiska produkcyjnego dla platformy e-commerce opartej na Magento, obsługującej kilkanaście sklepów internetowych.

Kluczowym elementem było zaprojektowanie infrastruktury umożliwiającej stabilne działanie systemu oraz wdrożenie zautomatyzowanego procesu wdrożeń, który minimalizuje ryzyko przestojów podczas publikacji zmian developerskich.

Rozwiązanie zostało oparte na środowisku kontenerowym Docker oraz zautomatyzowanym pipeline CI/CD, co umożliwia szybkie i bezpieczne wdrażanie nowych wersji aplikacji.

Cel DevOps

Głównym celem działań DevOps było uruchomienie stabilnego środowiska produkcyjnego dla aplikacji Magento oraz wdrożenie zautomatyzowanego procesu wdrożeń.

Rozwiązanie miało zapewnić:

  • minimalizację przestojów podczas publikacji zmian
  • możliwość bezpiecznego wdrażania nowych wersji aplikacji
  • wysoką dostępność platformy e-commerce
  • stabilną obsługę rosnącego ruchu użytkowników
Wyzwania projektowe

Największym wyzwaniem było wdrożenie strategii blue-green deployment w środowisku Docker dla platformy obsługującej wiele sklepów internetowych. W standardowym procesie aktualizacji systemu downtime mógł wynosić nawet około 40 minut. Dzięki wdrożeniu strategii blue-green deployment udało się wyeliminować długie przestoje oraz zapewnić płynne przełączanie ruchu pomiędzy wersjami aplikacji.

CI/CD i proces wdrożeń

Proces CI/CD został zautomatyzowany przy użyciu Jenkins.

Pipeline obejmuje:

  • budowanie obrazów aplikacji w technologii Docker
  • publikację obrazów do prywatnego rejestru Docker
  • wdrażanie nowych wersji aplikacji w środowisku produkcyjnym

W celu ograniczenia przestojów zastosowano strategię blue-green deployment.

Nowa wersja aplikacji uruchamiana jest równolegle z aktualnie działającą instancją systemu, a przełączenie ruchu następuje dopiero po pełnej weryfikacji nowego środowiska.

Takie podejście pozwala:

  • zminimalizować ryzyko wdrożeniowe
  • ograniczyć downtime do minimum
  • szybko przywrócić poprzednią wersję systemu w razie problemów

Architektura infrastruktury i systemu

Architektura infrastruktury

W projekcie wykorzystano serwer dedykowany zlokalizowany w polskiej serwerowni, który był już częścią infrastruktury klienta.

Takie rozwiązanie pozwoliło:

 

  • spełnić wymagania wydajnościowe platformy Magento
  • dostosować infrastrukturę do prognozowanego poziomu ruchu
  • zoptymalizować koszty poprzez wykorzystanie istniejących zasobów

 

Środowisko zostało oparte na kontenerach Docker zarządzanych przy użyciu Docker Compose.

Architektura systemu

System składa się z kilku kluczowych komponentów działających w środowisku kontenerowym:

 

  • aplikacja Magento (PHP)
  • baza danych MySQL
  • silnik wyszukiwania Elasticsearch
  • warstwa cache Redis
  • serwer Nginx obsługujący pliki statyczne i ruch HTTP

Każdy z komponentów działa jako osobny kontener, a komunikacja między nimi odbywa się w ramach wewnętrznej sieci Docker.

Dostęp zewnętrzny do systemu realizowany jest przez warstwę reverse proxy opartą na Nginx, która odpowiada za obsługę ruchu użytkowników oraz przekierowanie zapytań do odpowiednich usług aplikacyjnych.

Monitoring, bezpieczeństwo i utrzymanie

Wydajność i bezpieczeństwo środowiska są zapewniane poprzez ciągły monitoring systemu oraz bieżącą analizę parametrów infrastruktury.

Do monitorowania wykorzystano narzędzie Netdata, które umożliwia śledzenie wydajności serwerów i aplikacji w czasie rzeczywistym. W przypadku wykrycia problemów system automatycznie wysyła powiadomienia e-mail.

Regularnie wykonywane są również:

  • kopie zapasowe baz danych
  • backupy plików statycznych i plików krytycznych aplikacji

Kopie zapasowe są synchronizowane z serwerem w innym centrum danych, co umożliwia szybkie przywrócenie systemu w przypadku awarii.

 

Porozmawiajmy o Twoim projekcie

Opisz swoje potrzeby, a my wrócimy z propozycją dopasowaną do Twojego biznesu.

Porozmawiajmy