SKILL ISSUES W SERVERLESS
PDD #002 — Skill Issues w Serverless
Czas całkowity: 37:48 · Dźwięk masterowany: 128 kbps
Serverless miał zdjąć z nas serwery, patche i skalowanie. Artur opowiada z perspektywy audytora, który wchodzi w poobijane projekty na AWS, Kamil jako twórca systemu zbudowanego w całości na Lambdach. Dziś narzekamy, ale z miłością: AWS i Lambdy są świetne, jeśli wiesz, do czego ich używasz.
Zaczynamy od definicji z książki „Serverless Architectures on AWS” (płacisz tylko wtedy, gdy używasz) i plusów: nikt nie patchuje serwerów, jest SLA, a bezpieczeństwo usługi zarządzanej bije Kubernetesa na bare metal. Potem lista bólu: cold start w .NET i fakt, że od sierpnia 2025 AWS dolicza czas inicjalizacji Lambdy do rachunku; DynamoDB używane jak baza relacyjna; 50 funkcji z jednej DLL-ki i okno rozsynchronizowania przy deployu; SQS bez Dead Letter Queue i ETL-e, które nie przeżywają trzygodzinnej awarii Redshifta; Lambda pinball, czyli proces przechodzący przez 50 funkcji, kolejek i bucketów. Do tego prawo Teslera (złożoność nie znika, tylko przenosi się z serwerów do integracji), Lambda layers ze „shared kernelem” prowadzące do Distributed Big Ball of Mud i mikroserwis, który tylko kapitalizuje stringa. Teza odcinka: Lambda to architektura wdrożenia, nie architektura oprogramowania. Zasady projektowania się nie zmieniły.
checklistCzego dowiesz się z tej rozmowy:
- 01Cold start to jedyny problem z natury serverlessaReszta listy to skill issue: DynamoDB używane jak baza relacyjna, kolejki bez DLQ, brak alarmów. Trzeba znać narzędzie, zanim wprowadzi się je w organizacji.
- 02DynamoDB wymaga modelowania pod wzorce dostępuPartycje, hashowanie i router decydują, gdzie trafia zapytanie. Bez modelowania up front powstają gigantyczne tabele i frustracja, choć baza robi dokładnie to, do czego ją zaprojektowano.
- 03Złożoność nie znika, tylko się przenosiPrawo Teslera i Brooks: wyciągnęliśmy złożoność z zarządzania serwerami i wsadziliśmy ją w integrację między Lambdami, kolejkami i bucketami. Im więcej ruchomych elementów, tym więcej miejsc, gdzie giną dane.
- 04Lambda to architektura wdrożenia, nie oprogramowaniaUżycie Lambd nie daje mikroserwisów. Layers ze „shared kernelem” prowadzą do Distributed Big Ball of Mud. Najpierw projektujemy i modelujemy, potem decydujemy, jak to wdrożyć.
Kliknij na znacznik czasowy, aby natychmiast przeskoczyć do wybranego wątku w odtwarzaczu.
MATERIAŁY, ŹRÓDŁA I PLIKI DO POBRANIA
Wszystkie schematy, tablice i dokumenty ADR omówione podczas odcinka. Bez paywalli, w otwartych formatach.
Sbarski, Cui, Nair, „Serverless Architectures on AWS, Second Edition”
Stąd definicja z początku odcinka: serverless to oprogramowanie lub usługa, za którą płacisz tylko wtedy, gdy jej używasz.
AWS Lambda dolicza fazę INIT do czasu rozliczanego
Od 1 sierpnia 2025 cold start funkcji w managed runtime jest częścią rachunku. Dlatego ciepła Lambda zaczęła kosztować podwójnie: w opóźnieniu i w pieniądzach.
.NET Native AOT na AWS Lambda
Kompilacja do natywnej binarki zamiast JIT: krótszy cold start, ale bez refleksji i z bibliotekami, które nie zawsze to wytrzymują.
Rick Houlihan, „Amazon DynamoDB Deep Dive: Advanced Design Patterns”
Seria wykładów, o której mówi Artur. Jak myśleć o partycjach, wzorcach dostępu i single-table design zamiast przenosić tabele relacyjne 1:1.
DynamoDB: najlepsze praktyki projektowania NoSQL
Najpierw wzorce dostępu, potem model danych. Oficjalny punkt startu, zanim zespół wrzuci do DynamoDB swoje tabelki relacyjne.
Amazon SQS: dead-letter queues i redrive policy
DLQ nie jest domyślnie włączone. Bez redrive policy po nieudanych próbach dostarczenia wiadomość po prostu ginie.
DynamoDB Streams jako trigger Lambdy
Przykład dobrze użytej Lambdy z odcinka: funkcja reagująca na zmiany w tabeli jako początek procesu ETL.
Thoughtworks, „Lambda pinball” (Hold)
Antywzorzec nazwany po imieniu: żądania odbijają się między Lambdami, bucketami i kolejkami, a logika domenowa znika z pola widzenia.
Prawo Teslera, czyli prawo zachowania złożoności
Każdy system ma nieredukowalny poziom złożoności. Można ją tylko przenieść: z serwerów do integracji, z kodu do użytkownika.
Fred Brooks, „No Silver Bullet”
Złożoność esencjonalna i przypadkowa. Wracamy do niej, bo serverless głównie przestawia złożoność przypadkową w inne miejsce.
Foote & Yoder, „Big Ball of Mud”
Oryginał, od którego pochodzi „Distributed Big Ball of Mud”. Lambda layers ze wspólnym kernelem to jego chmurowa wersja.
CNCF Annual Survey 2023
Raport, o którym mówimy pod koniec: po początkowym boomie użycie FaaS maleje, a organizacje mieszają funkcje z kontenerami zależnie od przypadku.
CZY KOD TO JUŻ COMMODITY?
Zastanówmy się, czy doba AI zmienia dużo w podejściu do wytwarzania oprogramowania i postrzegania samego kodu. Przyjrzymy się kontekstowi historycznemu, bo kto nie zna historii, skazany jest na jej ponowne przeżycie.
PRACUJEMY NAD NASTĘPNĄ ROZMOWĄ
Zapisz się do Paper Notes, a dostaniesz powiadomienie o premierze.
NIE PRZEGAP NOTATEK WIZUALNYCH DO NASTĘPNYCH ODCINKÓW
Co dwa tygodnie wysyłamy jeden zwięzły e-mail z ręcznie rysowanymi schematami architektonicznymi, wyciągiem z decyzji technicznych oraz linkiem do odsłuchu przed oficjalną premierą. Zero spamu.
Zapisując się, zgadzasz się na otrzymywanie newslettera na podany adres. Wypiszesz się jednym kliknięciem w każdej wiadomości. Jak chronimy Twoje dane, opisuje polityka prywatności.