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.
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.
Ridimensionano i container di servizi o le piattaforme dati in modo indipendente per ogni servizio per soddisfare le richieste di tale funzionalità.
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).
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.
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.
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.
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.
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.
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.
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).
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.