17 września 2024

Platforma Big Data - dane i integracje

Zbudowaliśmy platformę big data – korzystając z narzędzi open source, pozwoliliśmy „rozmawiać” systemom między sobą (często też między wewnętrznymi mikroserwisami dużych systemów) poprzez Apache Kafka. To serce naszej platformy, wokół którego zbudowaliśmy szereg integracji i narzędzi

Autor

Łukasz Prokulski

Dlaczego to robimy?  

PZU jako największa grupa ubezpieczeniowa (i nie tylko) w Europie Środkowej posiada ogromną ilość danych.  Wiemy, że po raz kolejny nawiązujemy do naszej wielkości, ale wszystko, co dzieje u nas, bierze początek ze skali naszych operacji. Tak samo jest z systemami i mikroserwisami tworzącymi sieć połączeńpozwalających na obsługę naszych Klientów i ich spraw. Jak opanować cały ekosystem tak, aby każdy (system) wiedział w czasie rzeczywistym o wszystkim czego potrzebuje, a jednocześnie informował innych? 

Zbudowaliśmy platformę big data – korzystając z narzędzi open source, pozwoliliśmy „rozmawiać” systemom między sobą (często też między wewnętrznymi mikroserwisami dużych systemów) poprzez Apache Kafka. To serce naszej platformy, wokół którego zbudowaliśmy szereg integracji i narzędzi – gotowych (Hadoop, Flink, Spark), jak i własnych (dedykowane aplikacje serwujące usługi via REST API, przeliczające dane w Sparku czy też agregujące je w czasie rzeczywistym we Flinku). Kafką komunikuje się kilkadziesiąt systemów (około 330 konsumentów komunikatów), wykorzystując ponad 460 topików (którymi płynie średnio pół tysiąca komunikatów na sekundę). Big data, big problem? Nie u nas. 


Jak do tego podeszliśmy?  

Może kilka przykładów? Wiadomości, które czytasz w aplikacji mobilnej lub na mojePZU są rozproszone: wiele systemów zleca przygotowanie komunikacji, gotowe wiadomości spływają Kafką w jedno miejsce, a dopiero z tego miejsca korzysta mojePZU i aplikacja mobilna. Obecnie tych wiadomości jest ponad 15 mln. 

  • Informacje o produktach, ofertach, likwidowanych szkodach przepływają w różnych kierunkach, ale w ramach platformy big data gromadzone są w klastrach Hadoop. Pozwala to na ich łączenie, przeszukiwanie, przygotowywanie raportów operacyjnych i prezentacji na dashboardach w czasie rzeczywistym. Na przykład zmiany wprowadzane w JIRA (z najprostszych: ilość planowanej i wykonanej pracy na poszczególne projekty czy zadania oraz terminy realizacji zadań) widziane na kokpicie pozwalają ułożyć w road mapę współpracę wielu zespołów w projektach, w których mamy do czynienia z zależnościami w pracy poszczególnych zespołów (kolejność realizacji zadań).  Podobnie jest ze wspomnianym procesem komunikacji klientów – agregujemy wiadomości tak, aby nie spamować naszych klientów i wysyłać tylko pigułkę informacyjną w danym procesie. Albo sprawdzamy czy nie należy ważnej komunikacji powtórzyć, bo być może Klient ją przeoczył i nie skorzystał z szybkiej ścieżki likwidacji swojej szkody. Jeśli nasz Klient nie ukończył naszego procesu, to sprawdzamy czy nie jest on za trudny już błędny – lubimy mieć pewność od A do XYZ.  
     
  • Wiele elementów platformy sprowadza się do pobrania komunikatów z Kafki i przekazania ich dalej (z modyfikacją lub bez), na przykład do usług RESTowych. Odpowiedź też wraca na Kafkę i “cały świat PZU” może z niej skorzystać. Typowy przykład takiego rozwiązania to wsparcie dla modeli ML/AI (przeczytasz o tym w tekście o AI w branży ubezpieczeniowej). Przy okazji – kolejne wersje modeli trzymamy w ramach zasobów big data i korzystamy z nich poprzez MLFlow. 
     
  • Tymi sposobami obserwujemy nie tylko dane biznesowe, ale także informacje techniczne służące telemetrii. Widzimy obciążenie poszczególnych systemów, chcemy w przyszłości użyć ich do skalowania infrastruktury i dzięki temu zadbać o ślad węglowy (przeczytaj o Green IT PZU).  
     
  • Ponieważ platforma wspiera działania związane z ML/AI wykorzystujemy ją też do zbierania tego co przez modele ML/AI przechodzi. Daje to możliwość monitorowania zarówno ewentualnego dryftu danych wejściowych (i pozwala na określenie, kiedy należy ponownie wytrenować modele) oraz wyjściowych, co sprowadza się do monitoringu metryk skuteczności modeli. 
     

Jakie technologie za tym stoją?  

Podstawą integracyjnej części platformy jest Apache Kafka, rozpięta na kilku brokerach, obsługująca łącznie niemalże tysiąc topików, blisko setki komunikatów na sekundę. Dedykowane aplikacje (w Javie, Pythonie i Flinku) osadzone są na Kubernetesie (przeczytaj tekst o naszej platformie Sahul), raporty wyliczane są w Sparku, a do przygotowania dashboardów używamy Apache SuperSet oraz Metabase. Całością procesów kieruje Apache Airflow, za sporą część odpowiadają przepływy zbudowane w Apache NiFi. W ramach kolejnych projektów wdrażamy dodatkowe rozwiązania, na przykład Trino czy MongoDB

Liczby tego projektu 

  • 500 topików kafkowych, którymi komunikuje się ze sobą około 350 konsumentów  
  • 550 komunikatów przepływających na Kafce na sekundę 
  • 15 mln wiadomości w skrzynkach odbiorczych użytkowników serwisu i aplikacji mobilnej mojePZU 
Zamknij