| 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.-
Wprowadzenie- Dlaczego warto zawczasu zadbać o skalowanie aplikacji?
- Historie popularnych witryn internetowych, ich dobre i złe wybory
- Zestawienie najczęściej występujących problemów
- Zestawienie najczęściej występujących problemów
- Korzyści wynikające z zastosowania architektury umożliwiającej skalowanie
- Skalowalność a wydajność systemu
- Dlaczego warto zawczasu zadbać o skalowanie aplikacji?
-
Architektura kodu aplikacji- Backend i frontend aplikacji
- Separowalność i specjalizacja poszczególnych części aplikacji
- Komunikacja
- Separowalność i specjalizacja poszczególnych części aplikacji
- Organizacja kodu
- Architektura warstwowa oraz Ports&Adapters
- Moduły oprogramowania
- Możliwości i zastosowanie Composera
- Możliwości i zastosowanie Composera
- Wzorce projektowe
- Serwisy usługowe i Dependency Injection
- Mapowanie relacyjno-obiektowe
- Przegląd dostępnych rozwiązań
- Ograniczenia narzędzi ORM
- Przegląd dostępnych rozwiązań
- Command-query Responsibility Segregation
- Stos Command
- API dla modelu biznesowego
- Stos Read
- Optymalizacja pod kątem dużej ilości odczytów
- Synchronizacja stosów
- SQL, widoki, zdarzenia biznesowe
- Stos Command
- Struktura monolityczna vs architektura mikroserwisów
- Case studies projektów migrujących pomiędzy stylami, przyczyny i osiągane rezultaty
- Case studies projektów migrujących pomiędzy stylami, przyczyny i osiągane rezultaty
- Architektura warstwowa oraz Ports&Adapters
- Backend i frontend aplikacji
-
Architektura systemu- Środowisko uruchomieniowe aplikacji, kod źródłowy to nie wszystko
- Typowa ścieżka skalowania aplikacji
- Środowisko single-server jako punkt startowy
- Rozproszenie usług w pojedynczych instancjach
- Rozproszenie usług w wielu instancjach
- Przegląd typowych problemów
- Środowisko single-server jako punkt startowy
- Redundancja usług dla wysokiej dostępności
- Kierowanie ruchem pomiędzy reduntantnymi serwerami
- Obsługa sytuacji krytycznych, failover
- Wpływ redundancji na kod aplikacji
- Kierowanie ruchem pomiędzy reduntantnymi serwerami
- Eliminacja obciążeń
- Przyśpieszanie aplikacji PHP
- Opcode cache
- Buildy aplikacji
- Opcode cache
- Cache'owanie danych
- Wprowadzenie do cache'owania
- Tworzenie i inwalidacja cache
- Redis
- Techniki wykorzystania dedykowanych narzędzi w celu odciążenia warstwy bazy danych
- Wprowadzenie do cache'owania
- Cache HTTP
- Wprowadzenie do cache'owania
- Varnish jako web-application accelerator
- Wprowadzenie do cache'owania
- Przyśpieszanie aplikacji PHP
- Skalowanie warstwy bazy danych
- Modele replikacji
- Master-slave(s)
- Master-master
- Problemy aplikacyjne wynikające z replikacji
- Zakleszczenia
- Replication-lag
- Master-slave(s)
- Shardowanie tabel
- Wprowadzenie do koncepcji shardowania
- Korzyści i ograniczenia
- Techniki podziału baz danych
- Konsekwencje dla warstwy dostępu do danych w aplikacji
- Wprowadzenie do koncepcji shardowania
- Rozwiązania NoSQL
- CAP theorem
- Przegląd dostępnych rozwiązań i ich możliwości
- CAP theorem
- Modele replikacji
- Systemy kolejkowe
- Wprowadzenie do systemów kolejkowych
- Wykorzystanie systemów kolejkowych do rozdzielania systemów
- Narzędzia
- AMQP
- RabbitMQ
- AMQP
- Wprowadzenie do systemów kolejkowych
- Deployment aplikacji na klaster serwerowy
- Różnice pomiędzy deploymentem w ramach pojedynczego serwera a klastrem
- Konsekwencje deploymentu systemów wielowarstwowych
- Różnice pomiędzy deploymentem w ramach pojedynczego serwera a klastrem
- Monitoring
- Monitoring pracy infrastruktury serwerowej
- Monitoring pracy aplikacji
- Narzędzia
- Monitoring pracy infrastruktury serwerowej
- Infrastruktura serwerowa
- Cloud computing vs infrastruktura dedykowana
- Cloud computing vs infrastruktura dedykowana
- Środowisko uruchomieniowe aplikacji, kod źródłowy to nie wszystko
-
Case-studies realnych projektów- Shardowane bazy danych
- Skalowalne systemy kolejkowe
- Skalowanie aplikacji w sytuacjach wzmożonego ruchu
- Shardowane bazy danych
Pobierz program w formacie PDF