Integrazione con Consul

Sempre più spesso le aziende moderne distribuiscono le applicazioni utilizzando un'infrastruttura basata su microservizi, in cui ogni servizio svolge una funzione specifica all'interno dell'applicazione. Questo design consente agli sviluppatori di apportare modifiche a un segmento o a un servizio specifico dell'applicazione, senza dover eseguire il redeploy di tutto. Spesso, un servizio può avere bisogno di richiedere dati ad altri servizi all'interno dell'applicazione per svolgere la sua funzione specifica. Pertanto, la comunicazione da servizio a servizio è una componente critica per questo tipo di architetture.

Se da un lato le architetture a microservizi promuovono l'alta disponibilità e la scalabilità dinamica, dall'altro vi sono alcune sfide che derivano dalle comunicazioni indirette che avvengono tra i servizi. In un sistema monolitico, invece, i sottosistemi sono direttamente collegati tra loro e possono trasmettere i dati in modo rapido e sicuro. Le architetture distribuite introducono un livello di complessità infrastrutturale e di latenza.

Consul è uno strumento di rete di servizi che consente agli utenti di scoprire servizi e proteggere il traffico di rete. Quando un endpoint applicativo, come una macchina virtuale, un server bare metal o un container, viene creato o rimosso dalla rete, un client Consul locale registra i servizi disponibili con il server Consul.

Consul è un registro di servizi e il DNS è un modo canonico per scoprire i servizi. Sebbene Consul fornisca servizi DNS di base, l'integrazione con IBM® NS1 Connect® consente di individuare i servizi attraverso la rete DNS avanzata di NS1 Connect. Gli utenti possono sfruttare la rete di servizi di Consul specificando politiche di livello di servizio che controllano la comunicazione tra servizi, collegando servizi autenticati tramite TLS reciproco. In questo modo è possibile scalare facilmente le configurazioni dinamiche senza dover implementare firewall per IP di servizio specifici. Utilizzando il sito NS1 Connect Filter Chain, gli utenti possono applicare una logica di instradamento del traffico personalizzata, ad esempio per il bilanciamento del carico "round-robin" tra i servizi.



Nota: Contattare il supporto di IBM per implementare l'integrazione NS1 Connect + Consult sul proprio account.

Come funziona

Consul mantiene un elenco di endpoint (IP e porte) per ogni servizio registrato. Quando un endpoint applicativo, come una macchina virtuale, un server bare metal o un container, viene creato o rimosso dalla rete, un client Consul locale registra i servizi disponibili con il server Consul. NS1 Connect interroga i servizi Consul (comprese tutte le istanze del servizio) per identificare quando un servizio viene creato o rimosso.

Per ogni servizio Consul, vengono creati due record (A e SRV) all'interno di NS1 Connect, insieme a una risposta per ogni istanza di quel servizio. Il record A contiene gli IP delle istanze e i record SRV contengono gli indirizzi IP e le porte utilizzate per ciascuna istanza.

Come tale, NS1 Connect lavora insieme a Consul per fornire un'unica fonte di verità per tutti i servizi Consul collegati. L'integrazione crea un registro di backup all'interno del portale NS1 Connect , supportando il rilevamento dei servizi tramite DNS, che supporta la scalabilità dinamica e semplifica l'implementazione in ambienti di rete complessi, comprese le architetture cloud ibride, on-premise e basate su cloud. Inoltre, gli utenti possono sfruttare il sito NS1 Connect Filter Chain per applicare criteri di routing avanzati per un controllo granulare delle comunicazioni tra servizi.

Termini e definizioni chiave

Scoperta del servizio
Il rilevamento automatico di dispositivi e servizi. È il modo in cui le applicazioni e i microservizi si localizzano l'un l'altro su una rete, con l'obiettivo di semplificare la gestione della configurazione dei servizi all'interno di un'architettura di microservizi in cui il volume e la frequenza delle comunicazioni tra servizi sono elevati. Le implementazioni di service discovery includono un server centrale (o più server) che mantengono una visione globale degli indirizzi, nonché client che si connettono al server centrale per aggiornare e recuperare gli indirizzi.
Rete di servizio
Un livello infrastrutturale configurabile e a bassa latenza, progettato per gestire un elevato volume di comunicazioni interprocesso basate sulla rete tra i servizi che compongono un'applicazione. In altre parole, è un modo per controllare come le diverse parti di un'applicazione condividono i dati tra loro. Invece di utilizzare dispositivi discreti, le maglie di servizio offrono un modo scalabile per implementare servizi altamente disponibili all'interno di applicazioni moderne tramite API. In questo modo è facile apportare miglioramenti infrastrutturali evitando i tempi di inattività.