Od infrastruktury monolitycznej do rozproszonej platformy: Webmecanik zwiększa skalowalność i wydajność dzięki Kubernetesowi
OVHcloud i Webmecanik


+ 2 000 klientów biznesowych

+ 8 000 użytkowników

+ 250 milionów e-maili wysyłanych miesięcznie w ramach kampanii targetowanych
W skrócie
Webmecanik to innowacyjny producent oprogramowanie specjalizujący się w automatyzacji marketingu i systemach CRM. Oferuje wydajne i intuicyjne narzędzia, które umożliwiają firmom skuteczne zarządzanie kampaniami marketingowymi oraz dostosowanie całego procesu zakupowego do potrzeb klientów - nawet przy dużej liczbie odbiorców.
Dzięki silnemu zaangażowaniu w CSR, Webmecanik pozycjonuje się jako europejski lider w dziedzinie automatyzacji marketingu, wykorzystując technologię do wspierania ludzi i zrównoważonego rozwoju. Jako aktywny uczestnik społeczności open source, Webmecanik wnosi też istotny wkład w rozwój projektu Mautic.
Wyzwanie
Celem było zapewnienie wysokiej dostępności usług zgodnie z najlepszymi praktykami. Konieczne było przy tym utrzymanie wysokiej wydajności podczas uruchamiania środowisk dla klientów korporacyjnych, którzy przetwarzają miliony transakcji dziennie, takich jak wysyłka e-maili, wizyty na stronie internetowej czy wyświetlanie formularzy. Wszystkie te działania były początkowo czasochłonne i obciążające, głównie ze względu na wykorzystanie fizycznych serwerów.
Aby zagwarantować stały dostęp i ciągłość działania w tym modelu, zasoby musiały być przydzielane indywidualnie, klient po kliencie. Należało przy tym uwzględniać szczytowe obciążenia oraz sezonowość, co sprawiało, że cały proces był mało opłacalny i mało efektywny.
Kolejnym wyzwaniem była konieczność przygotowania infrastruktury przed jej przekazaniem klientowi. Obsługa serwerów Bare Metal wymagała co najmniej podstawowej konfiguracji - przygotowania systemu operacyjnego, sieci publicznej oraz prywatnej sieci vRack. Etap przygotowania fizycznego serwera przed uruchomieniem środowiska produkcyjnego dla klienta końcowego był często czasochłonny.
Rozwiązanie

Infrastruktura została migrowana do Kubernetesa - zarówno ze względu na łatwość skalowania i wdrażania środowisk dla nowych klientów, jak i możliwość przenoszenia całej architektury do różnych lokalizacji. Z technicznego punktu widzenia oznaczało to odejście od architektury monolitycznej na rzecz modelu rozproszonego. Architekturę opartą na fizycznych serwerach dedykowanych zastąpiono rozwiązaniami zwirtualizowanymi i kontenerami, co pozwoliło na pełną automatyzację środowiska.
Dzięki Kubernetesowi można wdrażać tę samą infrastrukturę i usługi biznesowe w ramach klastra - z wykorzystaniem tzw. blueprintów, czyli standaryzowanych plików konfiguracyjnych opisujących docelową architekturę - niezależnie od lokalizacji geograficznej czy dostawcy. niezależnie od lokalizacji geograficznej czy dostawcy.
Refaktoryzacja przeprowadzona w 2022 roku otworzyła drogę do nowych stref geograficznych i ekspansji na nowe rynki (w Kanadzie, Stanach Zjednoczonych oraz regionie Azja-Pacyfik). Jednocześnie umożliwiła znacznie lepszą kontrolę nad komponentami w momentach intensywnego wzrostu obciążenia. Warstwa danych, przede wszystkim bazy danych, nadal działa na serwerach dedykowanych. Aplikacja uruchamiana w środowisku Kubernetes została zaprojektowana zgodnie z zasadą stateless, co oznacza, że dane produkcyjne nie są przechowywane w klastrze. Rozwiązanie to ma na celu zapewnienie wysokiej wydajności oraz zgodności z dobrymi praktykami i założeniami architektury cloud native.
Taki podział pozwala na wprowadzanie zmian lokalnie (np. jedna osoba zostaje przypisana do konkretnego namespace), bez wpływu na całą platformę. Dzięki temu każdy klient może korzystać z indywidualnie dopasowanego środowiska.
Kubernetes pozwala nam zarządzać ogromną liczbą podów i ich dystrybucją w klastrach.
David Coutelle, dyrektor techniczny Webmecanik
Platforma Webmecanik jest elastyczna i bezpieczna dzięki izolacji sieciowej vRack. Infrastruktura oparta na rozwiązaniu Managed Kubernetes Service może działać w pełni prywatnie, bez dostępu z Internetu, co pozwala na bezpieczną wymianę danych między aplikacjami. Dotyczy to również serwerów dedykowanych.
Korzyści
Przeniesienie infrastruktury do środowiska Kubernetes przyniosło szereg korzyści:
- Proces uruchamiania środowisk dla klientów, niezależnie od ich wielkości i lokalizacji, przebiega znacznie sprawniej.
- Zespoły developerskie mogą skupić się na działaniach o większej wartości dodanej. Są one również szybsze dzięki łatwemu wdrażaniu środowisk preprodukcyjnych, co pozwala sprawniej wykrywać i usuwać błędy.
- Przejrzysty model rozliczeń, bez ukrytych kosztów, ułatwia planowanie budżetu i przewidywanie wydatków, zarówno bieżących, jak i przyszłych.
Dzięki Kubernetesowi możliwe jest dynamiczne zwiększanie liczby kontenerów i skalowanie tylko tych części aplikacji, które tego wymagają. Umożliwia to budowę architektury mikroserwisów i wykorzystanie pełnego potencjału technologii. Dużym atutem jest również mechanizm samonaprawy - restartowanie nieprawidłowo działających elementów, np. podów, pozwala zespołom operacyjnym utrzymać wysoką dostępność usług.
To samo można osiągnąć dzięki serwerom dedykowanym, ale jest to o wiele bardziej skomplikowane z technicznego punktu widzenia. Kubernetes zapewnia elastyczność, szybsze wdrażanie oraz możliwość tymczasowego skalowania zasobów.
Dziś, dzięki Kubernetesowi, obsługujemy klientów wysyłających nawet 15 milionów e-maili dziennie i monitorujemy skuteczność tych kampanii. Dzięki połączeniu Argo CD z Kubernetesem byliśmy w stanie stworzyć inteligentną i skalowalną strategię aktualizacji aplikacji w ramach naszej platformy.
David Coutelle, dyrektor techniczny Webmecanik