Introduzione a gRPC

Home » IT » Blog » Introduzione a gRPC


* Questo post sul blog è il primo di una serie su gRPC.


Negli anni 90, quando ho iniziato in questo mondo, se eri fortunato e avevi un computer, l'unica cosa che potevi fare era lavorare in locale, giocando ai tuoi giochi installati o scrivendo i tuoi documenti in Word Perfect.

Oggi è vero il contrario. Quasi tutti i dispositivi sono collegati a qualche tipo di rete e tutti i nuovi sviluppi sono fatti con un focus sul cloud. Questo ci permette di avere macchine meno potenti e tutta la potenza di calcolo viene trasferita a quelle mega macchine che Amazon, Google, Microsoft hanno ... ma questa è un'altra storia.

I nuovi sviluppi sono fatti con un focus sul cloud.

Il software di oggi è composto da servizi che interagiscono con altri servizi per raggiungere un fine più o meno complesso. Questi servizi sono di solito piccoli e con una funzionalità molto specifica, quindi sono chiamati microservizi.

La comunicazione tra i microservizi avviene su reti di computer e, come le persone, anche i processi comunicano inviandosi messaggi a vicenda. Il software basato sui microservizi è chiamato software distribuito. Ha, come tutto nella vita, vantaggi e svantaggi di cui vi parlerò.

I processi possono scambiarsi messaggi in modo sincrono o asincrono:

  • Comunicazione Sincrona: il processo client invia un messaggio al processo server attraverso la rete e aspetta un messaggio di risposta. Un esempio di scambio sincrono di informazioni nella vita quotidiana sarebbe una conversazione telefonica. Una persona fa una domanda e l'altra risponde. Tutto questo è sincronizzato e avviene in tempo reale.

  • Comunicazione Asincrona: i processi si scambiano messaggi asincroni utilizzando un intermediario noto come broker di eventi. Un esempio potrebbe essere lo scambio di informazioni via Whatsapp. Ti mando un messaggio e tu rispondi quando puoi.

Non c'è un'opzione migliore dell'altra. Dovete solo selezionare quello che meglio si adatta al vostro caso d'uso.

La maggior parte delle applicazioni oggi comunica in modo sincrono, inviando una richiesta e aspettando una risposta più o meno immediata. I microservizi sono costruiti come servizi RESTful, che implementano risorse a cui si può accedere e cambiare il loro stato attraverso chiamate di rete e utilizzando il protocollo HTTP/2. Questi servizi sono chiamati API (Application Programming Interface).

Per la maggior parte dei casi d'uso, i servizi RESTful sono piuttosto ingombranti, inefficienti e soggetti a errori. Molte volte avrete bisogno che la comunicazione tra i vostri processi sia altamente scalabile e loosely coupled, cioè più efficiente dei servizi RESTful. È qui che entra in gioco gRPC, che non è altro che un metodo di comunicazione tra processi per costruire applicazioni distribuite e microservizi.

Google ha sviluppato gRPC e si può pensare che la g in gRPC si riferisce a Google, ma il significato della g è cambiato con ogni versione. La versione al momento di scrivere è la 1.41 e in questa versione la g in gRPC sta per "capra". Puoi trovare tutti i significati delle g per le diverse versioni qui.

Nel prossimo post spiegherò cos'è gRPC e vi darò un esempio.

Se volete saperne di più su gRPC, ecco alcuni libri che potrebbero interessarvi:



Learning HTTP/2: A Practical Guide for Beginners

Stephen Ludin


gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes

Kasun Indrasiri