Inizia subito con i microservizi

I microservizi sono un approccio architetturale allo sviluppo di un software moderno. Ogni funzione o servizio di base rappresenta un contesto di attività correlato creato e distribuito in modo indipendente. I microservizi offrono agilità nello sviluppo e nella manutenzione delle applicazioni e sono in contrapposizione all'approccio monolitico seguito nello sviluppo di software legacy. Oggi, la modernizzazione delle applicazioni è sinonimo di microservizi.

Apprendendo sempre di più sui microservizi, scoprirai il contrasto con le architetture monolitiche, le considerazioni sull'adozione dell'architettura dei microservizi, i meccanismi di comunicazione, la metodologia di distribuzione a 12 fattori, la distribuzione in Kubernetes, la persistenza dei dati, il service mesh e le best practice per la loro progettazione.

I vantaggi dei microservizi

  • Distribuzione semplificata

    Accelerano il time-to-market per le nuove funzionalità promuovendo l'integrazione e lo sviluppo continuo a supporto di modelli di distribuzione blue-green per i servizi.

  • Ridimensiona le performance on-premise

    Ridimensionano i container di servizi o le piattaforme dati in modo indipendente per ogni servizio per soddisfare le richieste di tale funzionalità.

  • Progettati per avere la massima disponibilità

    Sostituiscono o ritirano i servizi indipendenti senza influire sull'intera applicazione, i singoli errori dei servizi vengono gestiti in modo corretto disattivando il servizio, invece di arrestare l'intera applicazione.

Scopri come creare un microservice su Oracle Cloud Infrastructure (OCI).

Il vantaggio del database convergente di Oracle

Un aspetto importante dei microservizi basati sui dati è l'implementazione della piattaforma di gestione dati per distribuire una vasta gamma di tipologie di dati, supportare diversi database in un container e offrire funzionalità di gestione autonome. Oracle Autonomous Database su OCI offre facilità di implementazione per creare microservizi intelligenti e basati sui dati.

Ottieni la coerenza delle transazioni tra le applicazioni basate su microservizi

Oracle Transaction Manager for Microservices (MicroTx) semplifica lo sviluppo e le operazioni delle applicazioni abilitando le transazioni distribuite per garantire coerenza tra i microservizi poliglotta distribuiti in Kubernetes e/o in altri ambienti.

Una piattaforma completa e aperta per i microservizi

Per la modernizzazione delle applicazioni, è necessario integrare più tecnologie per creare le giuste basi per i microservizi multicloud. Oracle LiveLabs ti dà l'accesso agli strumenti e alle tecnologie Oracle per seguire una vasta gamma di laboratori e workshop. Questi workshop mostrano come utilizzare le tecnologie aperte insieme a quelle Oracle per creare architetture più semplici in grado di offrire flessibilità di implementazione. Crea microservizi in Oracle LiveLabs con componenti cloud e ibridi disponibili in OCI, tra cui Autonomous Database, Helidon, Micronaut, MicroTx, WebLogic Server, Java, Docker, Kubernetes e Istio Service Mesh. Per iniziare il tuo percorso verso i microservizi, ci sono diversi laboratori che possono aiutarti a modernizzare le tue applicazioni aziendali monolitiche o a semplificarle se hai già iniziato questo percorso.

Tabella delle piattaforme aperte

Microservizi basati sui dati con il database convergente di Oracle

Questo Oracle LiveLab crea un'applicazione mobile per la distribuzione dei prodotti alimentari chiamata GrabDish per evidenziare la semplicità dell'architettura dei dati, con uno stack di sviluppo moderno. Contrappone la complessità dei database ad hoc utilizzati tradizionalmente come architetture Lambda e Kappa nel settore (con sistemi separati per sistemi relazionali, testuali, spaziali, grafici e di messaggistica) alla semplicità di creare microservizi basati sui dati con Oracle Converged Database. Il laboratorio è rivolto a sviluppatori e architetti che vogliono progettare nuovi microservizi. Inoltre, aiuta i DBA a comprendere il ruolo di Oracle Database nei progetti di modernizzazione delle applicazioni. Autonomous Database, i cluster Kubernetes con container docker, Oracle Advanced Queuing e Transactional Event Queues e Helidon vengono utilizzati per mostrare i microservizi Java, Node.js e Python che lavorano con i dati relazionali, JSON, spaziali e grafici, con un set di tracciamento e monitoraggio impostato con Kiali, Jaeger, Prometheus e Grafana. Vengono illustrati modelli di microservizi quali il sourcing di eventi, CQRS e SAGA.

Microservizi basati sui dati con il database convergente di Oracle

Coerenza delle transazioni tra i microservizi con Oracle Transaction Manager for Microservices

Poiché l'architettura dei microservizi sta guadagnando popolarità, gli sviluppatori spesso incontrano problemi associati alla coerenza dei dati poiché ogni microservizio in genere dispone di un proprio database o di altre risorse. MicroTx fornisce un microservizio di coordinamento delle transazioni per mantenere la coerenza nello stato dei vari database che partecipano a una transazione. MicroTx supporta diversi protocolli di transazione distribuiti, ad esempio XA, azioni con tempi di esecuzione lunghi (LRA) e prova a confermare/annullare (TCC). Supporta transazioni distribuite tra microservizi poliglotti, come Java, node.js, C/C++ e PL/SQL. In questo LiveLab, gli sviluppatori possono imparare a ottenere la coerenza dei dati tra i vari microservizi utilizzati in un'applicazione di esempio.

Coerenza delle transazioni tra i microservizi con Oracle Transaction Manager for Microservices

Basi di costruzione

Una piattaforma completa e aperta per i microservizi

Per la modernizzazione delle applicazioni, è necessario integrare più tecnologie per creare le giuste basi per i microservizi multicloud. Oracle LiveLabs ti dà l'accesso agli strumenti e alle tecnologie Oracle per seguire una vasta gamma di laboratori e workshop. Questi workshop mostrano come utilizzare le tecnologie aperte insieme a quelle Oracle per creare architetture più semplici in grado di offrire flessibilità di implementazione. Crea microservizi in Oracle LiveLabs con componenti cloud e ibridi disponibili in OCI, Autonomous Database, Helidon, Micronaut, Weblogic, Java, Docker, Kubernetes e Istio Service Mesh, in uno stack di piattaforme di microservizi all'avanguardia. Ci sono diversi laboratori che possono aiutarti a modernizzare le applicazioni aziendali monolith e a iniziare il tuo percorso verso i microservizi o a semplificarlo se l'hai già intrapreso.

Microservizi

Serverless: non è necessario alcuno stato persistente in un data store. I task vengono eseguiti con lo stile "fly-fire and forget". Ad esempio, funzioni lambda e gateway API.

basato sulle API: i microservizi comunicano tra loro utilizzando le API REST, ad esempio un gateway API. Ogni microservizio ha una definizione API.

Microservizi Async: l'accoppiamento viene raggiunto con la messaggistica asincrona attraverso code o software di streaming, ad esempio con Oracle Advanced Queuing o Apache Kafka.

Azioni di workflow: flussi aziendali (con persone in loop) che rappresentano anche transazioni con tempi di esecuzione lunghi, ad esempio con framework BPMN, come il flusso Camunda, Zeebe o temporal.io.

Workflow automatico: task che vengono eseguiti come flusso di lavoro semplice in modo automatico (senza l'intervento di persone), ad esempio con Apache Airflow e Argo (CNCF).

Basato sui dati: l'architettura dei dati ne determina l'utilizzo nell'applicazione per le operazioni e il processo decisionale, in genere con un negozio persistente, ad esempio un database convergente Oracle o un database ad uso speciale.

Cloud nativo: un'applicazione sviluppata interamente per il cloud, ad esempio con componenti CNCF e servizi OCI.

Microservizi cloud ibridi: microservizi che funzionano nel data center del cliente (cloud privato) e in un cloud pubblico, ad esempio, con la Kubernetes/service mesh da orchestrare in un cloud privato e in un cloud pubblico (casi d'uso per l'espansione nel cloud).

Microservizi multi cloud: microservizi che funzionano su almeno due cloud pubblici e un cloud privato, ad esempio, con Kubernetes/service mesh per orchestrare su più cloud (per fornire la mitigazione dei rischi e prevenire un lock-in su un cloud pubblico).

Sfide dei microservizi

Mentre i microservizi sono sinonimo di modernizzazione delle applicazioni e sono la strada da seguire per lo sviluppo di tutte le applicazioni, ci sono alcune considerazioni che rendono più efficiente il percorso verso le architetture dei microservizi.

  • Scegliere il numero di microservizi indipendenti per un'applicazione. L'implementazione dei microservizi diventa complessa quando devono essere implementati migliaia di microservizi e si prevede che funzionino in armonia quando il contesto di ciascun servizio è molto ridotto. L'esperienza ci insegna che quando i microservizi vengono identificati da 20 a 50 contesti delimitati corretti, la transizione ai microservizi ha prodotto risultati migliori rispetto ai vantaggi promessi.
  • L'implementazione delle transazioni oltre i confini dei microservizi è stata una sfida per le transazioni XA (in alcuni casi, la limitazione sincrona e delle prestazioni). I SAGA sincroni hanno dimostrato di essere più performanti e robusti, che vengono ulteriormente semplificati con il supporto nell'Oracle Database convergente.
  • L'esigenza di un accoppiamento non rigido tra microservizi risulta un problema con l'utilizzo di servizi API REST sincroni e i sistemi di messaggistica/accodamento rendono questa comunicazione asincrona e più scalabile nella distribuzione di applicazioni in un ambiente cloud ibrido.
  • La traccia e l'osservabilità non sono importanti solo a livello di applicazione o di livello intermedio, ma anche a livello di dati, per una distribuzione end-to-end olistica e per il supporto delle architetture di microservizi. Gli strumenti e le integrazioni degli analytics stanno iniziando a soddisfare questo importante aspetto per le distribuzioni ibride.

Storie di successo dei clienti che utilizzano i microservizi