Projektowanie i implementacja wysokowydajnych aplikacji w języku PHP

Kod: PHP-performance
Kategoria: PHP
Forma: 60% wykłady / 40% warsztaty
Czas trwania: 3
Grupa docelowa: developerzy

Szkolenie zostało przygotowane z myślą o programistach i architekach PHP, przed którymi zostało postawione zadanie zaprojektowania i implementacji wysokowydajnej aplikacji webowej.

Szkolenie zawiera szereg praktycznych rozwiązań opracowanych na podstawie doświadczeń w dojrzałych projektach, obsługujących duży wolumen ruchu i działających w oparciu o rozbudowane infrastruktury serwerowe.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Kruczki, które dadzą Ci realną przewagę
  • Dostęp do wiedzy eksperckiej architekta systemów dużej skali (największy polski portal społecznościowy jak i największy komunikator)

Program Szkolenia

Pobierz program w formacie PDF
  1. Wprowadzenie
    1. Dlaczego wydajność aplikacji ma znaczenie?
    2. Flow obsługi requestu przez PHP
    3. Wydajność a skalowalność, mity i fakty
  2. Profilowanie i pomiary wydajności aplikacji
    1. Metody i narzędzia przeprowadzanie testów obciążeniowych
      1. ApacheBenchmark
      2. Tsung
      3. Selenium
      4. JMeter
    2. Monitorowanie aplikacji i serwera
      1. NewRelic
      2. Graphite / StatsD / Diamond
      3. xhprof
    3. Pułapki mikrooptymalizacji
  3. Przyśpieszanie aplikacji PHP poprzez konfigurację stosu technologicznego
    1. Dobór właściwego oprogramowania
      1. Wersja PHP a performance aplikacji
      2. Wybór web-serwera i związane z tym konsekwencje
          Apache2 + mod_phpLighttpdnginx + php-fpm
    2. Opcode caching
      1. Zasada działania i wpływ na performance aplikacji
      2. Rozwiązania
          APCXCacheopcache
      3. Przyśpieszanie aplikacji z włączonym opcode cache
          Wykorzystanie buildów kodu źródłowegoUnikanie operacji fstat i związane z tym konsekwencje
      4. Pozostałe aspekty
          Wykorzystanie modułów opcode jako shared-memory user-cacheMonitorowanie skuteczności cachePrzegląd możliwych problemów i metod ich rozwiązania
  4. Frameworki PHP
    1. Przegląd popularnych frameworków PHP i ich natywnej wydajności
    2. Tuning wydajności aplikacji poprzez wykorzystanie cache
      1. Cache danych z bazy danych
      2. Cache requestów HTTP
    3. Tuning wydajności aplikacji poprzez jej architekturę
  5. Optymalizacja schematu bazy danych i zapytań SQL (MySQL)
    1. Silniki składowania danych i ich możliwości
    2. Identyfikacja wąskich gardeł bazy danych
    3. Podstawowa optymalizacja schematu bazy danych
    4. Podstawowa optymalizacja zapytań SQL
  6. Cache danych
    1. Wprowadzenie do cache'owania danych
      1. Cache hit vs miss
      2. Algorytmy cache
      3. Inwalidacja i czas życia cache
    2. Narzędzia
      1. Memcached
      2. Redis
      3. AWS ElastiCache
    3. Strategie budowania cache
      1. Przechowywanie danych per query vs per row
    4. Przegląd typowych use-case'ów związanych z cache danych
    5. Optymalizacja komunikacji pomiędzy aplikacją a serwerami cache
  7. Odciążanie baz danych
    1. Eliminacja części zapytań SQL i przenoszenie ich do dedykowanych rozwiązań
      1. Full-Text-Search
          Przegląd problemów wynikających z implementacji w języku SQLNarzędziaFull-Text-Search w MySQL 5Sphinx
  8. Cache requestów HTTP
    1. Wprowadzenie do cache'owania danych
      1. Nagłówki HTTP i ich obsługa w przeglądarce internetowej
      2. Efektywność cache a obciążenie serwera aplikacji
    2. Narzędzia
      1. Nginx
      2. Squid
      3. Varnish
    3. Konfiguracja i wykorzystanie serwera Varnish w stosie technologicznym
      1. Zasada działania
      2. Skuteczność i wydajność
      3. Instalacja, konfiguracja oraz uruchomienie serwera Varnish
      4. Wprowadzenie do języka VCL i jego możliwości
      5. Podstawowe aspekty konfiguracji serwera Varnish i integracji z chronioną aplikacją
  9. Wydajność frontendu aplikacji
    1. Podstawowe techniki zwiększające szybkość działania aplikacji w przeglądarce internetowej
    2. Optymalizacja komunikacji klient-serwer
  10. Przetwarzanie danych w modelu asynchronicznym
    1. Zmiana miejsca przetwarzania dużych ilości danych jako metoda przyśpieszenia aplikacji
    2. Systemy kolejkowe
      1. Zasada działania
      2. Przegląd typowych use-case'ów związanuych z przetwarzaniem asynchronicznym
      3. Narzędzia
          GearmandRabbitMQRedisAWS Simple Queue Service
      4. Konfiguracja i wykorzystanie serwera RabbitMQ w stosie technologicznym
          Instalacja i uruchomieniePodstawowe aspekty pracy i możliwości serwera RabbitMQGenerowanie i przetwarzanie wiadomości przesyłanych za pomocą kolejek
  11. Skalowanie aplikacji
    1. Korzyści wynikające z rozproszenia aplikacji pomiędzy większą liczbę serwerów
    2. Podstawowe aspekty pracy z rozproszoną aplikacją
      1. Kierownie ruchem użytkowników pomiędzy instancjami aplikacji
      2. Utrzymanie sesji użytkownika
  12. Dedykowane rozwiązania zewnętrzne
    1. HHVM, maszyna wirtualna dla języka PHP

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Zapytaj o szkolenie

Imię i nazwisko:
Firma:
E-mail/Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń