Funzioni, serverless e Kubernetes: quando ci si appresta a costruire la prima applicazione containerizzata, questi strumenti e i loro concetti sottostanti possono confondersi. In questo post, demistificheremo questi argomenti essenziali per la creazione di applicazioni cloud-native scalabili.
Che cos'è Kubernetes?
Kubernetes è un'orchestrazione di container utilizzata per gestire il ciclo di vita dei container e dei nodi su cui vengono eseguiti.
Ripartizione:
- In generale, un contenitore è un'applicazione impacchettata con le sue dipendenze che non si affida al sistema operativo sottostante per le librerie aggiuntive.
- I container sono raggruppati in pod che vengono eseguiti sui nodi.
- Un nodo è un'unità di calcolo, spesso una macchina virtuale che esegue Linux (ma tecnicamente, qualsiasi server virtuale o fisico nel cluster che esegue i Pod o i gruppi di container).
Kubernetes orchestrerà la creazione dei nodi e distribuirà, distruggerà e sposterà container e pod sui nodi in base ai criteri definiti dallo sviluppatore.
Kubernetes è fondamentale per costruire e automatizzare applicazioni containerizzate per ottenere scala e alta disponibilità. Se siete nuovi a Kubernetes, abbiamo molti contenuti didattici per aiutarvi a iniziare.
Kubernetes è molto diverso dalle funzioni serverless e da FaaS, ma spesso viene utilizzato per alimentare il backend che rende fattibili queste architetture.
Che cos'è Serverless?
Serverless è un modello di sviluppo che consente agli sviluppatori di concentrarsi sulla spedizione di codice tramite container senza la necessità di gestire server o altre infrastrutture cloud. Il cloud provider è responsabile della gestione di tutto, dal livello server/OS in giù, per fornire agli sviluppatori un ambiente altamente semplificato per scrivere e distribuire il codice.
![Diagramma dell'architettura serverless](https://www.linode.com/wp-content/uploads/2023/04/Most_vs_Least_User_Responsibilities_Diagram-1064x713.png)
La terminologia può variare da un fornitore all'altro, ma l'architettura serverless sposta la responsabilità dallo sviluppatore al cloud provider per tutto ciò che riguarda il livello del server in giù.
Che cos'è una funzione?
La creazione di componenti modulari per un'applicazione, tipicamente denominati microservizi, consente agli sviluppatori di segmentare "pezzi" di codice per le funzionalità utilizzate di frequente. Questi pezzi sono noti come funzioni, che vengono eseguite quando vengono attivate da un evento.
Qualsiasi attività dell'utente che innesca un evento o una serie di eventi può essere distribuita come funzione. Ad esempio, un utente che si iscrive al vostro sito web può innescare una modifica del database, che a sua volta può innescare un'e-mail di benvenuto. Una catena di funzioni serverless può gestire il lavoro di backend.
![Una catena di funzioni serverless](https://www.linode.com/wp-content/uploads/2023/04/Microservice_Functions_Diagram-1064x495.png)
Che cos'è il Functions as a Service (FaaS)?
Il termine "as a Service" è utilizzato oggi per quasi tutto nel nostro settore. In generale, qualsiasi cosa as a Service significa che un provider cloud gestisce tutta l'infrastruttura di backend per fornire un accesso semplificato a una funzione. Il FaaS consente agli sviluppatori di costruire ed eseguire funzioni senza infrastrutture da mantenere. Le offerte FaaS in genere prevedono una tariffazione in base al tempo di esecuzione, il che significa che il costo viene addebitato solo quando una porzione di codice è in esecuzione. Ciò può essere molto conveniente rispetto alla gestione di un server 24 ore su 24, 7 giorni su 7.
Le piattaforme FaaS rendono le funzioni facili da distribuire e gestire, costruendole in cima a una tecnologia infrastrutturale specifica come Kubernetes o fornendo una GUI per creare funzioni e collegarle alle applicazioni senza scrivere alcun codice.(Per saperne di più sulle applicazioni low-code e "no-code").
Le funzioni inviate dalla comunità rendono più facile trovare e implementare la logica per ottimizzare le prestazioni dell'applicazione. FaaS è un prodotto popolare offerto da molti fornitori di cloud, che consente agli utenti di gestire funzioni e infrastrutture applicative in un'unica soluzione.
Siete interessati alle funzioni su Akamai?
Se attualmente utilizzate funzioni di qualsiasi fornitore nell'ambito dello sviluppo delle vostre applicazioni, vogliamo sentire il vostro parere. Akamai cloud computing services sta valutando la possibilità di aggiungere funzioni alla nostra piattaforma cloud. Partecipate al sondaggio per farci sapere cosa state cercando o iscrivetevi per essere contattati quando un servizio di funzioni sarà disponibile in versione beta.
Commenti