Condividi tramite


Architettura orientata ai servizi

Suggerimento

Questo contenuto è un estratto dell'eBook, Architettura di microservizi .NET per applicazioni .NET containerizzati, disponibile in documentazione .NET o come PDF scaricabile gratuitamente leggibile offline.

Architettura di Microservizi .NET per Applicazioni .NET Containerizzate miniatura della copertina dell'eBook.

L'architettura orientata ai servizi (SOA) era un termine sovrautilato e ha significato cose diverse per persone diverse. Tuttavia, come denominatore comune, SOA significa che si struttura l'applicazione scomponendola in più servizi (in genere come servizi HTTP) che possono essere classificati come tipi diversi, ad esempio sottosistemi o livelli.

Questi servizi possono ora essere distribuiti come contenitori Docker, che risolve i problemi di distribuzione, perché tutte le dipendenze sono incluse nell'immagine del contenitore. Tuttavia, quando è necessario aumentare le prestazioni delle applicazioni SOA, potrebbero verificarsi problemi di scalabilità e disponibilità se si esegue la distribuzione in base a singoli host Docker. Questo è il punto in cui è possibile usare il software docker clustering o un agente di orchestrazione, come illustrato nelle sezioni successive in cui sono descritti gli approcci di distribuzione per i microservizi.

I contenitori Docker sono utili (ma non necessari) per le architetture tradizionali orientate ai servizi e per le architetture di microservizi più avanzate.

I microservizi derivano da SOA, ma SOA è diverso dall'architettura dei microservizi. Le funzionalità come broker centrali di grandi dimensioni, agenti di orchestrazione centrale a livello di organizzazione e il bus di servizio aziendale (ESB) sono tipici in SOA. Ma nella maggior parte dei casi, questi sono considerati modelli anti-pattern nella comunità dei microservizi. In effetti, alcune persone sostengono che "L'architettura a microservizi è SOA fatto bene."

Questa guida è incentrata sui microservizi, perché un approccio SOA è meno prescrittivo rispetto ai requisiti e alle tecniche usate in un'architettura di microservizi. Se si sa come creare un'applicazione basata su microservizi, si sa anche come creare un'applicazione più semplice orientata ai servizi.