1 / 46

Prezentują:

Prezentują:. Marek Wałach UX Designer. Marcin Ceran PHP Developer. Agenda. O nas Skala projektu iPresso Wykorzystywana technologia Case study 1: Przetwarzanie danych do analiz w tle Case study 2: Aktualizacja wielu baz jednocześnie Case study 3: Procesy działające w tle

hans
Télécharger la présentation

Prezentują:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prezentują: Marek Wałach UX Designer Marcin Ceran PHP Developer

  2. Agenda • O nas • Skala projektu iPresso • Wykorzystywana technologia • Casestudy 1: Przetwarzanie danych do analiz w tle • Casestudy 2: Aktualizacja wielu baz jednocześnie • Casestudy 3: Procesy działające w tle • Czas na pytania

  3. encja.com S.A. Jesteśmy zespołem kilkudziesięciu pracowników i współpracowników skoncentrowanym na potrzebach ludzi biznesu i administracji.

  4. Nasze rozwiązania …i wiele innych

  5. iPresso Platforma dla nowoczesnych i skutecznych marketerów, która posiada w jednym miejscu profesjonalne narzędzia

  6. iPresso Zarządzanie kontaktami Monitoring mediów e-PR

  7. iPresso Marketing Automation Direct Marketing Integracje

  8. Skala projektu iPresso Wielu klientów obsługiwanych w modelu SaaS

  9. Skala projektu iPresso Ponad 500 000 kontaktów (użytkowników) obsługiwanych w ramach jednego klienta … i rośnie

  10. Skala projektu iPresso Ponad 13 000 zadań dziennie wykonywanych dla jednego klienta … i rośnie

  11. 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ń

  12. Prognozy • Wielu klientów obsługujących 1 – 5 milionów kontaktów • Wzrost ilości wykonywanych zadań dziennie

  13. Wykorzystywana technologia

  14. Konfiguracja maszyn w chwili startu 1 maszyna z kodem aplikacji, bazą oraz wykonująca akcje cronowe

  15. Konfiguracja maszyn w chwili obecnej Wydzielone maszyny dla każdej z funkcji aplikacji

  16. Konfiguracja maszyn w przyszłości Wydzielone maszyny dla każdej indywidualnej funkcji w celu lepszego skalowania i równoważenia obciążenia

  17. Casestudy 1 Przetwarzanie danych do analiz w tle

  18. 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

  19. 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

  20. Główne wyzwanie Przygotowanie raportu zawierającego analizę aktywności kontaktów w jak najkrótszym czasie na żądanie użytkownika

  21. 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.

  22. 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

  23. Zastosowane rozwiązania • Przetrzymywanie gotowych analiz w cache’u • Mechanizm informujący o postępie przygotowania analizy użytkownika

  24. Dalszy rozwój • Wydzielenie osobnej maszyny dla analiz • Cykliczna wstępna obróbka danych umożliwiająca przyspieszenie procesu generowania analizy

  25. Casestudy 2 Aktualizacja wielu baz jednocześnie

  26. 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

  27. 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

  28. Napotkane problemy • Czas wykonywania skryptów aktualizacyjnych dla cały czas rosnącej liczby klientów • Zabezpieczenie przed niepowodzeniem operacji

  29. 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

  30. Obciążenie sprzętowe Bardzo niskie obciążenie sprzętowe ze względu na to, że aktualizowana była jedna baza na raz

  31. Zastosowane rozwiązania • Przerzucenie skryptów w tło • Rekurencyjne odpalanie się skryptów • Snapshoty w celu bezpieczeństwa

  32. Efekty wprowadzonych rozwiązań • Czas wykonywania skryptów skrócił się o ponad 60 % • W pełni wykorzystanie mocy obliczeniowej podczas aktualizacji

  33. Casestudy 3 Procesy działające w tle

  34. Pierwsze rozwiązanie Początkowo zadania były inicjowane przez cron-a

  35. 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.

  36. Zastosowane rozwiązanie Daemons

  37. Zalety Daemonów • Obsługa nieukończonych zadań • Brak konieczności czekania całej minuty do wykonania następnego zadania

  38. Zalety Daemonów • Zarządzanie wieloma zadaniami w jednym czasie • Obsługa intentów

  39. Przykładowe kategorie zadań • System mailingowy • System SMS • Marketing automation

  40. Przykładowe kategorie zadań • Komunikacja z portalami społecznościowymi • Synchronizacja z systemami zewnętrznymi • Procesy związane z analizą danych

  41. Opis rozwiązania • Jeden proces do zarządzania zadaniami • Każdy daemon posiada swój grafik z definicjami zadań • Kolejkowanie zadań z wykorzystaniem IPC

  42. 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

  43. Rezultaty • Optymalizacja wykorzystania zużycia zasobów • Jednoczesna realizacja wielu zadań • Wywoływanie dowolnej akcji na żądanie

  44. Czas na pytania

More Related