Crea una pipeline MLOps scalabile su OCI utilizzando i servizi OCI nativi e MLflow

Questa architettura di riferimento descrive come implementare una pipeline MLOps scalabile e automatizzata su Oracle Cloud Infrastructure (OCI).

L'architettura aiuta le organizzazioni a rendere operativi i modelli di machine learning con coerenza, governance, velocità, riproducibilità, implementazione automatizzata, gestione del ciclo di vita dei modelli e osservabilità.

La soluzione integra OCI DevOps, Oracle Cloud Infrastructure Data Science e Oracle Cloud Infrastructure Kubernetes Engine (OKE) per automatizzare il ciclo di vita del machine learning end-to-end. I carichi di lavoro di formazione vengono containerizzati ed eseguiti come job di Oracle Cloud Infrastructure Data Science attivati dalle pipeline DevOps, mentre MLflow distribuito su OKE fornisce funzionalità di tracciamento degli esperimenti e registro dei modelli, con artifact memorizzati in OCI Object Storage. Dopo l'addestramento, OCI DevOps distribuisce automaticamente il modello approvato più recente dal registro dei modelli MLflow a OKE e l'accesso ai servizi MLflow e inferenza viene fornito tramite OCI Load Balancer.

Operazioni preliminari

Prima di distribuire questa soluzione, assicurarsi che vengano soddisfatti i prerequisiti riportati di seguito.

  • Una tenancy Oracle Cloud Infrastructure attiva con limiti di servizio sufficienti.
  • Compartimenti configurati per l'isolamento dell'ambiente, ad esempio sviluppo, test e produzione.
  • Criteri di OCI Identity and Access Management per:
    • OCI DevOps
    • Oracle Cloud Infrastructure Data Science
    • OKE
    • Memorizzazione degli oggetti OCI
    • OCI Vault
    • Notifiche OCI
    • Load balancer OCI
  • Una rete cloud virtuale (VCN) configurata con:
    • Subnet private per OKE e Oracle Cloud Infrastructure Data Science.
    • Subnet pubblica per OCI Load Balancer se è necessario l'accesso esterno.
    • Gateway del servizio OCI.
    • Gateway NAT.
  • Cluster OKE di cui è stato eseguito il provisioning per:
    • MLflow come servizio MLOps.
    • Carichi di lavoro inferenziali.
  • Flusso ML distribuito su OKE, configurato con:
    • Storage degli oggetti OCI come area di memorizzazione degli artifact.
    • Registro modelli abilitato.
  • Un progetto OCI DevOps con:
    • Repository di origine.
    • Pipeline di creazione e distribuzione.
  • Argomenti e sottoscrizioni di Notifiche OCI configurati.
  • Familiarità con i flussi di lavoro di Docker, Kubernetes e machine learning.

Architettura

Questa architettura implementa una pipeline MLOps automatizzata in cui Oracle Cloud Infrastructure DevOps crea container per la formazione e attiva Oracle Cloud Infrastructure Data Science per la formazione sui modelli.

I job di formazione estraggono le immagini dei container da OCI Container Registry (OCIR) e accedono ai data set da Oracle Cloud Infrastructure Object Storage tramite Oracle Cloud Infrastructure Service Gateway. Durante l'esecuzione, le metriche e gli artifact di formazione vengono registrati in MLflow in esecuzione su OCI Kubernetes Engine, con artifact persistenti in OCI Object Storage per garantire durabilità e scalabilità.

Al termine dell'addestramento, il modello viene registrato nel registro dei modelli MLflow e promosso attraverso fasi definite. OCI DevOps attiva automaticamente una pipeline di distribuzione che recupera la versione del modello approvata più recente e la distribuisce a OCI Kubernetes Engine come servizio di inferenza. Sia il servizio MLflow (piano di controllo MLOps) che gli endpoint di inferenza vengono esposti tramite Oracle Cloud Infrastructure Load Balancer, fornendo un livello di accesso unificato e scalabile. In tutta la pipeline, Oracle Cloud Infrastructure Notifications fornisce aggiornamenti in tempo reale per le fasi di creazione, formazione e distribuzione. La soluzione viene eseguita all'interno di una VCN sicura, utilizzando reti private, Oracle Cloud Infrastructure Vault per la gestione dei segreti e Oracle Cloud Infrastructure Logging e Oracle Cloud Infrastructure Monitoring per l'osservabilità.

Il diagramma seguente illustra questa architettura di riferimento.



auto-mlops-pipeline-ocidevops-arch-oracle.zip#GUID-3A0A729D-6AD6-4CC7-9EFA-51F02B8941EA

Questa architettura include i seguenti componenti:

  • Infrastruttura
    • Dominio di disponibilità

      I domini di disponibilità sono data center autonomi e indipendenti all'interno di un'area. Le risorse fisiche in ogni dominio di disponibilità sono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio alimentazione o raffreddamento, o la rete del dominio di disponibilità interno. Pertanto, un errore in un dominio di disponibilità non dovrebbe influire sugli altri domini di disponibilità nell'area.

    • Compartimento

      I compartimenti sono partizioni logiche interregionali all'interno di una tenancy OCI. Utilizzare i compartimenti per organizzare, controllare l'accesso e impostare le quote di utilizzo per le risorse Oracle Cloud. In un determinato compartimento, è possibile definire criteri che controllano l'accesso e impostano i privilegi per le risorse.

    • Gateway Internet

      Un gateway Internet consente il traffico tra le subnet pubbliche di una VCN e la rete Internet pubblica.

    • Area OCI

      Un'area geografica OCI è un'area geografica localizzata che contiene uno o più data center, che ospitano domini di disponibilità. Le regioni sono indipendenti da altre regioni e vaste distanze possono separarle (tra paesi o addirittura continenti).

    • Lista di sicurezza

      Per ogni subnet, puoi creare regole di sicurezza che specificano l'origine, la destinazione e il tipo di traffico consentito all'interno e all'esterno della subnet.

    • Gateway del servizio

      Un gateway di servizi fornisce l'accesso da una VCN ad altri servizi, ad esempio Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viaggia sul fabric di rete Oracle e non attraversa Internet.

    • Tenancy

      Una tenancy è una partizione sicura e isolata impostata da Oracle all'interno di Oracle Cloud al momento dell'iscrizione a OCI. È possibile creare, organizzare e amministrare le risorse su OCI all'interno della tenancy. Una tenancy è sinonimo di azienda o organizzazione. In genere, un'azienda disporrà di una singola tenancy, all'interno della quali rifletterà la propria struttura organizzativa. Una singola tenancy viene in genere associata a una singola sottoscrizione e una singola sottoscrizione di solito ha una sola tenancy.

    • Rete e subnet cloud virtuale OCI

      Una rete cloud virtuale (VCN, virtual cloud network) è una rete personalizzabile e definita dal software impostata in un'area OCI. Come le reti di data center tradizionali, le reti VCN offrono il controllo sull'ambiente di rete. Una VCN può avere più blocchi CIDR (Classless Inter-Domain Routing) non sovrapposti che è possibile modificare dopo aver creato la VCN. È possibile segmentare una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. È possibile modificare le dimensioni di una sottorete dopo la creazione. Una subnet può essere pubblica o privata.

  • OSN (Oracle Service Network)
    • Log OCI
      Oracle Cloud Infrastructure Logging è un servizio altamente scalabile e completamente gestito che fornisce l'accesso ai seguenti tipi di log dalle tue risorse nel cloud:
      • Log di audit: log correlati agli eventi prodotti da OCI Audit.
      • Log dei servizi: log pubblicati da singoli servizi quali il gateway API OCI, gli eventi OCI, le funzioni OCI, il load balancer OCI, lo storage degli oggetti OCI e i log di flusso VCN.
      • Log personalizzati: log che contengono informazioni di diagnostica da applicazioni personalizzate, altri provider cloud o un ambiente in locale.
    • Monitoraggio OCI

      Oracle Cloud Infrastructure Monitoring monitora in modo attivo e passivo le tue risorse cloud e utilizza gli allarmi per avvisarti quando le metriche soddisfano i trigger specificati.

    • Notifiche OCI

      Notifiche OCI trasmette i messaggi ai componenti distribuiti utilizzando un pattern di pubblicazione-sottoscrizione a bassa latenza, offrendo messaggi sicuri, altamente affidabili e duraturi per le applicazioni ospitate su OCI.

    • Oracle Services Network

      Oracle Services Network (OSN) è una rete concettuale su OCI riservata ai servizi Oracle. Questi servizi hanno indirizzi IP pubblici che puoi raggiungere su Internet. Gli host esterni a Oracle Cloud possono accedere a OSN in privato utilizzando Oracle Cloud Infrastructure FastConnect o VPN Connect. Gli host nelle reti VCN possono accedere a OSN in privato tramite un gateway di servizi.

    • OCI Vault

      Oracle Cloud Infrastructure Vault ti consente di creare e gestire centralmente le chiavi di cifratura che proteggono i tuoi dati e le credenziali segrete utilizzate per proteggere l'accesso alle tue risorse nel cloud. La gestione delle chiavi predefinita è costituita da chiavi gestite da Oracle. È inoltre possibile utilizzare chiavi gestite dal cliente che utilizzano OCI Vault. OCI Vault offre un ricco set di API REST per la gestione di vault e chiavi.

    • Firewall applicazione Web OCI

      Oracle Cloud Infrastructure Web Application Firewall (WAF) è un servizio PCI (Payment Card Industry) conforme, basato su regioni e di applicazione perimetrale collegato a un punto di applicazione, ad esempio un load balancer o un nome di dominio di un'applicazione Web. WAF protegge le applicazioni da traffico Internet dannoso e indesiderato. WAF è in grado di proteggere qualsiasi endpoint che si interfaccia con Internet, garantendo un'applicazione coerente delle regole tra le tue applicazioni.

  • Servizi e prodotti
    • OCI Data Science

      Oracle Cloud Infrastructure Data Science è una piattaforma serverless completamente gestita che i team di data science possono utilizzare per creare, addestrare e gestire modelli di machine learning (ML) su OCI. Può essere facilmente integrato con altri servizi OCI come Oracle Autonomous AI Lakehouse, Oracle Cloud Infrastructure Object Storage e altro ancora. Puoi creare e valutare modelli di machine learning di alta qualità che aumentano la flessibilità aziendale mettendo i dati affidabili dell'azienda a lavorare rapidamente e puoi supportare obiettivi aziendali basati sui dati con una distribuzione più semplice dei modelli ML.

      La funzione Job di Data Science consente ai data scientist di definire ed eseguire task di Machine Learning ripetibili su un'infrastruttura completamente gestita.

      La funzione di distribuzione del modello di Data Science consente ai data scientist di distribuire modelli addestrati come endpoint HTTP completamente gestiti in grado di fornire previsioni in tempo reale, infondendo intelligence in processi e applicazioni e consentendo all'azienda di reagire agli eventi pertinenti man mano che si verificano.

    • OCI DevOps

      Oracle Cloud Infrastructure DevOps (developer operations) è una piattaforma completa di integrazione e distribuzione continua (CI/CD) che consente agli sviluppatori di semplificare e automatizzare il ciclo di vita dello sviluppo software. OCI DevOps consente a sviluppatori e operatori di sviluppare, creare, testare e distribuire software in modo collaborativo. Gli sviluppatori e gli operatori ottengono visibilità sull'intero ciclo di vita dello sviluppo con una cronologia di commit di origine attraverso le fasi di creazione, test e distribuzione.

    • OCI Identity and Access Management

      Oracle Cloud Infrastructure Identity and Access Management (IAM) fornisce il controllo dell'accesso degli utenti per OCI e Oracle Cloud Applications. L'interfaccia API IAM e l'interfaccia utente consentono di gestire i domini di Identity e le risorse al loro interno. Ogni dominio di Identity OCI IAM rappresenta una soluzione standalone di gestione accessi e identità oppure una popolazione di utenti diversa.

    • Cluster Kubernetes

      Un cluster Kubernetes è un set di computer che eseguono applicazioni containerizzate. Kubernetes offre una piattaforma portatile, estendibile e open source per la gestione di carichi di lavoro e servizi containerizzati in tali nodi. Un cluster Kubernetes è formato da nodi di lavoro e nodi del piano di controllo.

    • Load balancer

      Oracle Cloud Infrastructure Load Balancer fornisce una distribuzione automatica del traffico da un singolo punto di accesso a più server.

    • Memorizzazione degli oggetti OCI

      Lo storage degli oggetti OCI fornisce l'accesso a grandi quantità di dati strutturati e non strutturati di qualsiasi tipo di contenuto, inclusi backup del database, dati analitici e contenuti avanzati come immagini e video. Puoi memorizzare in tutta sicurezza i dati direttamente dalle applicazioni o dall'interno della piattaforma cloud. Puoi ridimensionare lo storage senza compromettere le prestazioni o l'affidabilità del servizio.

      Utilizza lo storage standard per lo storage "caldo" a cui devi accedere in modo rapido, immediato e frequente. Utilizza lo storage di archivio per lo storage "a freddo" che conservi per lunghi periodi di tempo e a cui accedi raramente o raramente.

  • MLflow (su Kubernetes Engine)

    MLflow è una piattaforma open source per la gestione del ciclo di vita dell'apprendimento automatico, incluso il monitoraggio degli esperimenti e il registro dei modelli. Può essere distribuito su Kubernetes per la scalabilità. In questa architettura, MLflow viene eseguito su Kubernetes Engine, memorizza gli artifact in OCI Object Storage e mantiene il Model Registry come fonte di dati per i modelli di produzione. Consente il controllo delle versioni, la governance e la promozione controllata dei modelli.

  • OCI Container Registry (OCIR)

    OCI Container Registry è un registro Docker gestito e privato per la memorizzazione e la gestione delle immagini dei container. Si integra con OCI Identity and Access Management per un controllo dell'accesso sicuro. In questa architettura, memorizza la formazione con controllo delle versioni e le immagini dei container. Queste immagini vengono utilizzate dai job di Data Science e dalle distribuzioni di Kubernetes Engine.

Suggerimenti

Questi suggerimenti aiutano a migliorare la sicurezza, la scalabilità e la manutenibilità della pipeline MLOps.
  • VCN
    • Quando crei una VCN, determina il numero di blocchi CIDR necessari e la dimensione di ciascun blocco in base al numero di risorse che prevedi di collegare alle subnet nella VCN.
    • Utilizza blocchi CIDR che si trovano all'interno dello spazio di indirizzi IP privati standard e seleziona blocchi CIDR che non si sovrappongono a qualsiasi altra rete in Oracle Cloud Infrastructure, nel tuo data center on-premise o in un altro provider cloud a cui intendi impostare connessioni private.
    • Dopo aver creato una VCN, è possibile modificare, aggiungere e rimuovere i relativi blocchi CIDR.
    • Quando si progettano le subnet, considerare il flusso di traffico e i requisiti di sicurezza. Collegare tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può fungere da limite di sicurezza.
    • Utilizzare le subnet regionali.
  • Sicurezza
    • Utilizza Oracle Cloud Guard per monitorare e mantenere la sicurezza delle tue risorse in Oracle Cloud Infrastructure in modo proattivo. Cloud Guard utilizza recipe del rilevatore che è possibile definire per esaminare le risorse alla ricerca dei punti deboli della sicurezza e per monitorare operatori e utenti alla ricerca di attività rischiose. Quando viene rilevata qualsiasi attività di configurazione errata o non sicura, Cloud Guard consiglia azioni correttive e aiuta a eseguire tali azioni, in base alle recipe del rispondente che è possibile definire.
    • Per le risorse che richiedono la massima sicurezza, Oracle consiglia di utilizzare le zone di sicurezza. Una zona di sicurezza è un compartimento associato a una recipe dei criteri di sicurezza definita da Oracle basata sulle procedure ottimali. Ad esempio, le risorse in una zona di sicurezza non devono essere accessibili dalla rete Internet pubblica e devono essere cifrate utilizzando chiavi gestite dal cliente. Quando crei e aggiorni risorse in una zona di sicurezza, Oracle Cloud Infrastructure convalida le operazioni in base ai criteri nella recipe della zona di sicurezza e nega le operazioni che violano uno qualsiasi dei criteri.
  • Cloud Guard
    • Duplica e personalizza le recipe predefinite fornite da Oracle per creare recipe personalizzate del rilevatore e del rispondente. Queste recipe consentono di specificare il tipo di violazioni della sicurezza che generano un'avvertenza e le azioni che possono essere eseguite su di esse. Ad esempio, potresti voler rilevare i bucket di storage degli oggetti con visibilità impostata su pubblica.
    • Applica Oracle Cloud Guard a livello di tenancy per coprire l'ambito più ampio e ridurre l'onere amministrativo della gestione di più configurazioni.
    • È inoltre possibile utilizzare la funzione Elenco gestito per applicare determinate configurazioni ai rilevatori.
  • Gruppi di sicurezza di rete (NSG)
    • Puoi utilizzare i gruppi NSG per definire un set di regole di entrata e uscita che si applicano a VNIC specifiche. Utilizzare i gruppi NSG anziché le liste di sicurezza, poiché i gruppi NSG consentono di separare l'architettura della subnet VCN dai requisiti di sicurezza dell'applicazione.
  • OKE
    • Distribuisci carichi di lavoro MLflow e inferenza in spazi di nomi separati. Abilita il ridimensionamento automatico e utilizza più pool di nodi per l'isolamento del carico di lavoro. Utilizza controller in entrata o load balancer per esporre in modo sicuro i servizi di inferenza.
  • Memorizzazione degli oggetti OCI
    • Utilizza lo storage degli oggetti OCI per data set, modelli addestrati e artifact del flusso ML. Abilita il controllo delle versioni e i criteri del ciclo di vita per ottimizzare lo storage e mantenere la derivazione dei modelli.
  • Oracle Cloud Infrastructure Data Science
    • Utilizzare lavori containerizzati per la formazione per garantire la riproducibilità. Evita i flussi di lavoro manuali basati su notebook in produzione. Integra MLflow per il tracciamento degli esperimenti.
  • Load balancer OCI
    • Utilizza un load balancer per esporre l'interfaccia utente/API del flusso ML e gli endpoint di inferenza. Configurare listener e set backend per servizi diversi. Utilizzare HTTPS per garantire l'accesso e l'integrazione con DNS, se necessario.

Considerazioni

Queste considerazioni riassumono i fattori principali relativi a prestazioni, sicurezza, disponibilità e costi per la pipeline MLOps.

Quando si distribuisce questa architettura di riferimento, considerare i punti riportati di seguito.

  • Prestazioni: utilizza il ridimensionamento automatico in OKE per i carichi di lavoro di inferenza e ottimizza le forme di lavoro di Data Science per la formazione. Assicurati che il flusso ML si ridimensioni in modo appropriato con gli artifact supportati dallo storage degli oggetti e che il load balancer abbia una dimensione adeguata per gestire il traffico.
  • Sicurezza: applicare i criteri di OCI Identity and Access Management con meno privilegi e utilizzare OCI Vault per la gestione dei segreti. Limita l'accesso agli endpoint MLflow, Storage degli oggetti OCI e inferenza.
  • Disponibilità: distribuisci tra domini di disponibilità e di errore. Utilizza le funzioni ad alta disponibilità OKE e assicurati che i servizi MLflow siano resilienti.
  • Costo: utilizza il ridimensionamento automatico per ottimizzare l'uso della computazione. Applica i criteri del ciclo di vita nello storage degli oggetti OCI e nei pool di nodi OKE di dimensioni corrette. Arrestare le risorse non utilizzate.

Scopri di più

Queste risorse della documentazione Oracle forniscono ulteriori informazioni sui servizi utilizzati in questa architettura di riferimento.

Per ulteriori informazioni su Data Science, OCI DevOps, OKE e sui servizi correlati in questa architettura, vedere le risorse riportate di seguito.

Conferme

  • Autore: Prasanth Prasad
  • Collaboratori: Thangaraj, Karol Stuart