Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałIrenka Szymanowicz Został zmieniony 10 lat temu
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.