Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
Zawód: Technik programista
Co to jest serverless computing?
Odpowiedzi
Informacja zwrotna
Serverless computing to model dostarczania usług obliczeniowych, który pozwala programistom skupić się na pisaniu kodu, bez konieczności zarządzania serwerami czy infrastrukturą. W tym modelu, dostawcy usług chmurowych automatycznie przydzielają zasoby obliczeniowe w odpowiedzi na zdarzenia, co oznacza, że użytkownicy płacą jedynie za rzeczywistą moc obliczeniową, której używają, a nie za z góry ustalone zasoby. Przykładem zastosowania serverless computing może być wykorzystanie funkcji AWS Lambda, która uruchamia kod w odpowiedzi na zdarzenia, takie jak zmiany w bazie danych, przesyłanie plików do chmury czy wywołania API. Ten model jest zgodny z zasadami DevOps oraz architekturą mikroserwisów, które promują elastyczność i szybkość w dostarczaniu aplikacji. Dobrą praktyką jest również integrowanie serverless computing z systemami CI/CD, co pozwala na automatyczne wdrażanie i zarządzanie kodem w sposób efektywny.
Serverless computing nie jest tożsamy z koncepcjami przedstawionymi w pozostałych odpowiedziach. Tworzenie aplikacji bez użycia back-endu nie jest zdefiniowane w ramach serverless computing, ponieważ model ten wciąż zakłada istnienie backendu, który jest zarządzany przez dostawcę usług chmurowych. Użytkownik nie musi się martwić o serwery, ale backend wciąż funkcjonuje, co jest kluczowe dla działania aplikacji. Technika projektowania baz danych bez użycia serwera SQL również nie odnosi się do serverless computing. W rzeczywistości, serverless może wykorzystywać zewnętrzne bazy danych, takie jak DynamoDB, które są w pełni zarządzane przez dostawcę chmury. Również proces kompilacji kodu w przeglądarce użytkownika to odmienna koncepcja, która dotyczy raczej aplikacji webowych i nie ma związku z serverless computing. Pojęcie serverless odnosi się do automatyzacji zarządzania infrastrukturą, co odmienia sposób, w jaki aplikacje są rozwijane i skalowane. Wprowadzenie w błąd w tym kontekście może prowadzić do nieefektywnej architektury oraz niepoprawnego rozumienia aktualnych trendów w inżynierii oprogramowania.