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 microservizio 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.

Piattaforma completa ed aperta per i microservizi

Per la modernizzazione delle app, è necessario integrare più tecnologie per creare le basi giuste per i microservizi multi-cloud. 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 microservizio 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 più laboratori che ti aiutano 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 LiveLab di Oracle crea un'applicazione mobile per la consegna di cibo chiamata GrabDish per evidenziare la semplicità dell'architettura dei dati, con uno stack di sviluppo moderno. Contrappone la complessità dei database adhoc utilizzati tradizionalmente come architetture Lambda e Kappa in questo settore (come ad es. sistemi separati per quelle relazionali, testuali, spaziali, grafiche e di messaggistica) alla semplicità di creare microservizio basati su dati con Oracle Converged Database. Il laboratorio è rivolto a sviluppatori e architetti per progettare nuovi microservizi Aiuta inoltre i DBA a comprendere il ruolo di Oracle Database nei progetti di modernizzazione delle applicazioni. I cluster Autonomous Database, 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 dati relazionali, JSON, spaziali e grafici, con un trace e un monitoraggio impostati con Kiali, Jaeger, Prometheus e Grafana. Vengono illustrati modelli di microservizi quali il sourcing di eventi, CQRS, 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 si imbattono in problemi associati alla coerenza dei dati poiché ogni microservizio in genere ha il proprio database o altra risorsa. 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, come XA, Long-Running Actions (LRA) e try-confirm/cancel (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

Elementi di base

Una piattaforma completa e aperta per i microservizi

Per la modernizzazione delle app, è necessario integrare più tecnologie per creare le basi giuste 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.

Termini dei microservizi

Serverless - Non è necessario alcuno stato persistente in un archivio dati; i task vengono eseguiti all'istante, ad esempio con funzioni lambda e gateway API. 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 asincroni: l'accoppiamento viene raggiunto con una messaggistica asincrona attraverso code o software, ad esempio con Oracle Advanced Queuing o Apache Kafka.

Azioni del flusso di lavoro: i flussi aziendali (con le persone in loop) 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 alcun intervento umano nel loop), ad esempio con Apache Airflow and Argo (CNCF).

Data-driven: l'architettura dei dati determina l'utilizzo dei dati nell'applicazione per le operazioni e i processi decisionali, in genere con un'area di memorizzazione persistente, ad esempio Oracle Converged Database o con 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 Kubernetes/service mesh da orchestrare in un cloud privato e nel cloud pubblico (casi d'uso di bursting del cloud).

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

Le sfide dei microservizi

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

  • Scegliere il numero di microservizi indipendenti per un'applicazione. Una distribuzione di microservizi diventa complessa quando è necessario distribuire migliaia di microservizi e si prevede che funzionino in armonia quando il contesto di ciascun servizio è molto piccolo. L'esperienza ci indica che quando 20-50 microservizi vengono identificati con 20-50 contesti delimitati appropriati, la migrazione ai microservizi offre prodotti risultati migliori rispetto ai vantaggi promessi.
  • L'implementazione delle transazioni oltre i confini dei microservizi è stata una sfida con le transazioni XA (in alcuni casi sincroni e con limitazioni delle prestazioni). Gli SAGA sincroni si sono dimostrati più performanti e solidi, 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 tracciabilità e l'osservabilità non sono importanti solo al livello di applicazione o di medio livello, ma anche a livello di dati, per una distribuzione end-to-end olistica e per Il supporto delle architetture di microservizio. 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