Sceglie un stile architettonicu (parte 2)

Salutami, Habr. Oghje cuntinuu una seria di publicazioni chì aghju scrittu apposta per l'iniziu di un novu flussu di u corsu. "Architettu di u software".

Introduzione

L'scelta di u stilu architettonicu hè una di e decisioni tecniche fundamentali quandu custruisce un sistema d'infurmazione. In questa serie di articuli, pruponu di analizà i stili architecturali più populari per l'applicazioni di custruzzione è risponde à a quistione di quandu quale stile architettonicu hè più preferitu. In u prucessu di presentazione, pruvaraghju à disegnà una catena logica chì spiega u sviluppu di stili architecturali da i monoliti à i microservizii.

В l'ultima volta avemu trattatu cù u monolitu è ​​ghjuntu à a cunclusione chì u monolitu hà una quantità di prublemi: dimensione, cunnessione, implementazione, scalabilità, affidabilità è rigidità.

Sta volta pruponu di parlà di e pussibulità d'urganizà un sistema cum'è un inseme di moduli / biblioteche (architettura orientata à cumpunenti) o servizii (architettura orientata à u serviziu).

Architettura orientata à i cumpunenti

L'architettura orientata à i cumpunenti implica l'esecuzione di un sistema cum'è un inseme di cumpunenti chì ponu esse aduprati in i prughjetti attuali è futuri. Quandu si scumpressanu un sistema in cumpunenti, i seguenti sò cunsiderati: a so reutilizazione, a so sustituibilità, l'indipendenza di u cuntestu, l'estensibilità, l'incapsulazione è l'indipendenza.

Cù l'usu propiu di cumpunenti, u prublema di a "big ball of dirt" (grande grandezza + high coupling) hè risolta, è i cumpunenti stessi ponu esse unità di assemblea (moduli, biblioteche) è unità di implementazione (servizii). L'unità di implementazione ùn sò micca sempre mappate à u prucessu in esecuzione: per esempiu, una applicazione web è una basa di dati sò implementati inseme.

A maiò spessu, i monoliti sò sviluppati cum'è un inseme di moduli. Stu approcciu porta à u sviluppu indipendente, ma i prublemi di scala è implementazione indipendenti, a tolleranza di difetti è l'indipendenza da a pila di tecnulugia generale restanu. Hè per quessa chì u modulu hè un cumpunente parzialmente indipendenti.

U prublema più grande cù un tali monolitu hè chì a divisione in moduli hè puramente logica è pò esse facilmente violata da i sviluppatori. Un modulu core pò apparisce, chì gradualmente si trasforma in un basura di basura, u graficu di dependenzii trà i moduli pò cresce, è cusì. Per evitari tali prublemi, u sviluppu deve esse realizatu sia da una squadra assai matura, sia sottu a guida di un "architettu" chì hè impegnatu in una revisione di codice full-time è batte e mani di sviluppatori chì violanu a struttura logica.

U monolitu "ideale" hè un inseme di moduli separati logicamente, ognunu di i quali guarda in a so propria basa di dati.

Architettura orientata à u serviziu

Se u sistema deve esse urganizatu in a forma di un settore di servizii, allora parlemu di una architettura orientata à u serviziu. I so principii sò l'interoperabilità di l'applicazioni centrata in l'utilizatori, a riutilizazione di u serviziu cummerciale, l'indipendenza di a pila di tecnulugia è l'autonomia (evoluzione indipendente, scalabilità è implementazione).

L'architettura orientata à u serviziu (SOA = architettura orientata à u serviziu) risolve tutti i prublemi identificati di un monolitu: solu un serviziu hè affettatu quandu si faci un cambiamentu, è una API ben definita sustene una bona incapsulazione di cumpunenti.

Ma micca tuttu hè cusì lisu: SOA crea novi prublemi. I chjamati remoti sò più caru cà quelli lucali, è a redistribuzione di e rispunsabilità trà cumpunenti hè diventata significativamente più caru.

In modu, a pussibilità di implementazione indipendente hè una funzione assai impurtante di u serviziu. Se i servizii devenu esse implementati inseme o, in più, in una certa sequenza, u sistema ùn pò esse cunsideratu orientatu à u serviziu. In questu casu, parlanu di un monolitu distribuitu (cunsideratu un anti-pattern micca solu da u puntu di vista di SOA, ma ancu da u puntu di vista di l'architettura di microserviziu).

L'architettura orientata à u serviziu hè ben supportata da a cumunità architettonica è i venditori. Questu implica a prisenza di parechji corsi è certificazioni, mudelli ben sviluppati. L'ultime include, per esempiu, u busu di serviziu di l'impresa ben cunnisciutu (ESB = bus di serviziu di l'impresa). À u listessu tempu, l'ESB hè un bagagliu da i venditori; ùn deve micca necessariu esse usatu in SOA.

A pupularità di l'architettura orientata à u serviziu hà culminatu in u 2008, dopu chì hà cuminciatu à calà, chì hè diventatu significativamente più drammaticu dopu l'avventu di i microservizi (~ 2015).

cunchiusioni

Dopu avemu discututu e pussibulità di urganizà sistemi d'infurmazione in forma di servizii è moduli, pruponu di passà infine à i principii di l'architettura di u microserviziu è prestu una attenzione particulari à a diffarenza trà l'architettura di u microserviziu è l'architettura orientata à u serviziu in a parti dopu.

Sceglie un stile architettonicu (parte 2)

Source: www.habr.com

Add a comment