Home
topics
Controller di distribuzione delle applicazioni
Data di pubblicazione: 22 maggio 2024
Autori: Chrystal R. China, Michael Goodwin
Un Application Delivery Controller (ADC) è un dispositivo di rete utilizzato per ottimizzare la distribuzione delle applicazioni su Internet, in genere nell'ambito di una rete di distribuzione delle applicazioni (ADN).
Un ADC può essere un dispositivo hardware o un programma software ed è generalmente collocato nella "zona demilitarizzata" (DMZ) di una rete aziendale, tra il firewall e uno o più server applicativi. Gli ADC fungono da proxy inversi che ricevono, decrittografano, convalidano e instradano le richieste dei client prima di inviare risposte crittografate all'utente.
Gli ADC aiutano le aziende a modernizzare le applicazioni di rete, ad accelerare le connessioni tra le macchine client e i server web, a semplificare il bilanciamento globale del carico dei server (GSLB) e ad aumentare la disponibilità complessiva delle applicazioni per gli utenti finali.
Scopri come le soluzioni GSLB aiutano i team addetti al bilanciamento del carico a raggiungere una maggiore funzionalità a un costo inferiore.
L'evoluzione degli application delivery controller è strettamente legata allo sviluppo di applicazioni web, data center e al più ampio campo della gestione della rete.
Alla fine degli anni '90 e all'inizio degli anni 2000, con la commercializzazione di Internet e l'aumento del traffico web, le aziende avevano bisogno di un modo per garantire che i siti e le app potessero gestire in modo efficiente elevati volumi di traffico applicativo L'ostacolo principale era trovare un modo per distribuire le richieste in arrivo su più server, in modo da garantire alta disponibilità e resilienza di rete.
La prima generazione di dispositivi pensati per superare questo ostacolo era costituita da bilanciatori di carico. Inizialmente erano dispositivi semplici e operavano nel livello di trasporto. Essi si occupavano distribuire il traffico in entrata su diversi server per equilibrarne i carichi e impedirne il sovraccarico.
Tuttavia, man mano che le app e i siti web sono diventati più complessi, i bilanciatori di carico di vecchia generazione sono caduti in disgrazia per la loro incapacità di leggere e prendere decisioni in base al contenuto delle richieste degli utenti (non solo in base agli indirizzi IP e alle porte). Ciò ha condotto gli sviluppatori a congegnare soluzioni di bilanciamento del carico al livello 7, in grado di ispezionare il contenuto dei messaggi al livello applicativo.
I bilanciatori di carico avanzati possono instradare il traffico in base a fattori quali intestazioni HTTP, cookie o persino richieste di pagine specifiche, facilitando strategie di gestione del traffico più sofisticate, come la persistenza della sessione (o "stickiness") e il routing basato sui contenuti. Nel corso del tempo, man mano che gli sviluppatori continuavano ad aggiungere funzionalità, questi bilanciatori di carico sarebbero diventati i controller intelligenti che ora chiamiamo ADC.
I moderni controller di distribuzione delle applicazioni sono componenti vitali di infrastrutture IT resilienti e altamente disponibili, in particolare dei data center di rete. Essi gestiscono il traffico delle app utilizzando una serie di processi e funzionalità complessi, che garantiscono un flusso di dati efficiente e sicuro tra i dispositivi client e i server di backend. Queste funzionalità includono:
Una delle funzioni principali di un ADC è distribuire il traffico in entrata su più server (bilanciamento del carico) sulla base di algoritmi che determinano il numero minimo di connessioni, il tempo di andata-ritorno e il tempo di risposta di un server. Se un server è sovraccarico o passa in modalità offline, l'ADC reindirizza il traffico ad altri server per evitare che il server non integro diventi un collo di bottiglia, lasciando inalterate o quasi le prestazioni della rete e l'esperienza utente.
I bilanciatori di carico mantengono anche la persistenza della sessione, assicurando che i dati della sessione di un utente vengano memorizzati nella cache e rimangano sullo stesso server per tutta la durata dell'interazione.
Con il global server load balancing (GSLB), che viene definito il "bilanciamento del carico per i bilanciatori di carico", gli ADC possono distribuire le richieste su più server situati in diverse ubicazioni geografiche in modo che gli utenti vengano automaticamente indirizzati al data center più vicino o con le migliori prestazioni.
L'elaborazione Transport Layer Security (TLS) e Secure Sockets Layer (SSL) a volte può mettere a dura prova le risorse di un server web. Con l'offload SSL, gli ADC sostituiscono i server di back-end e fungono da endpoint SSL o TLS per gestire la crittografia e la decrittografia, liberando le risorse della CPU per l'elaborazione dei dati delle app e migliorando le prestazioni del server.
Gli ADC ottimizzano le connessioni di rete utilizzando processi di multiplexing del TCP, che razionalizzano numerose connessioni TCP lato client (raggruppandole o riutilizzandole) in un numero inferiore di connessioni lato server. Utilizzando una serie di connessioni server persistenti, l'ADC può multiplexare dinamicamente le richieste del client su queste connessioni per ridurre il sovraccarico del server.
Gli ADC possono memorizzare nella cache in un luogo più vicino all'utente i contenuti da lui richiesti più di frequente (come immagini, video e siti web), eliminando la necessità di generarli o recuperarli ripetutamente dai server. Queste prassi di caching possono ridurre significativamente il carico di elaborazione sui server di origine e migliorare i tempi di risposta per gli utenti finali.
Gli ADC comprimono i contenuti web (HTML, CSS e JavaScript, ad esempio) prima che vengano inviati al client, riducendo la richiesta di larghezza di banda e accelerandone la distribuzione, soprattutto per gli utenti con connessioni Internet più lente.
Gli ADC includono spesso firewall per applicazioni DNS e firewall per applicazioni web (WAF), che proteggono da vulnerabilità di sicurezza comuni come SQL injection, avvelenamento dei cookie, cross-site scripting (XSS) e altri attacchi al livello applicativo, ispezionando il traffico in entrata alla ricerca di pattern maligni e bloccando le richieste potenzialmente dannose.
Gli ADC possono inoltre aiutare a proteggere le app dagli attacchi DDoS (Distributed Denial-of-Service), filtrando il traffico dannoso prima che travolga l'infrastruttura applicativa. Con controlli di accesso specifici per le app, protocolli di limitazione della velocità e funzionalità di gestione dei bot, gli ADC sono fondamentali per creare architetture zero-trust e prevenire abusi e attacchi di rete.
Gli ADC assegnano priorità al traffico per garantire che le applicazioni critiche ottengano la larghezza di banda di cui hanno bisogno anche durante i momenti di picco, in modo che i dati temporalmente sensibili e mission-critical passino più velocemente attraverso la rete. Utilizzando policy di qualità del servizio (Quality of service, QoS), gli ADC possono anche aiutare a gestire la larghezza di banda e prevenire la congestione della rete.
Gli ADC possono interagire con i servizi di directory (come una active directory on-premise) per controllare l'accesso alle app degli utenti e fornire punti di autenticazione centrali per l'autenticazione dei clienti e la verifica delle autorizzazioni. Inoltre, essi supportano protocolli più recenti come l'autenticazione multifattoriale (MFA) e il single sign-on (SSO) per una maggiore sicurezza della rete.
Il passaggio ad applicazioni cloud-native ha comportato che gli application delivery controller si evolvessero per supportare ambienti containerizzati e architetture di microservizi. Sebbene gli ADC basati su hardware e software siano ancora efficaci sotto molti aspetti, essi sono stati progettati per applicazioni "monolitiche" e spesso faticano a tenere il passo con la natura dinamica delle odierne applicazioni, create appositamente per il cloud.
Per risolvere questo problema, i provider di servizi come Citrix, VMware, Amazon Web Services (AWS), Microsoft Azure e IBM, tra gli altri, hanno sviluppato ADC nativi per il cloud (sotto forma di IaaS, PaaS e SaaS) che offrono agilità , scalabilità e funzionalità di automazione avanzate. Gli ADC moderni sono progettati per integrarsi perfettamente con le API dei provider di cloud e gli strumenti di orchestrazione dei container (come Kubernetes) per offrire funzionalità superiori di rilevamento dei servizi, scalabilità automatica e gestione del traffico.
Nonostante la loro origine come bilanciatori di carico, gli application delivery controller si sono costantemente evoluti per soddisfare le esigenze dinamiche delle infrastrutture IT e delle soluzioni di application delivery. Gli ADC odierni sono piattaforme multiuso per la distribuzione di app ed offrono prestazioni, sicurezza e ottimizzazione della distribuzione delle applicazioni in ambienti complessi e multicloud.
Qualsiasi azienda che gestisca una content delivery network (CDN) complessa, distribuita o su larga scala può utilizzare gli ADC per garantire che le applicazioni di rete siano costantemente disponibili e funzionino bene.
Gli ADC possono aiutare le aziende nei seguenti modi:
Gli ADC possono reindirizzare il traffico di rete verso i cluster di server posti nei data center. In particolare, possono collaborare con altri ADC per ottimizzare il percorso del traffico lungo Internet, consentendo a ciascun ADC di instradare le richieste verso il centro dati più vicino al cliente e di ridurre al minimo la latenza e il tempo di andata e ritorno.
Gli ADC gestiscono client veloci e lenti regolando di conseguenza i timeout e le dimensioni del buffer. I controller possono anche terminare le connessioni per liberare risorse non necessarie e multiplare le connessioni per ottenere una maggiore efficienza di rete.
Gli ADC monitorano continuamente lo stato di salute in tempo reale dei server delle applicazioni, per garantire che il traffico venga instradato solo verso server reattivi e disponibili. Possono eseguire il ping dei server web, tentare di stabilire connessioni TCP ed effettuare richieste a livello di app per verificare che un server stia operando in modo ottimale.
Se un server si guasta o inizia a funzionare in modo non ottimale, l'ADC può reindirizzare il traffico verso altri server, e può persino inizializzare il riavvio del server e altre azioni di ripristino (a patto che sia configurato per farlo).
I design multitenancy consentono a diversi gruppi all'interno di un'organizzazione(DevOps, marketing e vendite o team di applicazioni specifiche come il servizio clienti, l'inventario e i pagamenti) di condividere la stessa infrastruttura applicativa. Il consolidamento di un maggior numero di servizi su un minor numero di dispositivi, sia virtuali che fisici, aiuta le organizzazioni ad aumentare l'agilità della rete e a ridurre i costi legati all'amministrazione, all'acquisizione e all'assistenza continuativa.
L'edge computing implica l'elaborazione dei dati vicino alla fonte (ai margini della rete), invece di affidarsi esclusivamente a un data center centrale. Gli ADC distribuiti sul perimetro della rete possono ottimizzare il traffico locale, gestire le policy di sicurezza e di conformità locali e garantire che le app funzionino in modo efficiente, anche in ambienti distribuiti. Ciò è particolarmente utile per le applicazioni e i servizi IoT che richiedono funzionalità di elaborazione in tempo reale.
Gli ADC si sono evoluti per essere più programmabili e più facilmente integrabili con le architetture SDN, che separano il livello di controllo della rete dal livello dei dati, per consentire una gestione delle risorse più centralizzata e flessibile. Ora, gli ADC possono essere configurati e gestiti dinamicamente con controller software, consentendo risposte più agili alle fluttuazioni del traffico di rete e alle richieste delle app.
Le tecnologie di intelligenza artificiale e di apprendimento automatico possono aiutare gli ADC a prevedere i modelli di traffico, rilevare potenziali minacce alla sicurezza e automatizzare le attività di gestione della rete, migliorando l'efficienza e riducendo la necessità di intervento umano.
Gli Application Delivery Controller aiutano le aziende a ottimizzare il routing del traffico e a massimizzare la disponibilità della rete, in particolare per le imprese che gestiscono volumi elevati di traffico web, ospitano applicazioni mission-critical o richiedono elevati livelli di sicurezza dei dati.
Gli ADC offrono alle aziende:
Gli ADC raccolgono dati su un'ampia gamma di parametri (come il volume di traffico, lo stato dei server e gli eventi di sicurezza), che aiutano le aziende ad acquisire informazioni dettagliate sulla funzionalità della rete.
Gli ADC impiegano una serie di tecniche, come la commutazione dei contenuti, per comprimere, riciclare e memorizzare nella cache i dati e accelerare le app di rete e i siti web.
Gli ADC possono espandere automaticamente i servizi applicativi disponibili per garantire un routing del traffico efficiente, in particolare per le reti ad alta latenza e per le reti mobili.
Gli ADC offrono funzionalità di failover, per fare in modo che in caso di guasto a un server un'azienda possa continuare a operare e i suoi utenti sperimentino il minimo ritardo possibile. Gli ADC duplicano e sincronizzano le sessioni utente tra i server in modo che, se un server va offline, le responsabilità di esecuzione possano passare a un duplicato della sessione.
Gli ADC costituiscono la prima linea di difesa contro gli attacchi dannosi, dal momento che utilizzano WAF e funzionalità di rilevamento e di prevenzione delle intrusioni per proteggere i dati di rete.
Ottimizza l'esperienza degli utenti finali e migliora la resilienza di rete a un costo inferiore con IBM® NS1 Connect® GSLB, un nuovo approccio basato su DNS e sui dati in tempo reale sulle prestazioni dei dispositivi.
Il servizio IBM NS1 Connect Managed DNS offre connessioni DNS resilienti, veloci e autorevoli per prevenire le interruzioni di rete e mantenere sempre online la tua attività.
Collega l'osservabilità full-stack con la gestione automatizzata delle risorse delle applicazioni per affrontare i problemi di prestazioni prima che influiscano sull'esperienza del cliente.
Consenti ai tuoi team di modernizzare rapidamente le applicazioni esistenti e fornire nuove applicazioni native per il cloud.
I software APM aiutano un'organizzazione a garantire che le applicazioni critiche soddisfino le aspettative stabilite in termini di prestazioni, disponibilità ed esperienza del cliente o dell'utente.
Scopra come disporre di un "bilanciatore di carico per bilanciatori di carico" mantiene il tuo traffico distribuito in modo efficiente e assicura le prestazioni che i tuoi clienti si aspettano.
Per ottimizzazione della rete si intende l'insieme di strategie, strumenti, tecniche e best practice impiegato per monitorare, gestire e migliorare le prestazioni e l'affidabilità di una rete.
Per sicurezza informatica si intende qualsiasi tecnologia, misura o pratica volta a prevenire attacchi informatici su sistemi, applicazioni, dispositivi di elaborazione, dati sensibili e asset finanziari di individui e organizzazioni, o diretta a mitigarne l'impatto.
L'osservabilità è la capacità di comprendere lo stato interno o la condizione di un sistema complesso basandosi unicamente sulla conoscenza dei suoi output esterni.
Il server hosting è un servizio IT generalmente offerto da un provider di servizi cloud, e che fornisce l'accesso remoto a server virtuali o fisici off-premise e alle risorse associate dietro pagamento di un abbonamento mensile o una tariffazione a consumo.