Di recente ho sentito parlare sempre più di architetture serverless basate su prodotti come AWS Lambdas, funzioni di Azure, funzioni di Google Cloud, ecc.
Comprendo vantaggi dell'utilizzo di tali architetture, ma ciò che mi sfugge è il modo in cui piccoli componenti della logica aziendale possono essere condivisi in modo efficiente tra quelle funzioni. Darò un esempio:
Il back-end della mia app è composto da un gruppo di funzioni implementate in uno dei servizi sopra menzionati. Ognuna di queste funzioni utilizza un framework di registrazione. Non vorrei mettere la logica di logging in una funzione a sé stante perché non voglio il sovraccarico di effettuare una chiamata di funzione remota ogni volta che voglio registrare qualcosa. Il problema sorge quando voglio apportare una modifica al framework di registrazione. Ora, ho bisogno di ri-distribuire TUTTE le funzioni che usano questo framework per applicare la modifica.
Al contrario, nelle architetture "regolari", avrei solo bisogno di distribuire l'applicazione, il che è qualcosa che probabilmente farò comunque una volta in poco tempo.
Quindi, è un problema intrinseco con queste architetture senza server? o mi manca qualcosa?