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