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
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.
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.)
Badania rynkowe / Data Science
Team Extension – długoterminowe, dedykowane partnerstwo
2 osoby (1 Backend / Data Engineer, 1 Frontend Developer)
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.
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.
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.
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.
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.
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.
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).
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.
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.
Jedno- i wielowymiarowa analiza trendów na danych z kolejnych fal badawczych. Identyfikuje wzorce, prognozuje trajektorie i wykrywa anomalie w szeregach czasowych.
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.
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).
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%.
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.
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.
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.
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.
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.
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ń.
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.
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.
/ Case studies /
Razem znajdziemy najlepsze rozwiązanie dla Twojego biznesu
Skontaktuj się z namiRazem znajdziemy najlepsze rozwiązanie dla Twojego biznesu