Erstellen einer skalierbaren MLOps-Pipeline auf OCI mit OCI-nativen Services und MLflow
Die Architektur unterstützt Unternehmen bei der Operationalisierung von Modellen für maschinelles Lernen mit Konsistenz, Governance, Geschwindigkeit, Reproduzierbarkeit, automatisierter Bereitstellung, Modelllebenszyklusmanagement und Beobachtbarkeit.
Die Lösung integriert OCI DevOps, Oracle Cloud Infrastructure Data Science und Oracle Cloud Infrastructure Kubernetes Engine (OKE), um den End-to-End-Lebenszyklus des maschinellen Lernens zu automatisieren. Trainings-Workloads werden containerisiert und als Oracle Cloud Infrastructure Data Science-Jobs ausgeführt, die von DevOps-Pipelines ausgelöst werden, während MLflow, das auf OKE bereitgestellt wird, Experimentverfolgung und Modell-Registry-Funktionen bereitstellt, wobei Artefakte in OCI Object Storage gespeichert sind. Nach dem Training stellt OCI DevOps automatisch das neueste genehmigte Modell aus der MLflow Model Registry in OKE bereit, und der Zugriff auf MLflow- und Inferenzservices wird über OCI Load Balancer bereitgestellt.
Bevor Sie beginnen
Stellen Sie vor dem Deployment dieser Lösung sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Ein aktiver Oracle Cloud Infrastructure-Mandant mit ausreichenden Servicelimits.
- Konfigurierte Compartments für die Umgebungsisolierung, wie Entwicklung, Test und Produktion.
- OCI Identity and Access Management-Policys für:
- OCI DevOps
- Oracle Cloud Infrastructure Data Science
- OKE
- OCI Object Storage
- OCI Vault
- OCI-Benachrichtigungen
- OCI Load Balancer
- Ein konfiguriertes virtuelles Cloud-Netzwerk (VCN) mit:
- Private Subnetze für OKE und Oracle Cloud Infrastructure Data Science.
- Ein öffentliches Subnetz für OCI Load Balancer, wenn externer Zugriff erforderlich ist.
- OCI-Servicegateway.
- NAT-Gateway.
- Ein OKE-Cluster, das für Folgendes bereitgestellt wird:
- MLflow als MLOps-Service.
- Inferenz-Workloads.
- MLflow auf OKE bereitgestellt, konfiguriert mit:
- OCI Object Storage als Artefaktspeicher.
- Die Model Registry ist aktiviert.
- Ein OCI DevOps-Projekt mit:
- Quell-Repositorys
- Build- und Deployment-Pipeline.
- OCI Notifications-Themen und -Abonnements konfiguriert.
- Vertrautheit mit Docker-, Kubernetes- und ML-Workflows.
Architektur
Die Schulungsjobs rufen Containerimages aus OCI Container Registry (OCIR) ab und greifen auf Datasets von Oracle Cloud Infrastructure Object Storage bis Oracle Cloud Infrastructure Service Gateway zu. Während der Ausführung werden Trainingsmetriken und -artefakte in MLflow protokolliert, der auf der OCI Kubernetes Engine ausgeführt wird. Artefakte werden aus Gründen der Dauerhaftigkeit und Skalierbarkeit in OCI Object Storage persistiert.
Nach Abschluss des Trainings wird das Modell in der MLflow Model Registry registriert und in definierten Phasen hochgestuft. OCI DevOps löst automatisch eine Deployment-Pipeline aus, die die neueste genehmigte Modellversion abruft und in OCI Kubernetes Engine als Inferenzservice bereitstellt. Sowohl der MLflow-Service (MLOps Control Plane) als auch Inferenzendpunkte werden über Oracle Cloud Infrastructure Load Balancer bereitgestellt und bieten eine einheitliche und skalierbare Zugriffsebene. Während der gesamten Pipeline stellt Oracle Cloud Infrastructure Notifications Echtzeitupdates für Build-, Schulungs- und Deployment-Phasen bereit. Die Lösung wird in einem sicheren VCN mit privatem Netzwerk, Oracle Cloud Infrastructure Vault für die Secrets-Verwaltung und Oracle Cloud Infrastructure Logging und Oracle Cloud Infrastructure Monitoring zur Beobachtbarkeit ausgeführt.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.
auto-mlops-pipeline-ocidevops-arch-oracle.zip#GUID-3A0A729D-6AD6-4CC7-9EFA-51F02B8941EA
Diese Architektur umfasst die folgenden Komponenten:
- Infrastruktur
- Availability-Domain
Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz sicherstellt. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Ein Fehler in einer Availability-Domain sollte sich also nicht auf die anderen Availability-Domains in der Region auswirken.
- Compartment
Compartments sind regionsübergreifende logische Partitionen innerhalb eines OCI-Mandanten. Mit Compartments können Sie den Zugriff organisieren, kontrollieren und Nutzungsquoten für Ihre Oracle Cloud-Ressourcen festlegen. In einem bestimmten Compartment definieren Sie Policys, die den Zugriff kontrollieren und Berechtigungen für Ressourcen festlegen.
- Internetgateway
Ein Internetgateway ermöglicht Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.
- OCI-region
Eine OCI-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Centre enthält, das Availability-Domains hostet. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können über Länder oder Kontinente voneinander getrennt werden.
- Sicherheitsliste
Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Traffictyp angeben, die im Subnetz und außerhalb des Subnetzes zulässig sind.
- Servicegateway
Ein Servicegateway ermöglicht den Zugriff von einem VCN auf andere Services, wie Oracle Cloud Infrastructure Object Storage. Der Datenverkehr vom VCN zum Oracle-Service wird über die Oracle-Netzwerkstruktur geleitet und durchläuft nicht das Internet.
- Tenancy
Ein Mandant ist eine sichere und isolierte Partition, die Oracle in Oracle Cloud einrichtet, wenn Sie sich für OCI registrieren. Sie können Ihre Ressourcen auf OCI innerhalb Ihres Mandanten erstellen, organisieren und verwalten. Ein Mandant ist ein Synonym für ein Unternehmen oder eine Organisation. Normalerweise hat ein Unternehmen einen einzelnen Mandanten und spiegelt seine Organisationsstruktur innerhalb dieses Mandanten wider. Ein einzelner Mandant ist in der Regel mit einem einzelnen Abonnement verknüpft, und ein einzelnes Abonnement hat in der Regel nur einen Mandanten.
- Virtuelles OCI-Cloud-Netzwerk und Subnetz
Ein virtuelles Cloud-Netzwerk (VCN) ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer OCI-Region einrichten. Wie herkömmliche Data Center-Netzwerke erhalten Sie von VCNs die Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem Bereich zusammenhängender Adressen, die sich nicht mit anderen Subnetzen im VCN überschneiden. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
- Availability-Domain
- Oracle Service Network (OSN)
- OCI-ProtokollierungOracle Cloud Infrastructure Logging ist ein hoch skalierbarer und vollständig verwalteter Service, der Zugriff auf folgende Logtypen von Ihren Ressourcen in der Cloud ermöglicht:
- Auditlogs: Logs für Ereignisse, die von OCI Audit erstellt wurden.
- Servicelogs: Von einzelnen Services veröffentlichte Logs, wie OCI API Gateway, OCI-Ereignisse, OCI Functions, OCI Load Balancer, OCI Object Storage und VCN-Flowlogs.
- Benutzerdefinierte Logs: Logs, die Diagnoseinformationen von benutzerdefinierten Anwendungen, anderen Cloud-Providern oder einer On-Premise-Umgebung enthalten.
- OCI-Monitoring
Oracle Cloud Infrastructure Monitoring überwacht aktiv und passiv Ihre Cloud-Ressourcen und benachrichtigt Sie mit Alarmen, wenn Metriken bestimmte Trigger erfüllen.
- OCI-Benachrichtigungen
OCI Notifications sendet Nachrichten an verteilte Komponenten, indem es ein Publish-Subscribe-Muster mit geringer Latenz verwendet und sichere, äußerst zuverlässige und dauerhafte Nachrichten für auf OCI gehostete Anwendungen liefert.
- Oracle Services Network
Das Oracle Services Network (OSN) ist ein konzeptionelles Netzwerk auf OCI, das für Oracle-Services reserviert ist. Diese Services umfassen öffentliche IP-Adressen, die Sie sonst über das Internet erreichen können. Hosts außerhalb von Oracle Cloud können über Oracle Cloud Infrastructure FastConnect oder VPN Connect privat auf das OSN zugreifen. Hosts in Ihren VCNs können über ein Servicegateway privat auf das OSN zugreifen.
- OCI Vault
Mit Oracle Cloud Infrastructure Vault können Sie die Verschlüsselungsschlüssel zum Schutz Ihrer Daten und die Secret-Zugangsdaten erstellen und zentral verwalten, mit denen Sie den Zugriff auf Ihre Ressourcen in der Cloud sichern. Die Standardschlüsselverwaltung sind von Oracle verwaltete Schlüssel. Sie können auch vom Kunden verwaltete Schlüssel verwenden, die OCI Vault verwenden. OCI Vault bietet einen umfangreichen Satz von REST-APIs zur Verwaltung von Vaults und Schlüsseln.
- OCI-Web Application Firewall
Oracle Cloud Infrastructure Web Application Firewall (WAF) ist ein regionaler Edge-Enforcement Service, der an einen Enforcement Point angehängt ist, wie einen Load Balancer oder einen Domainnamen einer Webanwendung. WAF schützt Anwendungen vor schädlichem und unerwünschtem Internettraffic. Mit WAF können Sie jeden internetseitigen Endpunkt schützen und eine konsistente Regeldurchsetzung über Ihre Anwendungen hinweg ermöglichen.
- OCI-Protokollierung
- Dienstleistungen und Produkte
- OCI Data Science
Oracle Cloud Infrastructure Data Science ist eine vollständig verwaltete, serverlose Plattform, mit der Data-Science-Teams Modelle für maschinelles Lernen (ML) in OCI erstellen, trainieren und verwalten können. Es kann problemlos in andere OCI-Services wie Oracle Autonomous AI Lakehouse, Oracle Cloud Infrastructure Object Storage und mehr integriert werden. Sie können hochwertige Modelle für maschinelles Lernen erstellen und bewerten, die die Geschäftsflexibilität erhöhen, indem Sie unternehmensbewusste Daten schnell einsetzen. Außerdem können Sie datengesteuerte Geschäftsziele mit einfacherem Deployment von ML-Modellen unterstützen.
Mit dem Data Science-Jobfeature können Data Scientists wiederholbare Aufgaben des maschinellen Lernens in einer vollständig verwalteten Infrastruktur definieren und ausführen.
Mit dem Data Science-Modell-Deployment-Feature können Data Scientists trainierte Modelle als vollständig verwaltete HTTP-Endpunkte bereitstellen, die Vorhersagen in Echtzeit bereitstellen, Erkenntnisse in Prozesse und Anwendungen einfließen lassen und es dem Unternehmen ermöglichen, auf relevante Ereignisse zu reagieren, sobald sie auftreten.
- OCI DevOps
Oracle Cloud Infrastructure DevOps (Entwicklervorgänge) ist eine vollständige CI/CD-Plattform (Continuous Integration/Continuous Delivery), mit der Entwickler ihren Softwareentwicklungslebenszyklus vereinfachen und automatisieren können. Mit OCI DevOps können Entwickler und Betreiber gemeinsam Software entwickeln, erstellen, testen und bereitstellen. Entwickler und Operatoren erhalten Visibilität über den gesamten Entwicklungslebenszyklus mit einer Historie des Quell-Commits über Erstellungs-, Test- und Bereitstellungsphasen.
- OCI Identity and Access Management
Oracle Cloud Infrastructure Identity and Access Management (IAM) bietet Benutzerzugriffskontrolle für OCI und Oracle Cloud Applications. Mit der IAM-API und der Benutzeroberfläche können Sie Identitätsdomains und die darin enthaltenen Ressourcen verwalten. Jede OCI IAM-Identitätsdomain stellt eine eigenständige Identity and Access Management-Lösung oder eine andere Benutzerpopulation dar.
- Kubernetes-Cluster
Ein Kubernetes-Cluster ist eine Gruppe von Computern, auf denen containerisierte Anwendungen ausgeführt werden. Kubernetes bietet eine portierbare, erweiterbare Open-Source-Plattform für die Verwaltung containerisierter Workloads und Services in diesen Knoten. Ein Kubernetes-Cluster besteht aus Worker-Knoten und Control-Plane-Knoten.
- Load Balancer
Oracle Cloud Infrastructure Load Balancer bietet eine automatisierte Trafficverteilung von einem einzigen Einstiegspunkt auf mehrere Server.
- OCI Object Storage
OCI Object Storage bietet Zugriff auf große Mengen an strukturierten und unstrukturierten Daten eines beliebigen Inhaltstyps, darunter Datenbankbackups, Analysedaten und umfangreiche Inhalte, wie Bilder und Videos. Sie können Daten sicher und sicher direkt aus Anwendungen oder aus der Cloud-Plattform speichern. Sie können den Storage skalieren, ohne dass die Performance oder Servicezuverlässigkeit beeinträchtigt wird.
Verwenden Sie den Standardspeicher für "Hot Storage", auf die Sie schnell, sofort und häufig zugreifen müssen. Verwenden Sie Archivspeicherung für "Cold Storage", die Sie über lange Zeiträume beibehalten und nur selten darauf zugreifen.
- OCI Data Science
- MLflow (auf Kubernetes Engine)
MLflow ist eine Open-Source-Plattform für die Verwaltung des ML-Lebenszyklus, einschließlich Experimentverfolgung und Modellregistrierung. Es kann für Skalierbarkeit auf Kubernetes bereitgestellt werden. In dieser Architektur wird MLflow auf Kubernetes Engine ausgeführt, speichert Artefakte in OCI Object Storage und verwaltet die Model Registry als Source of Truth für Produktionsmodelle. Es ermöglicht Versionierung, Governance und kontrollierte Promotion von Modellen.
- OCI Container Registry (OCIR)
OCI Container Registry ist eine verwaltete, private Docker-Registry zum Speichern und Verwalten von Containerimages. Es kann in OCI Identity and Access Management integriert werden, um eine sichere Zugriffskontrolle zu gewährleisten. In dieser Architektur werden versionierte Schulungen gespeichert und Containerimages bereitgestellt. Diese Images werden von Data Science-Jobs und Kubernetes Engine-Deployments verwendet.
Empfehlungen
- VCN
- Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten.
- Verwenden Sie CIDR-Blöcke innerhalb des standardmäßigen privaten IP-Adressraums, und wählen Sie CIDR-Blöcke aus, die sich nicht mit einem anderen Netzwerk in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider überschneiden, für den Sie private Verbindungen einrichten möchten.
- Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.
- Berücksichtigen Sie beim Entwerfen der Subnetze den Verkehrsfluss und die Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
- Verwenden Sie regionale Subnetze.
- Sicherheit
- Mit Oracle Cloud Guard können Sie die Sicherheit Ihrer Ressourcen in Oracle Cloud Infrastructure proaktiv überwachen und aufrechterhalten. Cloud Guard verwendet Detektorrezepte, die Sie definieren können, um Ihre Ressourcen auf Sicherheitslücken zu untersuchen und Operatoren und Benutzer auf riskante Aktivitäten zu überwachen. Wenn eine falsche Konfiguration oder unsichere Aktivität erkannt wird, empfiehlt Cloud Guard Korrekturmaßnahmen und unterstützt diese Aktionen basierend auf Responder-Rezepten, die Sie definieren können.
- Für Ressourcen, die maximale Sicherheit erfordern, empfiehlt Oracle die Verwendung von Sicherheitszonen. Eine Sicherheitszone ist ein Compartment, das mit einem von Oracle definierten Rezept für Sicherheits-Policys verknüpft ist, die auf Best Practices basieren. Beispiel: Ressourcen in einer Sicherheitszone dürfen nicht über das öffentliche Internet zugänglich sein und müssen über vom Kunden verwaltete Schlüssel verschlüsselt werden. Wenn Sie Ressourcen in einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure diese Vorgänge anhand der Policys im Rezept der Sicherheitszone und lehnt Vorgänge ab, die gegen eine der Policys verstoßen.
- Cloud Guard
- Klonen und passen Sie die von Oracle bereitgestellten Standardrezepte an, um benutzerdefinierte Detektor- und Responder-Rezepte zu erstellen. Mit diesen Rezepten können Sie angeben, welche Art von Sicherheitsverletzungen eine Warnung generieren und welche Aktionen für sie ausgeführt werden dürfen. Beispiel: Sie möchten Object Storage-Buckets ermitteln, deren Sichtbarkeit auf "Öffentlich" gesetzt ist.
- Wenden Sie Oracle Cloud Guard auf Mandantenebene an, um den größten Umfang abzudecken und den Verwaltungsaufwand für die Verwaltung mehrerer Konfigurationen zu reduzieren.
- Sie können auch das Feature "Verwaltete Liste" verwenden, um bestimmte Konfigurationen auf Detektoren anzuwenden.
- Netzwerksicherheitsgruppen (NSGs)
- Mit NSGs können Sie ein Set von Ingress- und Egress-Regeln definieren, die für bestimmte VNICs gelten. Verwenden Sie NSGs anstelle von Sicherheitslisten, da Sie mit NSGs die VCN-Subnetzarchitektur von den Sicherheitsanforderungen Ihrer Anwendung trennen können.
- OKE
- Stellen Sie MLflow- und Inferenz-Workloads in separaten Namespaces bereit. Aktivieren Sie Autoscaling, und verwenden Sie mehrere Knotenpools für die Workload-Isolierung. Verwenden Sie Ingress-Controller oder Load Balancer, um Inferenzservices sicher bereitzustellen.
- OCI Object Storage
- Verwenden Sie OCI Object Storage für Datasets, trainierte Modelle und MLflow-Artefakte. Aktivieren Sie Versionierungs- und Lebenszyklus-Policys, um die Speicherung zu optimieren und die Modellherkunft zu verwalten.
- Oracle Cloud Infrastructure Data Science
- Verwenden Sie containerisierte Jobs für Schulungen, um die Reproduzierbarkeit sicherzustellen. Vermeiden Sie manuelle, Notebook-basierte Workflows in der Produktion. MLflow für das Experiment-Tracking integrieren
- OCI Load Balancer
- Verwenden Sie einen Load Balancer, um die MLflow-UI/API und Inferenzendpunkte bereitzustellen. Listener und Backend-Sets für verschiedene Services konfigurieren Verwenden Sie HTTPS für sicheren Zugriff und Integration mit DNS, falls erforderlich.
Hinweise
Berücksichtigen Sie beim Deployment dieser Referenzarchitektur die folgenden Punkte.
- Performance: Verwenden Sie Autoscaling in OKE für Inferenz-Workloads, und optimieren Sie Data Science-Jobausprägungen für das Training. Stellen Sie sicher, dass MLflow entsprechend mit Object Storage-backed-Artefakten skaliert wird und dass der Load Balancer die richtige Größe für die Verarbeitung von Traffic hat.
- Sicherheit: Wenden Sie OCI Identity and Access Management-Policys mit der geringsten Berechtigung an, und verwenden Sie OCI Vault für die Secret-Verwaltung. Beschränken Sie den Zugriff auf MLflow-, OCI Object Storage- und Inferenzendpunkte.
- Verfügbarkeit: Bereitstellung über Verfügbarkeits- und Faultdomains hinweg. Verwenden Sie OKE-Hochverfügbarkeitsfunktionen, und stellen Sie sicher, dass MLflow-Services resilient sind.
- Kosten: Mit Autoscaling können Sie die Compute-Nutzung optimieren. Wenden Sie Lebenszyklus-Policys in OCI Object Storage und OKE-Knotenpools mit der rechten Größe an. Fahren Sie nicht verwendete Ressourcen herunter.
