1
2 Prezentują: Marek Wałach UX Designer Marcin Ceran PHP Developer
3 Agenda 1.O nas 2.Skala projektu iPresso 3.Wykorzystywana technologia 4.Case study 1: Przetwarzanie danych do analiz w tle 5.Case study 2: Aktualizacja wielu baz jednocześnie 6.Case study 3: Procesy działające w tle 7.Czas na pytania
4 encja.com S.A. Jesteśmy zespołem kilkudziesięciu pracowników i współpracowników skoncentrowanym na potrzebach ludzi biznesu i administracji.
5 Nasze rozwiązania …i wiele innych
6 iPresso Platforma dla nowoczesnych i skutecznych marketerów, która posiada w jednym miejscu profesjonalne narzędzia
7 iPresso Zarządzanie kontaktami e-PRMonitoring mediów
8 iPresso Marketing Automation IntegracjeDirect Marketing
9 Skala projektu iPresso Wielu klientów obsługiwanych w modelu SaaS
10 Skala projektu iPresso Ponad 500 000 kontaktów (użytkowników) obsługiwanych w ramach jednego klienta … i rośnie
11 Skala projektu iPresso Ponad 13 000 zadań dziennie wykonywanych dla jednego klienta … i rośnie
12 Przykładowe zadania systemu Wysyłka mailingu do 500 000 kontaktów Monitorowanie kilkunastu fraz w mediach Synchronizacja z zewnętrznymi systemami klienta Analizowanie bieżących działań
13 Prognozy Wielu klientów obsługujących 1 – 5 milionów kontaktów Wzrost ilości wykonywanych zadań dziennie
14 Wykorzystywana technologia
15 Konfiguracja maszyn w chwili startu 1 maszyna z kodem aplikacji, bazą oraz wykonująca akcje cronowe
16 Konfiguracja maszyn w chwili obecnej Wydzielone maszyny dla każdej z funkcji aplikacji
17 Konfiguracja maszyn w przyszłości Wydzielone maszyny dla każdej indywidualnej funkcji w celu lepszego skalowania i równoważenia obciążenia
18 Case study 1 Przetwarzanie danych do analiz w tle
19 Ilości danych i ich struktura w kontekście analiz W systemie przechowywane są informacje na temat historii działań kontaktów. Dla 400 000 aktywnych kontaktów w przeciągu kilku miesięcy powstaje tabela z ponad 6 000 000 rekordów
20 Ilości danych i ich struktura w kontekście analiz Każdy rekord może być powiązany z innymi elementami systemu Danych cały czas przybywa
21 Główne wyzwanie Przygotowanie raportu zawierającego analizę aktywności kontaktów w jak najkrótszym czasie na żądanie użytkownika
22 Przygotowanie analizy Analiza wymaga sprawdzenia aktywności każdego kontaktu z osobna i połączenia ich w odpowiednie grupy. Grupowanie polega na znalezieniu kontaktów, których sekwencja aktywności jest taka sama. Data wystąpienia danej aktywności i ich kolejność może być różna dla każdego kontaktu.
23 Zastosowane rozwiązania Przerzucenie procesu wyciągania i analizowania danych w tło Rozbicie analizy danych na wiele procesów działających w tym samym czasie Wykorzystanie współdzielonego serwera memcached dla procesów przygotowujących analizy
24 Zastosowane rozwiązania Przetrzymywanie gotowych analiz w cacheu Mechanizm informujący o postępie przygotowania analizy użytkownika
25 Dalszy rozwój Wydzielenie osobnej maszyny dla analiz Cykliczna wstępna obróbka danych umożliwiająca przyspieszenie procesu generowania analizy
26 Case study 2 Aktualizacja wielu baz jednocześnie
27 Struktura bazodanowa 1 wspólna baza przetrzymująca informacje na temat klientów Każdy klient ma swoją bazę danych w której przechowywane są jego dane Struktura baz klientów jest identyczna
28 Pliki aktualizujące bazę Wykorzystanie plików xml/sql wykonywanych dla każdej bazy Podział pliku na tagi z zaznaczeniem jaki tag był ostatnio wykonywany
29 Napotkane problemy Czas wykonywania skryptów aktualizacyjnych dla cały czas rosnącej liczby klientów Zabezpieczenie przed niepowodzeniem operacji
30 Opis problemu Bardzo długi czas aktualizacji baz danych jedna po drugiej Brak dostępu do usług podczas aktualizacji Obsługa potencjalnych błędów
31 Obciążenie sprzętowe Bardzo niskie obciążenie sprzętowe ze względu na to, że aktualizowana była jedna baza na raz
32 Zastosowane rozwiązania Przerzucenie skryptów w tło Rekurencyjne odpalanie się skryptów Snapshoty w celu bezpieczeństwa
33 Efekty wprowadzonych rozwiązań Czas wykonywania skryptów skrócił się o ponad 60 % W pełni wykorzystanie mocy obliczeniowej podczas aktualizacji
34 Case study 3 Procesy działające w tle
35 Pierwsze rozwiązanie Początkowo zadania były inicjowane przez cron-a
36 Napotkany problem Duża liczba zadań oraz rosnąca liczba klientów wymagały jednoczesnego uruchamiania coraz to większej liczby skryptów. Skutkowało to dużym, skokowym zużyciem zasobów.
37 Zastosowane rozwiązanie Daemons
38 Zalety Daemonów Obsługa nieukończonych zadań Brak konieczności czekania całej minuty do wykonania następnego zadania
39 Zalety Daemonów Zarządzanie wieloma zadaniami w jednym czasie Obsługa intentów
40 Przykładowe kategorie zadań System mailingowy System SMS Marketing automation
41 Przykładowe kategorie zadań Komunikacja z portalami społecznościowymi Synchronizacja z systemami zewnętrznymi Procesy związane z analizą danych
42 Opis rozwiązania Jeden proces do zarządzania zadaniami Każdy daemon posiada swój grafik z definicjami zadań Kolejkowanie zadań z wykorzystaniem IPC
43 Opis rozwiązania Rejestracja zadań (aktywności daemonów) Niezależna obsługa daemonów z wykorzystaniem narzędzia do ich monitoringu Obsługa intentów
44 Rezultaty Optymalizacja wykorzystania zużycia zasobów Jednoczesna realizacja wielu zadań Wywoływanie dowolnej akcji na żądanie
45 Czas na pytania
46