Salutami, Habr. Oghje cuntinuu una seria di publicazioni chì aghju scrittu apposta per l'iniziu di un novu flussu di u corsu.
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.
Source: www.habr.com