Projektowanie i implementacja wysokowydajnych aplikacji w języku PHP

Tytuł: Projektowanie i implementacja wysokowydajnych aplikacji w języku PHP
Kod: PHP-performance
Kategoria: PHP
Forma: 60% wykłady / 40% warsztaty
Czas trwania: 3 dni
Odbiorcy: developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

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

  • 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

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  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
        1. Apache2 + mod_php
        2. Lighttpd
        3. nginx + php-fpm
    2. Opcode caching
      1. Zasada działania i wpływ na performance aplikacji
      2. Rozwiązania
        1. APC
        2. XCache
        3. opcache
      3. Przyśpieszanie aplikacji z włączonym opcode cache
        1. Wykorzystanie buildów kodu źródłowego
        2. Unikanie operacji fstat i związane z tym konsekwencje
      4. Pozostałe aspekty
        1. Wykorzystanie modułów opcode jako shared-memory user-cache
        2. Monitorowanie skuteczności cache
        3. Przeglą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
        1. Przegląd problemów wynikających z implementacji w języku SQL
        2. Narzędzia
        3. Full-Text-Search w MySQL 5
        4. Sphinx
  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
        1. Gearmand
        2. RabbitMQ
        3. Redis
        4. AWS Simple Queue Service
      4. Konfiguracja i wykorzystanie serwera RabbitMQ w stosie technologicznym
        1. Instalacja i uruchomienie
        2. Podstawowe aspekty pracy i możliwości serwera RabbitMQ
        3. Generowanie 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


Pobierz program w formacie PDF

Trenerzy

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

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów 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ń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.