19.04.2022
Udostępnij:Udostępnij na Twitterze

Dobre praktyki współpracy Dev - SysOps

Projektowanie i wdrażanie infrastruktury sklepów internetowych na Magento wymaga dobrej współpracy na linii DevOps (osoby odpowiedzialnej za rozwój oprogramowania) - SysOps (operatora systemu zarządzającego infrastrukturą). Zastanawiasz się, jak wyglądają poszczególne etapy tych procesów? Jakie są dobre praktyki podczas wykonywania zleconych czynności? Jak powinna przebiegać współpraca między obiema stronami?

Na podstawie naszego wieloletniego doświadczenia przygotowaliśmy kilka zasad z zakresu dobrych praktyk SysOps, których warto się trzymać, współpracując na linii hosting dedykowany – software house w procesie przygotowania infrastruktury dla eCommerce na Magento. Czytaj dalej, by je poznać, a następnie zastosować w swojej codziennej pracy!

Zasada 1: Dokładne i szczegółowe zbieranie wymagań

Dobre praktyki Magento? Na pierwszym miejscu - dokumentacja! Działasz na sklepie aktualnie funkcjonującym u innego hostingodawcy? Nieocenioną pomoc w przygotowaniu infrastruktury do migracji Magento na inny hosting stanowi dokumentacja dotycząca obecnego środowiska. Rzetelnie przygotowana i na bieżąco aktualizowana ułatwia zdecydowanie wdrożenie się w specyfikę danego projektu. Pozwala zrozumieć zależności między poszczególnymi usługami oraz rysuje schemat komunikowania się usług między sobą. Co więcej, wskazuje na potencjalne wąskie gardła, którymi można zarządzić już na etapie projektowania nowego środowiska.

Dobrze przygotowana dokumentacja zawiera informacje dot. m.in. zasobów, które są przydzielone do poszczególnych maszyn wirtualnych, wersji usług, jakie się na nich znajdują oraz samej aplikacji (czego wymaga i w jaki sposób działa). Przydatna jest również informacja dotycząca specyfiki ruchu - czy jest równomiernie rozłożony w skali miesiąca/roku, czy może zdarzają się peaki sprzedażowe (promocje, specjalne akcje itp.). Takie dane pozwalają lepiej zaplanować finalny kształt infrastruktury oraz jej zdolność do skalowania, a tym samym - wybrać do tego celu najbardziej odpowiednie rozwiązania technologiczne.

Znacznym ułatwieniem w procesie przygotowywania infrastruktury jest również uzyskanie dostępów SSH (secure shell) do obecnej infrastruktury wraz z odpowiednimi uprawnieniami (sudo/root). Takie działanie pozwala na szczegółową analizę wszystkich procesów, zależności i konfiguracji. W konsekwencji - znacząco poprawia całe “flow” procesu szeroko pojętej migracji i planowania. W sytuacji idealnej posiadamy, oprócz dostępów, także wspomnianą wyżej dokumentację. Przy jej braku analiza środowiska będzie o wiele bardziej czasochłonna i może okazać się mniej dokładna (pominięcie detali), szczególnie w przypadku niestandardowych konfiguracji i rozbudowanych środowisk.

Trzecim, niezwykle przydatnym elementem układanki w procesie projektowania środowiska jest dostęp do danych statystycznych obecnie istniejącego sklepu internetowego na Magento lub prognoz dotyczących ruchu (w przypadku nowego wdrożenia). Dane obejmują:

  • SKU,
  • Page Views (PV) w ujęciu dziennym i miesięcznym,
  • Unique Users (UU) w ujęciu dziennym i miesięcznym,
  • ilość transakcji w ujęciu dziennym i miesięcznym,
  • rozmiar bazy danych,
  • rozmiar mediów osadzonych w sklepie,
  • zewnętrzne integracje (np. ERP),
  • peaki sprzedażowe (ich wielkość w stosunku do normalnego ruchu oraz informacje, jak często występują),
  • częstotliwość planowanych akcji marketingowych.

Należy pamiętać, że środowisko zaprojektowane na podstawie wyłącznie wyżej wymienionych danych statystycznych i prognoz (bez dokumentacji i dostępów SSH), może być niedoszacowane lub przeszacowane pod kątem zapotrzebowania na moc obliczeniową. Agencja programistyczna powinna również dostarczyć informacje na temat stosu technologicznego, na którym planuje oprzeć swoją aplikację. Wówczas migracja Magento na inny hosting w ramach współpracy Dev-Ops zostanie przeprowadzona w najlepszy możliwy sposób.

Zasada 2: Trzy etapy ścieżki wdrożeniowej w Magento

Po zebraniu możliwie jak największej ilości informacji na temat projektu następuje etap przygotowania środowiska (realizowany zgodnie z wymaganiami i w ścisłym oparciu o nie). Jeśli na tym etapie pojawiają się niewiadome, należy je na bieżąco konsultować z programistami. Sam proces przygotowywania środowiska powinien być możliwie jak najbardziej zautomatyzowany – w sposób pozwalający uniknąć wszelkiego rodzaju błędów natury ludzkiej - oraz realizowany przy wsparciu popularnych narzędzi (takich jak Jenkins, Ansible czy Puppet).

Po przygotowaniu środowiska następuje jego przekazanie do developerów wraz z dokumentacją oraz komentarzami. Tworzone są również dostępy SSH dla maszyn aplikacyjnych. Okres po oddaniu środowiska to czas na ewentualne poprawki, “tuning” konfiguracji oraz wdrożenie dodatkowych funkcjonalności. Hostingodawca powinien dołożyć wszelkich starań, by środowiska zostały przygotowane w taki sposób, aby ich późniejsza rozbudowa była po prostu formalnością. Innymi słowy -, staramy się, by były możliwie jak najłatwiej skalowalne, elastyczne pod kątem zmian i przemyślane.

Po odbiorze środowiska przez agencję programistyczną i wejściu w fazę developerską, hostingodawca powinien utrzymywać czujność, monitorować maszyny oraz odznaczać się gotowością w ramach zadaniowego trybu współpracy z agencją. Pomocnym narzędziem w dogrywaniu fixów jest bezpośredni kontakt SysOps z programistami przez dedykowany czat, który pozwala na bieżąco odpowiadać na pytania dotyczące infrastruktury oraz zadania typu quick-win. Bardziej zaawansowane kwestie powinny być realizowane w systemie ticketowym - przez wzgląd na konieczność ścisłego dokumentowania poszczególnych etapów i dokonywanych zmian. Połączenie tych dwóch kanałów komunikacji minimalizuje czas reakcji, zwiększa responsywność i przyspiesza realizację zadań po obu stronach.

Zasada 3: Testy, czujność, responsywność

Przed startem produkcyjnym zalecane jest przeprowadzenie tzw. stress testów, które pozwolą oszacować możliwości infrastruktury - czyli sprawdzić, jak duży, jednoczesny ruch jest w stanie obsłużyć oraz wychwycić ewentualne wąskie gardła. Do tego celu konieczne jest wybranie odpowiedniego oprogramowania (np. Locust, JMeter, Gatling) oraz przygotowanie scenariusza testów przez agencję programistyczną. Należy określić również, które elementy witryny zbudowanej na Magento będą testowane (np. koszyk, wyszukiwarka, kategorie produktów). Same testy przeprowadzane są w ustalonym terminie oraz w bezpośrednim kontakcie, prowadzonym najczęściej za pośrednictwem wewnętrznego komunikatora.

Wyniki testów obciążeniowych warunkują dalsze działania. Jeśli uzyskane wyniki są satysfakcjonujące, a żadne wąskie gardła w infrastrukturze nie zostały wykryte, można przystąpić do ustalenia terminu uruchomienia sklepu zbudowanego na Magento. W przeciwnym wypadku konieczne są dalsze testy i prace optymalizacyjne.

Po starcie produkcyjnym ma miejsce wzmożona obserwacja stanu infrastruktury. Monitoringowi podlegają m.in. obciążenie i wydajność maszyn fizycznych oraz wirtualnych, utylizacja sieci, a także zachowanie poszczególnych usług.

W momencie uruchamiania środowiska produkcyjnego niezbędne jest wsparcie dedykowanego administratora lub zespołu administratorów będących w trybie „stand-by” podczas otwarcia sklepu na ruch z Internetu. Takie działanie ma na celu zapewnić developerom komfort pracy, zaplecze wiedzy z zakresu SysOps i wsparcie DevOps.

Zasada 4: Ciągła gotowość i opieka nad infrastrukturą Magento

Dobrą praktyką jest również to, by każdy nowo wdrożony projekt na Magento posiadał swój dedykowany zespół szybkiego wsparcia - managera projektu oraz prowadzącą osobę techniczną, a także drugą linię wsparcia technicznego. Postępując w taki sposób, można w dowolnej chwili wywołać zespół do pracy nad rozwiązaniem konkretnych problemów, a w razie potrzeby - wykonać pilne poprawki konfiguracyjne w krótkim czasie.

Wdrożenia Magento a współpraca między Dev a Ops - teraz o wiele prostsza

Proces projektowania i wdrożenia wydajnej infrastruktury dla Magento wymaga odpowiedniej współpracy na linii SysOps, DevOps i Developer. Sumienne zebranie wymagań, analiza, sprawna komunikacja oraz testowanie – wszystkie te elementy prowadzą do minimalizacji ryzyk przy uruchomieniu, zmniejszenia poziomu stresu w zespołach, a także, co najważniejsze, sukcesu klienta końcowego i uruchomienia nowego eCommerce na Magento.

Autorzy:

  • Paweł Kędziora, Customer Project Manager
  • Dominik Błaszczyk, Systems Engineer
Centuria Sp. z o.o..

Kontakt

Genialne pomysły nie mogą czekać!

Wyślij wiadomość