Stanowe aplikacje Webowe
@Horusiath
http://bartoszsypytkowski.com
Agenda
- Jak zmienił się świat IT?
- Bezstanowe protokoły
- Stanowe aplikacje
- Aktorzy
- Maszyny stanów
- Uwagi
Trochę historii
IT kiedyś i dziś
Dawniej | Obecnie |
---|---|
Mała droga pamięć RAM | Tani RAM |
1-rdzień CPU | Wiele rdzeni |
1 maszyna | Chmury obliczeniowe |
Opóźnienia - sekundy | Opóźnienia - milisekundy |
Modemy | Gigabitowe łącza |
Tysiące użytkowników | Miliony użytkowników |
Programowanie
Znane wzorce i koncepty
- Relacyjne bazy danych - 1970 r.
- MVC (Model-View-Controller) - lata 70-te
- Model aktorowy - 1973 r.
- TCP - 1974 r.
- ...
- HTTP - 1997 r.
Aplikacje
Gry komputerowe
Procesowanie dokumentów, wniosków, aplikacji
Zarządzanie zasobami
Reagowanie na zdarzenia
Kilka przykładów domen
Sieci społecznościowe,
komunikatory
Internet of Things
Wiele aplikacji to aplikacje stanowe
HTTP to protokół bezstanowy
Problem?
Jak to obchodzimy?
Kilka popularnych "hacków"...
ORM
Caching
There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton
Jeden problem wciąż pozostaje
Separacja logiki od stanu aplikacji
Czy można inaczej?
Aktorzy
Aktorzy cd.
Aktorzy w aplikacjach stanowych
... i jak ma się do tego Domain Driven Design
Nie odtwarzamy agregatów z bazy danych
Pozwalamy im żyć w pamięci pod postacią aktorów
Baza danych służy za backup
Maszyny stanów skończonych
Do prostych problemów...
... i tych bardziej złożonych
Upraszczamy logikę poprzez zmianę zachowania
Inne zalety...
Modułowość
Komunikacja oparta o wiadomości
- Fire-and-forget
- RPC (request-response)
- Progressive response
- Long pooling
- Publish / Subscribe
- Streaming / data flows
Świat jest większy niż RPC
Microservices
Kompromisy
bo życie to sztuka wyboru
Łyżka nie istnieje...
baza danych przestaje pełnić rolę jedynego źródła prawdy
ACID no more
życie bez kwasu może okazać się nie do zniesienia
RPC
stare przyzwyczajenia ciężko umierają
Koniec
Stateful web applications
By Bartosz Sypytkowski
Stateful web applications
- 1,294