Wirtualny ocean - automatyczne zarządzanie i dostarczanie usług w wielkoskalowej i złożonej infrastrukturze PZU Cloud
Autor
Krzysztof Doliński
Autor
Piotr Szczepocki
Grupa PZU to największa w Europie Środkowej i Wschodniej firma ubezpieczeniowa, oprócz polis życiowych czy majątkowych oferujemy również produkty finansowe i zdrowotne. To setki usług cyfrowych udostępnianych naszym Klientom i pracownikom, które znajdują się na tysiącach serwerów. Praca w takiej skali to jak zajmowanie się oceanem danych i usług. Nasze aplikacje działają na infrastrukturze zwirtualizowanej w 90% - zarówno w modelu tradycyjnym jak i w oparciu o mikroserwisy.
Ponownie wróćmy do skali. Nasz pion IT liczy prawie tysiąc osób, w związku z tym efektywność jest jednym z podstawowych mierników naszych działań. Jej zwiększenie wiąże się z dostępnością szybkich i prostych procesów wspierających codzienną pracę – takie zadanie postawiono przed zespołem odpowiedzialnym za automatyzację dostarczania infrastruktury on-premise. Naszymi Klientami są wewnętrzne zespoły developerów, menadżerów projektów oraz administratorów aplikacji, dla time to market to kluczowy wskaźnik. Ale spójrzmy na to z kolejnej perspektywy: dla developerów ważny jest szybki proces otrzymywania infrastruktury niezbędnej do rozpoczęcia pracy nad projektami. Szybkość procesu zwiększa ich produktywność i skraca czas realizacji zadań – podejście jest proste, ma być tak szybko jak w chmurze publicznej. Maszyny wirtualne są niezbędne do testowania i debugowania kodu w środowisku zbliżonym do produkcyjnego. Dzięki temu deweloperzy mogą szybciej wykrywać i naprawiać błędy, poprawiając jakość i dostarczając jakościowe rozwiązania dla naszego biznesu. Szybkie powoływanie nowych elementów infrastruktury jest istotnym wsparciem dla różnych operacji administracyjnych i utrzymaniowych np. Testy Disaster Recovery, migracje czy obsługa długu technologicznego. Do szybkiego dostarczania infrastruktury konieczne było stworzenie mechanizmów do automatycznego tworzenia wirtualnych maszynowych bytów po to, aby każdy Klient mógł samodzielne powołać maszynę wirtualną serwer wirtualny w prosty i szybki sposób.
Jak do tego podeszliśmy?
Sprostanie dynamicznym wymogom biznesu jest możliwe dzięki stałemu rozwojowi naszej autorskiej chmury prywatnej. Dzięki temu rozwiązaniu dostarczamyskalowalność, wydajność, dostępność i bezpieczeństwo. Postawiliśmy na automatyzację, standaryzację i rozwój usług infrastruktury wytwarzanej w kodzie. Pierwsze podejście do automatyzacji dostarczania infrastruktury odbyło się na bazie narzędzi, które mieliśmy na pokładzie i dobrze znaliśmy zarówno ich funkcjonalności, jak i możliwości. W naszym systemie zgłoszeniowym na dedykowanych formularzach RFC, interesariusze mogli wypełnić parametry hosta i dostać gotowy produkt już w kilka minut. Podstawowym założeniem było udostępnienie takich produktów jak serwery z RHEL i WINDOWS, bazy danych MSSQL, PostgreSQL, serwery aplikacyjne Apache, TCserver, Tomcat, IIS. Technologia i narzędzia użyte w pierwszej wersji miały swoje problemy i ograniczenia, więc została podjęta decyzję o rozpoczęciu prac nad kolejną wersją automatyzacji z użyciem nowoczesnych technologii i narzędzi. Głównym założeniem dla wersji 2.0 było opisanie infrastruktury w kodzie (IaC). Punktem wejścia do zamówienia infrastruktury dla Klientów jest autorska platforma WWW Self- Services, lub aplikacyjny interfejs programistyczny REST API. W drugim podejściu zautomatyzowaliśmy dostarczanie takich usług jak: serwery Linux RedHat, VM pod TCServer, TCServer, PostgreSQL - singleNode. Aktualnie działamy w obydwu podejściach, jednocześnie cały czas pracując nad przeniesieniem wszystkich usług na nowszy stos technologiczny. Równolegle dostarczamy nowe usługi w nowym podejściu w zależności od potrzeb Klientów.
Ponieważ mamy świadomość społecznej odpowiedzialności za nasze działania wdrażamy procesy ograniczające ślad węglowy. Dostosowujemy zasoby do realnych wymagań, efektywnie wykorzystujemy infrastrukturę dbając o gęstość wirtualizacji, stosujemy najnowocześniejszy sprzęt wspierający rozwiązania Green IT oraz stale mierzymy naszą dojrzałość w tym obszarze.
Jakie technologie za tym stoją?
- Wykorzystaliśmy szereg technologii dostarczania infrastruktury, które pozwalają nam na sprawne i efektywne działania. Głównym orkiestratorem procesu automatycznego dostarczania infrastruktury jest platforma Ansible/AWX. Rozwiązanie to działa na klastrze Kubernetesowym na autorskiej platformie konteneryzacji Sahul.
- Integracja rozwiązania do wirtualizacji z orkiestratorem mikroserwisów pozwala nam na to, aby uruchamianie nowych klastrów Kubernetes odbywało się w ciągu kilkunastu minut.
- Opracowaliśmy własny miks autorskich i komercyjnych rozwiązań automatycznie wdrażających poprawki bezpieczeństwa na naszych systemach operacyjnych. Zadbaliśmy również o rozwój platformy do Self-Service oferując usługi poprzez API. Jak zapewniamy, że nasze systemy działają bezawaryjnie? Nie czekamy, aż coś zadzieje się samo. Stały monitoring pojemności i dostępności infrastruktury to dla nas podstawa.Korzystamy w nim m.in. własnych dashboardów w Grafanie i korelacji rozproszonych logów stosujemy LogInsight. Szeroko używamy języki programowania takie jak Python i PowerShell do tworzenia skryptów, modułów i plugin'ów dla Ansible.
Liczby tego projektu
- z kilku dni do kilkunastu minut skróciliśmy czas dostarczania Maszyn Wirtualnych
- ponad 2 tysiące powołanych Maszyn Wirtualnych w PZU Cloud
- 5 500 utrzymywanych serwerów
- 29 000 wirtualnych procesorów
- 300 nowych serwerów rocznie
Zapoznaj się z pozostałymi case studies z obszaru PZU Cloud: