/ Case study /

Chmurowa platforma analityczna

Od dni do minut: Budowa chmurowej platformy analitycznej, która przyspieszyła obliczenia w badaniach rynkowych o ponad 98%

  • $45M

    Rocznego przychodu wspieranego przez infrastrukturę analityczną napędzaną przez platformę

  • 98%

    Skrócenie czasu obliczeń — z godzin lub dni na lokalnych komputerach do mniej niż dziesięciu minut w chmurze

  • <10 min

    Czas przetwarzania większości zadań analitycznych dziś, zamiast nocnych i wielodniowych obliczeń na laptopach analityków

/ 01 / Podsumowanie

Case study w pigułce

Firma Primotly zbudowała chmurową platformę analityczną, która całkowicie zmieniła sposób, w jaki zespoły data science globalnej agencji badawczej uruchamiają modele statystyczne. Przed powstaniem platformy analitycy uruchamiali złożone modele rynkowe lokalnie na własnych komputerach za pomocą Jupyter Notebooks – proces ten zajmował od kilku godzin do nawet kilku dni na jedną analizę. Primotly stworzyło nową platformę od zera, projektując architekturę chmurową, backend, frontend oraz dedykowany silnik do zrównoleglania obliczeń. W toku rozwoju systemu czas przetwarzania danych był sukcesywnie skracany – obecnie większość zadań analitycznych kończy się w mniej niż 10 minut. Platforma wspiera generowanie około 45 milionów dolarów rocznego przychodu i szybko się rozwija wraz z dodawaniem nowych modułów. Rola Primotly polegała wyłącznie na inżynierii oprogramowania: algorytmy statystyczne są opracowywane przez wewnętrzny zespół data science klienta. Primotly zbudowało infrastrukturę, warstwę orkiestracji, backend i frontend, dzięki którym algorytmy te stały się szybkie, łatwo dostępne i gotowe do wdrożenia produkcyjnego.

/ 02 / O kliencie

O kliencie

Klient to globalne przedsiębiorstwo zajmujące się badaniami rynku, posiadające własne, wewnętrzne zespoły data science, które tworzą i uruchamiają zaawansowane modele statystyczne na rzecz partnerów korporacyjnych. Modele te analizują dane z ankiet, poziom ekspozycji w mediach, wyniki sprzedaży oraz inne zmienne, aby wyciągać kluczowe wnioski na temat kondycji marek, efektywności działań mediowych i panujących trendów rynkowych. (Wszystkie szczegóły zostały zanonimizowane ze względu na NDA.)

Usługi
  • Rozszerzenie zespołu (Team Extension)
  • Inżynieria chmurowa (Cloud Engineering)
  • Backend Development (Python)
  • Frontend Development
  • Inżynieria danych (Data Engineering)
Branża

Badania rynkowe / Data Science

Model współpracy

Team Extension – długoterminowe, dedykowane partnerstwo

Skład zespołu

2 osoby (1 Backend / Data Engineer, 1 Frontend Developer)

/ 03 / Wyzwanie

Wyzwanie: dział data science działający na laptopach

Zespoły data science klienta opracowały zaawansowany zestaw modeli analitycznych. Problemem nie była jakość samych modeli, ale sposób, w jaki były one dotychczas uruchamiane. Analityka napędzająca kluczowy strumień przychodów była ograniczana fizyczną wydajnością laptopów poszczególnych analityków.

  • 01/

    Wyłącznie lokalne wykonywanie kodu

    Wszystkie modele działały lokalnie w środowiskach Jupyter Notebooks na komputerach poszczególnych analityków. Brakowało wspólnej infrastruktury, interfejsu webowego i możliwości centralnego zarządzania zadaniami.

  • 02/

    Wielodniowy czas przetwarzania

    Złożone analizy zajmowały od kilku godzin do kilku dni. Analitycy musieli zostawiać włączone komputery na całą noc lub na weekendy, aby dokończyć pojedyncze zadanie badawcze.

  • 03/

    Brak zrównoleglania procesów

    Wykonywanie modeli odbywało się całkowicie sekwencyjnie. Każda kombinacja parametrów, każdy segment rynku i każda pętla analityczna były procesowane jedno po drugim. Brakowało mechanizmu dystrybucji pracy między wolne zasoby obliczeniowe.

  • 04/

    Ręczna organizacja pracy

    Pliki wejściowe musiały być ręcznie umieszczane w odpowiednich katalogach lokalnych. Wyniki były zapisywane w plikach na dyskach twardych, które następnie należało samodzielnie zebrać, sformatować i udostępnić dalej. Cały proces – od konfiguracji po raport wynikowy – wymagał dużych nakładów pracy manualnej.

  • 05/

    Brak możliwości skalowania

    Wraz ze wzrostem zapotrzebowania na analizy, system stawał się całkowicie niewydolny. Każda nowa analiza oznaczała konieczność zaangażowania kolejnego pracownika uruchamiającego kolejny notebook na osobnym komputerze.

/ 04 / Rozwiązanie Primotly

Rozwiązanie Primotly: infrastruktura chmurowa, zrównoleglenie i produkcyjny interfejs

Zadanie postawione przed Primotly było konkretne: biblioteki Python stworzone przez zespół data science muszą stać się szybkie, skalowalne oraz powszechnie dostępne dla pracowników. Logika statystyczna pozostała po stronie klienta – Primotly odpowiadało za całą resztę.

Ten jasny podział odpowiedzialności stał się fundamentem sukcesu projektu. Zespół data science klienta rozwija algorytmy statystyczne i dostarcza je jako wersjonowane biblioteki Pythona (jedna biblioteka na dedykowany moduł analityczny), odpowiadając za poprawność matematyczną wyników. Primotly buduje infrastrukturę chmurową, warstwę orkiestracji, backendowe API, interfejs frontendowy oraz mechanizmy zrównoleglania obliczeń, odpowiadając za wydajność, niezawodność systemu i doświadczenie użytkownika (UX).

Kluczowe funkcjonalności

  • Media to Brand (Media a Marka)

    Analizuje relację między ekspozycją w mediach (reklama, PR, działania digital) a wskaźnikami postrzegania marki. Pozwala analitykom modelować, jak inwestycje w różne kanały mediowe wpływają na kluczowe wskaźniki efektywności (KPI) marki na poszczególnych rynkach.

  • Brand to Sales (Marka a Sprzedaż)

    Modeluje zależność między wskaźnikami kondycji marki (brand equity) a wynikami sprzedaży. Pomaga klientom zrozumieć, które atrybuty marki najsilniej przekładają się na realne efekty komercyjne.

  • Trend Analytics (Analityka Trendów)

    Jedno- i wielowymiarowa analiza trendów na danych z kolejnych fal badawczych. Identyfikuje wzorce, prognozuje trajektorie i wykrywa anomalie w szeregach czasowych.

  • Outlier Management (Zarządzanie Wartościami Skrajnymi)

    Moduł umożliwiający analitykom przeglądanie i korygowanie anomalii w danych (wartości odstających) przed uruchomieniem ostatecznej analizy. Wartości skrajne są wykrywane automatycznie, a analitycy mogą je zatwierdzić, dostosować lub wykluczyć, zachowując pełną ścieżkę audytu.

  • Wspólna infrastruktura zadań

    Wszystkie moduły korzystają ze wspólnej, jednolitej infrastruktury: przesyłania plików wejściowych (dane + konfiguracja w Excelu), interfejsu parametryzacji, obliczeń wykonywanych w chmurze, automatycznego zbierania wyników oraz pobierania raportów końcowych (archiwum ZIP zawierające arkusze Excel i gotowe wykresy).


/ 05 / Szczegóły techniczne

Szczegóły techniczne

  • 01/

    Zrównoleglenie sekwencyjnych modeli statystycznych

    • Problem: Modele Python dostarczone przez zespół data science zostały napisane w sposób sekwencyjny – obliczenia wykonywały się jedno po drugim. Pełne uruchomienie analizy z wieloma kombinacjami parametrów (wskaźniki rozpoznawalności, segmenty rynku, zestawy współczynników) bezpośrednio na platformie mogło zająć nawet godzinę, ponieważ praca nadal odbywała się w jednym wątku.

    • Rozwiązanie: Primotly we współpracy z zespołem data science zidentyfikowało naturalne granice zrównoleglania w każdym modelu. Ogólny schemat podzielono na: przygotowanie danych (proces pojedynczy) → obliczenia równoległe (wiele niezależnych podzadań, po jednym na kombinację parametrów lub segment rynku) → agregacja wyników (proces pojedynczy). Primotly przebudowało backend w celu orkiestracji tego wzorca (fan-out/fan-in), uruchamiając równoległe procesy robocze (workers) dla każdego podzadania i zbierając wyniki po zakończeniu pracy wszystkich procesów. Wymagało to ścisłej współpracy z matematykami klienta, aby zrozumieć, jak zdekomponować algorytmy bez wpływu na poprawność wyników – co stanowiło niebanalne wyzwanie projektowe ze względu na logiczne zależności między niektórymi krokami.

    • Efekt: czas obliczeń był sukcesywnie skracany w miarę rozwoju platformy. Większość zadań analitycznych uruchamia się teraz w mniej niż 10 minut, a cała droga od ery przedplatformowej – gdy analizy trwały od kilku godzin do kilku dni na lokalnych maszynach – oznacza skrócenie czasu obliczeń o ponad 98%.

  • 02/

    Integracja wersjonowanych zewnętrznych bibliotek Pythona

    • Problem: Każdy moduł analityczny zależy od biblioteki Pythona utrzymywanej przez zespół data science klienta w osobnym repozytorium. Biblioteki te rozwijają się niezależnie, mają własne cykle wydawnicze i nie podlegają kontroli Primotly. Utrzymanie platformy w synchronizacji z aktualizacjami bibliotek bez uszkadzania istniejących funkcji wymagało ustrukturyzowanego podejścia do zarządzania zależnościami.

    • Rozwiązanie: Każdy moduł posiada własną usługę backendową w kodzie Primotly, która importuje odpowiednią bibliotekę data science jako pakiet Pythona. Interfejs między kodem Primotly a zewnętrzną biblioteką jest celowo uproszczony – Primotly wyłącznie wywołuje metody, a nie przepisuje algorytmy. Autoryzacja i zarządzanie użytkownikami są obsługiwane poprzez integrację .NET z centralnym węzłem danych badawczych, co zapewnia spójną kontrolę dostępu we wszystkich wewnętrznych platformach firmy.

    • Efekt: czyste oddzielenie inżynierii platformy (Primotly) od metodologii statystycznej (zespół data science klienta). Aktualizacje algorytmów mogą być wdrażane poprzez prostą aktualizację zależności bibliotecznych, bez konieczności modyfikowania kodu orkiestracji napisanego przez Primotly.

  • 03/

    Budowa monolitu z elementami mikrousług dla obciążeń analitycznych

    • Problem: Obciążenia analityczne (workloads) różnią się od typowych zadań aplikacji webowych – wymagają dużej mocy obliczeniowej, trwają długo i występują skokowo. Standardowa monolityczna architektura webowa skutkowałaby nadmiarowym alokowaniem zasobów w okresach bezczynności lub ich dużym niedoborem w momentach szczytowego zapotrzebowania analitycznego.

    • Rozwiązanie: Platforma wykorzystuje architekturę typu monolit z elementami mikrousług (monolith-with-microservices-elements). Główna aplikacja działa jako monolit, co zapewnia prostotę wdrożenia i współdzielony dostęp do danych. Z kolei ciężkie obliczenia analityczne są oddelegowywane do odizolowanych procesów roboczych (worker processes), które mogą być skalowane całkowicie niezależnie. Daje to korzyści płynące z prostoty monolitu dla większości sekcji aplikacji, jednocześnie efektywnie obsługując zadania wymagające dużej mocy obliczeniowej.

    • Efekt: optymalne wykorzystanie zasobów zarówno w okresach przestoju, jak i w godzinach szczytu, a poszczególne moduły analityczne mogą być skalowane niezależnie w zależności od bieżącego zapotrzebowania – moduły wymagające intensywnych obliczeń otrzymują więcej zasobów bez wpływu na lżejsze procesy w tle.


/ 06 / Wpływ biznesowy i rezultaty

Wpływ biznesowy i wyniki

Czas obliczeń spadł z kilku godzin lub dni na lokalnych komputerach do mniej niż dziesięciu minut w chmurze – to skrócenie czasu o ponad 98%, które przekształciło analitykę z nocnego procesu wsadowego w interaktywne narzędzie dostępne na żądanie.

  • Wsparcie przychodów na poziomie ok. 45 mln USD

    Platforma stanowi kluczową infrastrukturę analityczną wspierającą główny strumień przychodów firmy i rozwija się dynamicznie w miarę dodawania nowych modułów oraz wzrostu adaptacji systemu w organizacji.

  • Skrócenie czasu obliczeń o ponad 98%

    Analizy, które wcześniej wymagały nocnych lub wielodniowych obliczeń na lokalnych maszynach, kończą się teraz w mniej niż dziesięć minut w chmurze. Większość zadań uruchamia się znacznie poniżej tego progu.

  • Samoobsługowa analityka od zaraz

    Analitycy data science mogą uruchamiać, konfigurować i pobierać gotowe analizy w całości za pośrednictwem intuicyjnego interfejsu webowego – bez potrzeby lokalnej konfiguracji środowiska, ręcznego zarządzania plikami czy pracy w wierszu poleceń.

  • Skalowane moce obliczeniowe

    Zadania są wykonywane w stabilnym środowisku chmurowym, a nie na laptopach. Wielu analityków może jednocześnie uruchamiać zaawansowane procesy bez rywalizacji o fizyczne zasoby sprzętowe maszyn.

  • Szybka rozbudowa o nowe moduły

    Infrastruktura stworzona przez Primotly została zaprojektowana tak, aby błyskawicznie wdrażać nowe moduły analityczne. Każda nowa biblioteka data science może zostać wdrożona w oparciu o ten sam wzorzec orkiestracji i uruchomiona bez konieczności przebudowy całej platformy.

Stack technologiczny

Frontend
Angular
Backend
Python (główny), .NET C# (autoryzacja, zarządzanie użytkownikami)
Baza danych
PostgreSQL
Architektura
Monolit z elementami mikrousług
Biblioteki Data Science
Pakiety Pythona (wersjonowane, na poziomie modułu, utrzymywane przez zespół data science klienta)
Chmura / Infrastruktura
Google Cloud Platform (GCP)
Inne narzędzia
Jira, Confluence

/ Case studies /

Zobacz nasze case studies

Jak możemy Ci pomóc?

Razem znajdziemy najlepsze rozwiązanie dla Twojego biznesu

Skontaktuj się z nami