Mówi się, że główną zaletą architektury bezserwerowej jest to, że takie programy nie potrzebują dedykowanego serwera do ciągłego działania. Następnie są wywoływane na żądanie i zatrzymują się przy wychodzeniu z funkcji.
Oznacza to, że program bezserwerowy będzie musiał się szybko uruchomić, aby był responsywny. Jak zatem radzi sobie z czasochłonnymi działaniami, takimi jak połączenie z bazą danych? Czy łączy się z bazą danych za każdym razem, czy zarządza połączeniem z bazą danych osobno w celu obsługi wywołań, tak jak ma to miejsce w aplikacjach serwerowych?
źródło
To zależy.
Wpłynie to na wdrożenie za kulisami biegacza lambda. Widzimy, że w AWS pojemnik może być ponownie użyty.
http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html
Mogliśmy więc zobaczyć pulę połączeń / ponowne użycie przynajmniej dla niektórych żądań. Powinniśmy również rozważyć samą bazę danych i sposób, w jaki traktuje przychodzące żądania połączeń.
To pytanie dla mnie podkreśla niektóre problemy z „bezserwerowym”, wciąż bardzo nowym i niedojrzałym, więc szczegóły nie zostały wykreślone.
Zawsze powinniśmy pamiętać, że brak serwera nie oznacza braku serwerów. Jeśli szybkość z jaką nazywamy lambda jest wystarczająco wysoka, to może skutecznie mieć kilka serwerów lub „kontenery” uruchomione.
W praktyce czas uruchomienia i zasoby, takie jak adresy IP lambdas, mogą być prawdziwym problemem. Być może, gdy dojrzeją, pojawi się konsensus co do sposobu ich prowadzenia, a problemy te otrzymają solidne odpowiedzi.
źródło