{"id":6693,"date":"2024-02-02T09:00:00","date_gmt":"2024-02-02T08:00:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=6693"},"modified":"2024-02-05T17:01:05","modified_gmt":"2024-02-05T16:01:05","slug":"un-tuffo-nelle-architetture-cloud-disaccoppiate-con-gli-event-bus","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/un-tuffo-nelle-architetture-cloud-disaccoppiate-con-gli-event-bus\/","title":{"rendered":"Un tuffo nelle architetture cloud disaccoppiate con gli Event Bus"},"content":{"rendered":"\n
Per trasformarsi ed essere all’avanguardia nel mondo del Cloud Computing le aziende devono assicurarsi scalabilit\u00e0, resilienza e flessibilit\u00e0 dei loro sistemi.<\/p>\n\n\n\n
Per far ci\u00f2, sempre pi\u00f9 organizzazioni stanno migrando da architetture monolitiche a sistemi distribuiti.<\/p>\n\n\n\n
Nel passaggio da applicazioni monolitiche a sistemi distribuiti, padroneggiare le strategie e i pattern di disaccoppiamento diventa cruciale.<\/p>\n\n\n\n
Il disaccoppiamento (decoupling) \u00e8 un cambiamento strategico che divide i componenti all’interno di un
sistema, facendoli funzionare in modo indipendente e mantenendo l’interoperabilit\u00e0.<\/p>\n\n\n\n
Questo articolo \u00e8 ispirato da una sessione dell’AWS re:Invent 2023 Dal titolo “Advanced integration patterns & trade-offs for loosely coupled systems”<\/p>\n\n\n\n
In questo articolo esploreremo le architetture cloud disaccoppiate concentrandoci sulla funzione
degli event bus. Gli event bus fungono da base per il coordinamento e la comunicazione delle applicazioni in un sistema distribuito.<\/p>\n\n\n\n
Questo articolo spiegher\u00e0 le complessit\u00e0 della moderna architettura cloud ai tecnici veterani e ai
leader aziendali che desiderano comprenderne le basi. Evidenzier\u00e0, inoltre, i vantaggi concreti
dell’adozione di un approccio disaccoppiato.<\/p>\n\n\n\n
Il processo di scomposizione dell’applicazione monolitica in microservizi pu\u00f2 sembrare Per citare solo alcuni di questi:<\/p>\n\n\n\n Questa indipendenza \u00e8 fondamentale nell’ambiente dinamico ed elastico del cloud, dove Un modello di progettazione comune \u00e8 quello dei “componenti a basso accoppiamento”: i componenti devono essere progettati per operare indipendentemente l’uno dall’altro, interagendo con una dipendenza minima o nulla. <\/p>\n\n\n\n In questo senso, i componenti hanno una conoscenza minima l’uno dell’altro; sanno solo come scambiare informazioni tra loro attraverso interfacce ben definite o contratti che standardizzano la comunicazione: strutture di messaggi, formato dei dati e cos\u00ec via.<\/p>\n\n\n\n Come accennato in precedenza, l’accoppiamento pu\u00f2 essere visto sotto molti aspetti diversi: dall’accoppiamento tecnologico, in cui le applicazioni condividono lo stesso linguaggio di programmazione o la stessa tecnologia, all’accoppiamento della comunicazione e della conversazione: la comunicazione \u00e8 sincrona o asincrona? Come comunichiamo: risultati completi, paginazione, caching? E il meccanismo di riprova?<\/p>\n\n\n\n Dato che lo scopo di questo articolo \u00e8 incentrato sulla comunicazione tra sistemi, ci concentreremo sulle strategie di disaccoppiamento correlate.<\/p>\n\n\n\n Parlando di comunicazione tra sistemi, gli event bus sono la soluzione perfetta per ottenere il disaccoppiamento.<\/p>\n\n\n\n Nelle architetture cloud, i sistemi comunicano e si integrano tra loro utilizzando gli eventi. Gli event bus possono essere utilizzati come sistema di interconnessione tra produttori e consumatori di eventi, orchestrando il flusso di eventi tra le parti.<\/p>\n\n\n\n La caratteristica principale \u00e8 che, poich\u00e9 il bus si trova nel mezzo tra produttori e consumatori, \u00e8 possibile collegare pi\u00f9 sistemi in una relazione molti-a-molti<\/em> con il minimo sforzo: i produttori invieranno i loro eventi al bus dedicato e tutti i consumatori interessati a un evento specifico lo riceveranno ed elaboreranno.<\/p>\n\n\n\n A titolo di esempio, si pensi a un sito di e-commerce che deve elaborare un ordine sotto diversi aspetti: elaborazione del pagamento, gestione dell’inventario e spedizione dell’ordine.<\/p>\n\n\n\n Lo stesso vale per i consumatori che possono essere interessati allo stesso tipo di evento, prodotto da pi\u00f9 sistemi. Un esempio di ci\u00f2 pu\u00f2 essere un sistema di notifiche comune per l’intera architettura.<\/p>\n\n\n\n In questo senso, si pu\u00f2 notare come l’uso degli event bus \u00e8 simile a quello di un sistema Pub\/Sub.<\/p>\n\n\n\n <\/p>\n\n\n
molto impegnativo all’inizio. Comporta per\u00f2 diversi vantaggi che possono essere riassunti come
“indipendenza dai componenti<\/strong>“. <\/p>\n\n\n\n\n
Questo di solito si traduce in un migliore utilizzo delle risorse e in una riduzione dei costi ed \u00e8 anche un fattore-chiave per l’alta disponibilit\u00e0 dell’intero sistema.<\/li>\n\n\n\n
l’agilit\u00e0, unita alla scalabilit\u00e0 fornita dai servizi AWS, aiuta realmente a sviluppare e migliorare
rapidamente l’applicazione.<\/p>\n\n\n\nComponenti a basso accoppiamento<\/h2>\n\n\n\n
Gli Event Bus: la spina dorsale delle architetture distribuite nel Cloud<\/h2>\n\n\n\n