Architettura dei microservizi: apprendi, crea e distribuisci i microservizi



Questo blog spiega in dettaglio l'architettura dei microservizi. Include anche i pro e i contro e un caso di studio che spiega l'architettura di UBER.

Architettura dei microservizi:

Dal mio , è necessario avere una conoscenza di base dell'architettura dei microservizi.Ma essendo un professionista con richiederà più delle semplici basi. In questo blog, entrerai nella profondità dei concetti architettonici e li implementerai utilizzando un caso di studio UBER.

In questo blog imparerai quanto segue:





  • Definizione dell'architettura dei microservizi
  • Concetti chiave dell'architettura dei microservizi
  • Pro e contro dell'architettura dei microservizi
  • UBER - Case Study

Puoi fare riferimento a , per comprendere i fondamenti e i vantaggi dei microservizi.

final infine e finalizzare in java

Sarebbe giusto solo se ti fornissi la definizione di microservizi.



Definizione di microservizi

In quanto tale, non esiste una definizione corretta di Microservices aka Microservice Architecture, ma si può dire che si tratta di un framework costituito da piccoli servizi distribuibili individualmente che eseguono operazioni diverse.

I microservizi si concentrano su un singolo dominio aziendale che può essere implementato come servizi distribuibili completamente indipendenti e implementarli su diversi stack tecnologici.

Differenze tra architettura monolitica e microservizi - Architettura di microservizi - Edureka



Figura 1: Differenza tra architettura monolitica e microservice - Architettura microservice

Fare riferimento al diagramma sopra per comprendere la differenza tra l'architettura monolitica e quella a microservizi.Per una migliore comprensione delle differenze tra le due architetture, puoi fare riferimento al mio blog precedente

Per farti capire meglio, lascia che ti spieghi alcuni concetti chiave dell'architettura dei microservizi.

Concetti chiave dell'architettura dei microservizi

Prima di iniziare a creare le proprie applicazioni utilizzando i microservizi, è necessario essere chiari sull'ambito e sulle funzionalità dell'applicazione.

Di seguito sono riportate alcune linee guida da seguire durante la discussione sui microservizi.

Linee guida durante la progettazione di microservizi

  • In qualità di sviluppatore, quando decidi di creare un'applicazione separa i domini e sii chiaro con le funzionalità.
  • Ogni microservizio progettato deve concentrarsi su un solo servizio dell'applicazione.
  • Assicurati di aver progettato l'applicazione in modo tale che ogni servizio sia distribuibile individualmente.
  • Assicurati che la comunicazione tra i microservizi avvenga tramite un server senza stato.
  • Ogni servizio può essere ulteriormente trasformato in servizi più piccoli, con i propri microservizi.

Ora che hai letto le linee guida di base durante la progettazione dei microservizi, vediamo di capire l'architettura dei microservizi.

Come funziona l'architettura dei microservizi?

Una tipica architettura di microservizi (MSA) dovrebbe essere costituita dai seguenti componenti:

  1. Clienti
  2. Fornitori di identità
  3. API Gateway
  4. Formati di messaggistica
  5. Banche dati
  6. Contenuto statico
  7. Gestione
  8. Scoperta del servizio

Fare riferimento allo schema seguente.

Figura 2: Architettura dei microservizi - Architettura dei microservizi

So che l'architettura sembra un po 'complessa, ma lasciaiosemplificalo per te.

1. Clienti

L'architettura inizia con diversi tipi di client, da diversi dispositivi che cercano di eseguire varie funzionalità di gestione come ricerca, compilazione, configurazione ecc.

2. Fornitori di identità

Queste richieste dai client vengono quindi trasmesse ai provider di identità che autenticano le richieste dei client e comunicano le richieste a API Gateway. Le richieste vengono poi comunicate ai servizi interni tramite un gateway API ben definito.

3. Gateway API

Poiché i client non chiamano i servizi direttamente, API Gateway funge da punto di ingresso per i client per inoltrare le richieste ai microservizi appropriati.

I vantaggi dell'utilizzo di un gateway API includono:

  • Tutti i servizi possono essere aggiornati all'insaputa dei clienti.
  • I servizi possono anche utilizzare protocolli di messaggistica non compatibili con il Web.
  • Il gateway API può eseguire funzioni trasversali come fornire sicurezza, bilanciamento del carico ecc.

Dopo aver ricevuto le richieste dei client, l'architettura interna è costituita da microservizi che comunicano tra loro tramite messaggi per gestire le richieste dei client.

4. Formati di messaggistica

Esistono due tipi di messaggi attraverso i quali comunicano:

  • Messaggi sincroni: Nella situazione in cui i client attendono le risposte da un servizio, i microservizi tendono solitamente a utilizzarli REST (Representational State Transfer) poiché si basa su uno stateless, client-server e Protocollo HTTP . Questo protocollo viene utilizzato in quanto è un ambiente distribuito ogni funzionalità è rappresentata con una risorsa per eseguire operazioni
  • Messaggi asincroni: Nella situazione in cui i client non aspettano le risposte da un servizio, i Microservizi tendono solitamente a utilizzare protocolli come AMQP, STOMP, MQTT . Questi protocolli vengono utilizzati in questo tipo di comunicazione poiché la natura dei messaggi è definita e questi messaggi devono essere interoperabili tra le implementazioni.

La prossima domanda che potrebbe venirti in mente è come gestiscono i dati le applicazioni che utilizzano i microservizi?

5. Trattamento dei dati

Ebbene, ogni Microservizio possiede un database privato per acquisire i propri dati e implementare le rispettive funzionalità aziendali. Inoltre, i database dei Microservizi vengono aggiornati solo tramite la loro API di servizio. Fare riferimento allo schema seguente:

Figura 3: Rappresentazione dei microservizi che gestiscono i dati - Architettura dei microservizi

I servizi forniti da Microservices vengono trasferiti a qualsiasi servizio remoto che supporti la comunicazione tra processi per diversi stack tecnologici.

6. Contenuto statico

Dopo che i microservizi comunicano al loro interno, distribuiscono il contenuto statico a un servizio di archiviazione basato su cloud che può fornirli direttamente ai client tramite Content Delivery Network (CDN) .

Oltre ai componenti di cui sopra, ci sono altri componenti che compaiono in una tipica architettura di microservizi:

7. Gestione

java cos'è un vettore

Questo componente è responsabile del bilanciamento dei servizi sui nodi e dell'identificazione dei guasti.

8. Service Discovery

Funge da guida ai microservizi per trovare la via di comunicazione tra di loro in quanto mantiene un elenco di servizi su cui si trovano i nodi.

Iscriviti al nostro canale youtube per ricevere nuovi aggiornamenti ..!

Ora, esaminiamo i pro e i contro di questa architettura per ottenere una migliore comprensione di quando utilizzare questa architettura.

Pro e contro dell'architettura dei microservizi

Fare riferimento alla tabella seguente.

Vantaggi dell'architettura dei microservizi Contro del microservizio Architettura
Libertà di utilizzare diverse tecnologieAumenta le sfide per la risoluzione dei problemi
Ogni microservizio si concentra su una singola capacità aziendaleAumenta il ritardo dovuto alle chiamate remote
Supporta singole unità dispiegabiliMaggiori sforzi per la configurazione e altre operazioni
Consente frequenti rilasci del softwareDifficile mantenere la sicurezza delle transazioni
Garantisce la sicurezza di ogni servizioDifficile tenere traccia dei dati attraverso vari confini di servizio
Parallelamente vengono sviluppati e distribuiti più serviziDifficile spostare il codice tra i servizi

Cerchiamo di capire di più sui microservizi confrontando l'architettura precedente di UBER con quella attuale.

CASO DI STUDIO UBER

Architettura precedente di UBER

Come molte startup, UBER ha iniziato il suo viaggio con un'architettura monolitica costruita per un'unica offerta in una singola città. Avere una base di codice sembrava ripulita in quel momento e ha risolto i problemi aziendali principali di UBER. Tuttavia, quando UBER ha iniziato ad espandersi in tutto il mondo, ha dovuto affrontare rigorosamente vari problemi relativi alla scalabilità e all'integrazione continua.

Figura 4: Architettura monolitica di UBER - Architettura di microservizi

Il diagramma sopra mostra la precedente architettura di UBER.

  • È presente un'API REST con cui si connettono il passeggero e il conducente.
  • Tre diversi adattatori vengono utilizzati con API al loro interno, per eseguire azioni come fatturazione, pagamenti, invio di e-mail / messaggi che vediamo quando prenotiamo un taxi.
  • Un database MySQL per memorizzare tutti i loro dati.

Quindi, se noti qui, tutte le funzionalità come la gestione dei passeggeri, la fatturazione, le funzionalità di notifica, i pagamenti, la gestione dei viaggi e la gestione dei conducenti sono state composte in un unico framework.

Dichiarazione problema

Mentre UBER ha iniziato ad espandersi in tutto il mondo, questo tipo di framework ha introdotto varie sfide. Le seguenti sono alcune delle principali sfide

  • Tutte le funzionalità dovevano essere ricostruite, distribuite e testate più e più volte per aggiornare una singola funzionalità.
  • La correzione dei bug è diventata estremamente difficile in un singolo repository poiché gli sviluppatori hanno dovuto cambiare il codice ancora e ancora.
  • Il ridimensionamento delle funzionalità contemporaneamente all'introduzione di nuove funzionalità in tutto il mondo è stato piuttosto difficile da gestire insieme.

Soluzione

Per evitare tali problemi UBER ha deciso di cambiare la sua architettura e di seguire le altre aziende in iper-crescita come Amazon, Netflix, Twitter e molte altre. Pertanto, UBER ha deciso di suddividere la sua architettura monolitica in più basi di codice per formare un'architettura di microservizi.

Fare riferimento al diagramma seguente per esaminare l'architettura dei microservizi di UBER.

Figura 5: Architettura dei microservizi di UBER - Architettura dei microservizi

come fare il potere in python
  • Il cambiamento principale che osserviamo qui è l'introduzione di API Gateway attraverso il quale sono collegati tutti i conducenti e passeggeri. Dall'API Gateway, sono collegati tutti i punti interni come la gestione dei passeggeri, la gestione dei conducenti, la gestione dei viaggi e altri.
  • Le unità sono singole unità schierabili separate che eseguono funzionalità separate.
    • Ad esempio: se desideri modificare qualcosa nei microservizi di fatturazione, devi solo distribuire solo i microservizi di fatturazione e non devi distribuire gli altri.
  • Tutte le funzionalità sono state ridimensionate individualmente, ovvero l'interdipendenza tra ciascuna funzionalità è stata rimossa.
    • Ad esempio, sappiamo tutti che il numero di persone che cercano un taxi è più comparativamente superiore a quello delle persone che prenotano effettivamente un taxi ed effettuano i pagamenti. Questo ci porta a dedurre che il numero di processi che lavorano sul microservizio di gestione dei passeggeri è maggiore del numero di processi che lavorano sui pagamenti.

In questomodo, UBER ha beneficiato del cambiamentosuoarchitettura dal monolitico ai microservizi.

Spero che ti sia piaciuto leggere questo post su Microservice Architecture.Mi verranno in mente altri blog, che conterranno anche delle pratiche.
Interessato a saperne di più sui microservizi?

Se desideri imparare i microservizi e creare le tue applicazioni, dai un'occhiata al nostro che viene fornito con formazione dal vivo con istruttore e esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere i microservizi in profondità e ti aiuterà a raggiungere la padronanza dell'argomento.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di ' Architettura dei microservizi 'E ti ricontatterò.