• CloudPouch NEW!
  • Akademia
  • Blog
  • O stronie
  • Home

Cold start Lambdy - czy wiesz, za co płacisz?


Co to jest cold start Lambdy?

Mój poprzedni artykuł Co to jest cold start Lambdy? Wyjaśnię Ci go w 4 minuty spotkał się z dużą popularnością, więc postanowiłem pociągnąć temat dalej. Dziś wyjaśnię Ci za co płacisz, a za co nie, przy cold starcie funkcji Lambda.

⚡ Zacznijmy od początku: Co wpływa na cold start?

Wyróżniamy 4 elementy:

  1. Przygotowanie kodu funkcji
  2. Przygotowanie kontenera
  3. Przygotowanie runtime’u
  4. Uruchomienie kodu funkcji

Spójrz na poniższy diagram:

Anatomia cold startu

Źródło: Opracowanie własne na bazie dokumentów AWS

(Uwaga, inaczej to trochę wygląd przy Provisioned Concurrency - tutaj pomijam tę funkcjonalność)

⚡ Nad czym mamy kontrolę?

Bezpośrednio mamy kontrolę nad wyborem runtime’u (punkt 3). JavaScript, Java, Pythone, .NET charakteryzują się różnymi czasami ładowania.
Pośrednio mamy też wpływ na to jak długo będzie się pobierał kod naszej funkcji do kontenera. Ogólnie, im będzie mniejszy tym szybciej.

⚡ Jak to wygląda konkretnie?

W AWS mamy do dyspozycji usługę X-Ray, które jest w stanie pokazać nam bardzo dokładne metryki na temat działania każdej funkcji lambda. Poniżej widzisz metryki wywołania konkretnej funkcji gdzie miał miejsce cold start.

Anatomia cold startu

Metryki wywołania funkcji w usłudze X-Ray

Na czerwono (zielony w dark mode) został zaznaczony cold start za który nie płacimy!
Część zaznaczona na zielono (różowy w dark mode) to czas wykonywania naszej funkcji (dokładniej kodu handler’a).

Pokrywa się to z informacji, które można znaleźć w CloudWatch Logs przy tym konkretnym wywołaniu funkcji.

Duration: 163.67 ms Billed Duration: 200 ms Init Duration: 603.71 ms

Warto tutaj przypomnieć: czas za który płacimy jest zawyżany w górę do pełnych setek milisekund.

Na żółto zaznaczyłem czas potrzeby na przydzielenie kontenera wraz z runtime’em oraz skopiowanie kodu wraz z ustawieniami.

⚡ Za co płacimy?

Podsumowując, płacimy, za czas wykonywania naszego kodu (zaokrąglony w górę), a cold start jest gratis od AWS 😜




Cześć

Nazywam się Paweł Zubkiewicz i cieszę się, że tu jesteś!
Od ponad 18 lat profesjonalnie tworzę oprogramowanie, a od 2016 roku pasjonuje się Serverless.
Tą stronę stworzyłem z myślą o Tobie i o nas wszystkich, którzy uważają, że trend serverless trwale zmieni sposób tworzenia oprogramowania.
Więcej o tej stronie...

Kategorie

Pobierz bezpłatny PDF

Poradnik 12 Rzeczy o Serverless

Wybrane artykuły