Sceglie un stile architettonicu (parte 3)

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 parlatu di i sfarenti tippi di monoliti è l'usu di cumpunenti per custruisce, sia cumpunenti di custruisce sia cumpunenti di implementazione. Capemu l'architettura orientata à u serviziu.

Avà avemu da definisce finalmente e caratteristiche principali di una architettura di microserviziu.

Relazione di l'architetture

Hè necessariu di capisce chì basatu nantu à e definizioni date in l'articuli precedenti, ogni serviziu hè un cumpunente, ma micca ogni serviziu hè un microserviziu.

Caratteristiche di l'Architettura Microservice

E caratteristiche principali di l'architettura di microserviziu sò:

  • Organizatu intornu à e capacità di l'affari
  • Prudutti micca Prughjetti
  • Punti finali intelligenti è tubi stupidi
  • Governanza Descentralizata
  • Gestione di dati descentralizata
  • L'automatizazione di l'infrastruttura
  • Disegnu per fallimentu
  • Architettura cù u sviluppu evolutivu (Design Evolutionary)

U puntu 1 vene da l'architettura orientata à u serviziu perchè i microservizi sò un casu speciale di servizii. Altri punti meritanu una considerazione separata.

Organizatu intornu à e capacità di l'affari

Avà hè necessariu di ricurdà a lege di Conway: l'urganisazioni chì creanu sistemi urganizanu a so architettura, copiendu a struttura di interazzione in queste urganisazioni. Cum'è un esempiu, pudemu ricurdà u casu di creà un compilatore: una squadra di sette persone hà sviluppatu un compilatore di sette passi, è una squadra di cinque hà sviluppatu un compilatore di cinque passi.

Se parlemu di monoliti è microservizi, allora se u sviluppu hè urganizatu da dipartimenti funziunali (backend, frontend, amministratori di basa di dati), allora avemu un monolitu classicu.

Per ottene microservizi, i squadre devenu esse urganizati per capacità cummerciale (ordini, spedizioni, squadra di catalogu). Questa urganizazione permetterà à e squadre di fucalizza nantu à custruisce parti specifiche di l'applicazione.

Prudutti micca Prughjetti

Un approcciu di prughjettu in u quale un squadra trasferisce a funziunalità sviluppata à l'altri squadre hè completamente inadatta in u casu di una architettura di microserviziu. A squadra deve sustene u sistema in tuttu u so ciclu di vita. Amazon, unu di i capimachja in l'implementazione di i microservizi, hà dichjaratu: "custruite, eseguite". L'approcciu di u produttu permette à a squadra di sente i bisogni di l'affari.

Punti finali intelligenti è tubi stupidi

L'architettura SOA hà prestatu una grande attenzione à i canali di cumunicazione, in particulare l'Enterprise Service Bus. Chì spessu porta à l'Erroneous Spaghetti Box, vale à dì, a cumplessità di u monolitu si trasforma in a cumplessità di e cunnessione trà i servizii. L'architettura di microserviziu usa solu metudi di cumunicazione simplici.

Governanza Descentralizata

E decisioni chjave nantu à i microservizi duveranu esse fatte da e persone chì in realtà sviluppanu i microservizi. Quì, e decisioni chjave significanu scelte
linguaggi di prugrammazione, metodulugia di implementazione, cuntratti di interfaccia publica, etc.

Gestione di dati descentralizata

L'approcciu standard, in quale l'applicazione s'appoghja nantu à una sola basa di dati, ùn pò micca piglià in contu e specificità di ogni serviziu specificu. MSA implica a gestione di dati decentralizata, cumpresu l'usu di diverse tecnulugia.

L'automatizazione di l'infrastruttura

MSA supporta i prucessi cuntinui di implementazione è consegna. Questu pò esse ottenutu solu da l'automatizazione di i prucessi. À u listessu tempu, implementà un gran numaru di servizii ùn pare più qualcosa di paura. U prucessu di implementazione duveria diventà noioso. U sicondu aspettu hè ligatu à a gestione di serviziu in un ambiente di produttu. Senza l'automatizazione, a gestione di i prucessi in esecuzione in diversi ambienti operativi diventa impussibile.

Disegnu per fallimentu

Numerosi servizii MSA sò propensi à fallimentu. À u listessu tempu, a gestione di l'errore in un sistema distribuitu ùn hè micca un compitu trivial. L'architettura di l'applicazione deve esse resistente à tali fallimenti. Rebecca Parsons pensa chì hè assai impurtante chì ùn avemu più ancu aduprà a cumunicazione in-processu trà i servizii; invece, ricorremu à HTTP per a cumunicazione, chì ùn hè micca cusì affidabile.

Architettura cù u sviluppu evolutivu (Design Evolutionary)

L'architettura di u sistema MSA deve sviluppà evolutivamente. Hè cunsigliatu di limità i cambiamenti necessarii à e fruntiere di un serviziu unicu. L'impattu annantu à l'altri servizii deve ancu esse cunsideratu. L'approcciu tradiziunale hè di pruvà à risolve stu prublema cù versioning, ma MSA suggerisce l'usu di versioning in
cum'è l'ultimu risorsu.

cunchiusioni

Dopu tuttu ciò chì sopra, pudemu furmulà ciò chì sò i microservizi. L'architettura di u microserviziu hè un approcciu per sviluppà una sola applicazione cum'è una cullizzioni di picculi servizii, ognuna in u so propiu prucessu è interagisce cù meccanismi ligeri, spessu una API di risorse HTTP. Questi servizii sò custruiti nantu à e capacità di l'affari è ponu esse implementati indipindentamente usendu cumplettamente
mecanismu di implementazione automatizatu. Ci hè un livellu minimu di gestione centralizata di questi servizii, chì ponu esse scritti in diverse lingue di prugrammazione è utilizate diverse tecnulugia di almacenamento di dati.

Sceglie un stile architettonicu (parte 3)

Leghjite a parte 2

Source: www.habr.com

Add a comment