https://www.accorddata.it/wp-content/uploads/2020/05/Senza-titolo-1.png

Le tecnologie

Puoi anche avere un quantità di informazioni incredibilmente grande e complessa, ma se hai gli strumenti e le metodologie adeguate, allora non è più un problema.
Aaron Koblin artista, designer, programmatore e imprenditore specializzato in dati e tecnologie digitali. Co-fondatore di Within.

AccordDATA
sceglie i "Microservizi"

La soluzione semplice, moderna e veloce con cui organizzare e compartizzare le proprie applicazioni, aumentandone la gestibilità e le performance.

La crescita del cloud computing, le pratiche di distribuzione continua, l’approccio alla gestione della complessità del software basato su DDD (Domain-Driven Design), l’organizzazione di aziende in team di sviluppo agili e autonomi sono il contesto in cui il modello di architettura dei microservizi è emerso fortemente.

I microservizi sono un approccio architetturale alla creazione di applicazioni. Ciò che distingue l’architettura basata su microservizi dagli approcci monolitici tradizionali è la divisione dell’applicazione nelle sue funzioni di base. Ogni funzione, chiamata servizio, può essere compilata e implementata in modo indipendente. Pertanto, i singoli servizi possono funzionare, o meno, senza compromettere gli altri.

Un microservizio è quindi una funzione di base di un’applicazione, che viene eseguita in modo indipendente dagli altri servizi.

In parole in breve, i microservizi sono servizi “piccoli” e autonomi che interagiscono tra loro e che hanno l’obiettivo di fare qualcosa e farlo bene; sono sistemi realmente distribuiti.

Ogni microservizio è un’entità separata che viene in genere pubblicata su una piattaforma PaaS o eseguita da un processo di sistema dedicato.

La comunicazione tra i servizi viene eseguita attraverso la rete al fine di garantire l’indipendenza tra i servizi ed evitare qualsiasi forma di sovrapposizione.

Ogni microservizio viene proposto all’esterno come una scatola nera, infatti espone solo un’API (Application Programming Interface), astraendo i dettagli di come vengono implementate le funzionalità e il linguaggio o la tecnologia specifica utilizzata.

I microservizi possono comunicare tra loro, in genere in modalità state-less, consentendo la creazione di applicazioni con una maggiore tolleranza di errore e meno dipendenti da un singolo ESB (Enterprise Service Bus). Inoltre, comunicano tramite API (Application Programming Interface) indipendenti dal linguaggio e ciò consente ai team di sviluppo di scegliere i propri strumenti.

Oggi, i contenitori Linux consentono di eseguire più parti di un’applicazione in modo indipendente, sullo stesso hardware, con un controllo molto maggiore sui singoli componenti e sui cicli di vita. In combinazione con le API, i microservizi containerizzati sono alla base delle applicazioni native cloud.

Architettura
monolitica
https://www.accorddata.it/wp-content/uploads/2020/06/Architettura-monolitica.jpg
Architettura
microservizi
https://www.accorddata.it/wp-content/uploads/2020/06/Architettura-Microservizi.jpg

Perché
Microservizi

I vantaggi che si possono trovare nell'utilizzo di un sistema di sviluppo distribuito sono molti.
Sviluppo aperto

Grazie alle API indipendenti dal linguaggio, gli sviluppatori sono liberi di scegliere il linguaggio e la tecnologia ottimali per la funzione da creare.

Spesso, la principale barriera all’adozione di nuove tecnologie sta nel rischio associato all’utilizzo di qualcosa di nuovo e con il quale si ha poca esperienza. Confinando questo rischio a una piccola parte di un sistema software, che può essere riscritto in un tempo relativamente breve, il rischio è molto limitato e quindi è una sfida che deve essere accettata.

Prestazioni garantite

L’utilizzo di linguaggi e tecnologie diversi e dedicati consente di utilizzare gli stack con le migliori prestazioni per implementare funzioni specifiche.

Poiché un’applicazione di grandi dimensioni è suddivisa in moduli più piccoli, è molto più semplice per gli sviluppatori comprendere, aggiornare e migliorare questi componenti e ciò consente cicli di sviluppo più rapidi, soprattutto in combinazione con i metodi di sviluppo Agile.

Velocità

In quanto consente di abbreviare i cicli di sviluppo, un’architettura basata su microservizi supporta distribuzioni e aggiornamenti più agili.

In generale, nell’architettura dei microservizi, ogni singolo servizio di prodotto è indipendente dagli altri, di conseguenza può raggiungere l’ambiente di produzione/test indipendentemente dagli altri che attualmente lavorano nello stesso ambiente, senza che questa attività abbia effetti dirompenti sul resto del sistema. Avere un processo di distribuzione snello e veloce consente di aggiungere o modificare le caratteristiche di un sistema software in modo efficace ed efficiente, rispondendo alle esigenze dinamiche del mercato e agli utenti che sono sempre più attenti alle loro esigenze.

Resilienza

Ogni servizio, se compilato correttamente, è indipendente e non influisce sugli altri servizi nell’infrastruttura. Di conseguenza, qualsiasi errore del componente non comporta il blocco dell’intera app, come nel caso del modello monolitico standard.

In molti casi è possibile isolare il problema e lavorare su di esso mentre il resto del sistema continua a funzionare, generando così un disagio minimo verso gli utenti finali.

Scalabilità

I microservizi possono essere distribuiti su più server e infrastrutture, in base alle mutevoli esigenze aziendali.

Il modello di microservizio consente il provisioning delle parti che costituiscono l’applicazione in modo dinamico e intelligente.

Semplicità di implementazione

Utilizzando l’approccio microservizi ogni singolo servizio può raggiungere l’ambiente di produzione in modo indipendente, quindi in caso di problema è facilmente isolato e le azioni di rollback o risoluzione più veloci possono essere eseguite.

Modularità

Attraverso l’architettura dei microservizi è possibile riutilizzare le funzionalità già sviluppate e testate in precedenza.

È possibile che lo stesso servizio venga utilizzato in modi diversi e per scopi diversi. Si consideri, ad esempio, un sistema software che deve essere in grado di dialogare non solo con il mondo web, ma anche con applicazioni mobili, dispositivi indossabili e così via.

Intercambiabilità

Quando un sistema software è organizzato in microservizi, il costo della sostituzione di un servizio con un altro più efficiente non è più un problema, così come il costo della rimozione di un servizio inutile viene ridotto.

Soluzioni semplici per
sfide complesse

Docker logo

Docker

Struttura open source a microservizi organizzate in container compartizzati.
https://www.accorddata.it/wp-content/uploads/2020/06/postgresql.png

PostgreSQL

Potente sistema di database relazionale ad oggetti open source.
PostgREST logo

PostgREST

Struttura open source di API REST automatica basata su database PostgreSQL.
https://www.accorddata.it/wp-content/uploads/2020/06/nodejs.png

Node.js®

Ambiente runtime open source per l'esecuzione di codice JavaScript.
https://www.accorddata.it/wp-content/uploads/2020/06/react.png

React

Libreria javascript open source per lo sviluppo di interfacce utente.
Keycloak logo

Keycloak

Gestore di identità e accessi open source per applicazioni e servizi moderni.

I nostri Clienti

Labor Project logo
Doing part of Capgemini logo
Enel logo
Image S logo
cappellini
NttData logo
marlex
Tibco logo
Bertini macchine logo
Berto Salotti logo
EnelX logo
brenna-e-marelli
bcm
tabu
https://www.accorddata.it/wp-content/uploads/2020/05/AccordData_White_Squared-640x668.png
AccordDATA S.r.l.
Sede operativa

Via Provinciale, 6/A
23843 – Dolzago (LC)
Sede legale
Via dei Mille, 2
22070 – Appiano Gentile (CO)

R.E.A.: CO-333952
Capitale Sociale: €12.000,00
C.F./P.I.: 03803950132
SDI: SUBM70N

LEGALS
Essential SSL