Zaawansowana architektura systemów PHP - projektowanie i implementacja skalowalnych aplikacji webowych

Tytuł: Zaawansowana architektura systemów PHP - projektowanie i implementacja skalowalnych aplikacji webowych
Kod: PHP-arch
Kategoria: PHP
Forma: 70% wykłady / 30% 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 architektach pracujących nad dużymi aplikacjami webowymi typu mission-critical, funkcjonujących w oparciu o klaster redundantnych serwerów.

Szkolenie zawiera szereg praktycznych rozwiązań opracowanych na podstawie doświadczeń w dużych projektach webowych, hostowanych na klastrach wielkości 10-600 fizycznych serwerów.

Wyróżniki szkolenia

  • Zaingrowane podejśćie do: skalowania, bezpieczeństwa, failover, CQRS
  • Całościowe i szersze spojrzenie na problemy
  • Dostęp do wiedzy eksperckiej

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 warto zawczasu zadbać o skalowanie aplikacji?
    2. Historie popularnych witryn internetowych, ich dobre i złe wybory
      1. Zestawienie najczęściej występujących problemów
    3. Korzyści wynikające z zastosowania architektury umożliwiającej skalowanie
    4. Skalowalność a wydajność systemu
  2. Architektura kodu aplikacji
    1. Backend i frontend aplikacji
      1. Separowalność i specjalizacja poszczególnych części aplikacji
      2. Komunikacja
    2. Nowoczesne frameworki PHP
      1. Symfony
      2. Laravel
      3. Zend
    3. Nowoczesne frameworki JavaScript
      1. Backbone
      2. EmberJS
      3. AngularJS
    4. Organizacja kodu
      1. Architektura MVC
      2. Moduły oprogramowania
        1. Możliwości i zastosowanie Composera
      3. Wzorce projektowe
      4. Serwisy usługowe i Dependency Injection
      5. Mapowanie relacyjno-obiektowe
        1. Przegląd dostępnych rozwiązań
        2. Ograniczenia narzędzi ORM
      6. Command-query Responsibility Segregation
        1. Stos Command
        2. API dla modelu biznesowego
        3. Stos Read
        4. Optymalizacja pod kątem dużej ilości odczytów
        5. Synchronizacja stosów
        6. SQL, widoki, zdarzenia biznesowe
      7. Struktura monolityczna vs architektura mikroserwisów
        1. Case studies projektów migrujących pomiędzy stylami, przyczyny i osiągane rezultaty
  3. Architektura systemu
    1. Środowisko uruchomieniowe aplikacji, kod źródłowy to nie wszystko
    2. Typowa ścieżka skalowania aplikacji
      1. Środowisko single-server jako punkt startowy
      2. Rozproszenie usług w pojedynczych instancjach
      3. Rozproszenie usług w wielu instancjach
      4. Przegląd typowych problemów
    3. Redundancja usług dla wysokiej dostępności
      1. Kierowanie ruchem pomiędzy reduntantnymi serwerami
      2. Obsługa sytuacji krytycznych, failover
      3. Wpływ redundancji na kod aplikacji
    4. Eliminacja obciążeń
      1. Przyśpieszanie aplikacji PHP
        1. Opcode cache
        2. Buildy aplikacji
      2. Cache'owanie danych
        1. Wprowadzenie do cache'owania
        2. Tworzenie i inwalidacja cache
        3. Memcached
        4. Techniki wykorzystania dedykowanych narzędzi w celu odciążenia warstwy bazy danych
      3. Cache HTTP
        1. Wprowadzenie do cache'owania
        2. Varnish jako web-application accelerator
      4. Serwery Full-Text-Search
        1. Problem wyszukiwania tekstu w relacyjnych bazach danych
        2. Sphinx jako serwer FTS
        3. Podstawowa konfiguracji serwera Sphinx i indeksacja źródeł danych
        4. Flow komunikacji pomiędzy aplikacją a serwerem Sphinx
        5. Metody indeksacji dużych źródeł danych
        6. Shardowanie indeksów
    5. Skalowanie warstwy bazy danych
      1. Modele replikacji
        1. Master-slave(s)
        2. Master-master
        3. Problemy aplikacyjne wynikające z replikacji
        4. Zakleszczenia
        5. Replication-lag
      2. Shardowanie tabel
        1. Wprowadzenie do koncepcji shardowania
        2. Korzyści i ograniczenia
        3. Techniki podziału baz danych
        4. Konsekwencje dla warstwy dostępu do danych w aplikacji
      3. Rozwiązania NoSQL
        1. CAP theorem
        2. Przegląd dostępnych rozwiązań i ich możliwości
    6. Systemy kolejkowe
      1. Wprowadzenie do systemów kolejkowych
      2. Wykorzystanie systemów kolejkowych do rozdzielania systemów
      3. Narzędzia
        1. AMQP
        2. RabbitMQ
    7. Deployment aplikacji na klaster serwerowy
      1. Różnice pomiędzy deploymentem w ramach pojedynczego serwera a klastrem
      2. Konsekwencje deploymentu systemów wielowarstwowych
    8. Monitoring
      1. Monitoring pracy infrastruktury serwerowej
      2. Monitoring pracy aplikacji
      3. Narzędzia
    9. Infrastruktura serwerowa
      1. Cloud computing vs infrastruktura dedykowana
      2. Narzędzia developerskie / devops
        1. Vagrant
        2. Docker
  4. Case-studies realnych projektów
    1. Shardowane bazy danych
    2. Skalowalne storage plików
    3. Skalowalne systemy kolejkowe
    4. Skalowalne wyszukiwanie full-text-search w dużym datasecie
    5. Wykorzystanie systemów NoSQL w celu zwiększenia skalowalności i wydajności aplikacji


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.