Creación de un pipeline MLOps escalable en OCI mediante OCI-Native Services y MLflow
La arquitectura ayuda a las organizaciones a poner en funcionamiento los modelos de aprendizaje automático con coherencia, gobernanza, velocidad, reproducibilidad, despliegue automatizado, gestión del ciclo de vida del modelo y observabilidad.
La solución integra OCI DevOps, Oracle Cloud Infrastructure Data Science y Oracle Cloud Infrastructure Kubernetes Engine (OKE) para automatizar el ciclo de vida de aprendizaje automático de principio a fin. Las cargas de trabajo de formación se almacenan en contenedores y se ejecutan como trabajos de Oracle Cloud Infrastructure Data Science disparados por pipelines de DevOps, mientras que el flujo de aprendizaje automático desplegado en OKE proporciona seguimiento de experimentos y capacidades de registro de modelos, con artefactos almacenados en OCI Object Storage. Después del entrenamiento, OCI DevOps despliega automáticamente el último modelo aprobado del registro de modelos de flujo de aprendizaje automático en OKE, y el acceso a los servicios de flujo de aprendizaje automático y de inferencia se proporciona a través de OCI Load Balancer.
Antes de empezar
Antes de desplegar esta solución, asegúrese de que se cumplen los siguientes requisitos:
- Un arrendamiento activo de Oracle Cloud Infrastructure con límites de servicio suficientes.
- Compartimentos configurados para el aislamiento del entorno, como el desarrollo, la prueba y la producción.
- Políticas de OCI Identity and Access Management para:
- OCI DevOps
- Oracle Cloud Infrastructure Data Science
- OKE
- OCI Object Storage
- OCI Vault
- Notifications de OCI
- Equilibrador de carga de OCI
- Una red virtual En la nube (VCN) configurada con:
- Subredes privadas para OKE y Oracle Cloud Infrastructure Data Science.
- Una subred pública para el equilibrador de carga de OCI si se necesita acceso externo.
- Gateway de servicio de OCI.
- Gateway NAT.
- Un cluster de OKE aprovisionado para:
- MLflow como servicio MLOps.
- Cargas de trabajo de inferencia.
- MLflow desplegado en OKE, configurado con:
- OCI Object Storage como almacén de artefactos.
- Registro de modelos activado.
- Un proyecto de OCI DevOps con:
- Repositorios de origen.
- pipelines de compilación y de despliegue.
- Temas y suscripciones de OCI Notifications configurados.
- Familiaridad con los flujos de trabajo de Docker, Kubernetes y Machine Learning.
Arquitectura
Los trabajos de formación extraen imágenes de contenedor de OCI Container Registry (OCIR) y acceden a juegos de datos de Oracle Cloud Infrastructure Object Storage a través de Oracle Cloud Infrastructure Service Gateway. Durante la ejecución, las métricas y los artefactos de entrenamiento se registran en MLflow que se ejecuta en OCI Kubernetes Engine, y los artefactos se mantienen en OCI Object Storage para ofrecer durabilidad y escalabilidad.
Una vez finalizado el entrenamiento, el modelo se registra en el registro del modelo de flujo de aprendizaje automático y se promociona mediante etapas definidas. OCI DevOps dispara automáticamente un pipeline de despliegue que recupera la última versión del modelo aprobado y la despliega en OCI Kubernetes Engine como servicio de inferencia. Tanto el servicio MLflow (plano de control MLOps) como los puntos finales de inferencia se exponen a través de Oracle Cloud Infrastructure Load Balancer, lo que proporciona una capa de acceso unificada y escalable. A lo largo del pipeline, Oracle Cloud Infrastructure Notifications ofrece actualizaciones en tiempo real para las etapas de creación, formación y despliegue. La solución se ejecuta dentro de una VCN segura, mediante redes privadas, Oracle Cloud Infrastructure Vault para la gestión de secretos, y Oracle Cloud Infrastructure Logging y Oracle Cloud Infrastructure Monitoring para la observabilidad.
El siguiente diagrama ilustra esta arquitectura de referencia.
auto-mlops-pipeline-ocidevops-arch-oracle.zip#GUID-3A0A729D-6AD6-4CC7-9EFA-51F02B8941EA
Esta arquitectura tiene los siguientes componentes:
- Infraestructura
- Dominio de disponibilidad
Los dominios de disponibilidad son centros de datos independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, un fallo en un dominio de disponibilidad no debería afectar a los demás dominios de disponibilidad de la región.
- Compartimento
Los compartimentos son particiones lógicas entre regiones dentro de un arrendamiento de OCI. Utilice compartimentos para organizar, controlar el acceso y definir cuotas de uso para sus recursos de Oracle Cloud. En un compartimento determinado, puede definir políticas que controlen el acceso y definan privilegios para los recursos.
- Gateway de Internet
Un gateway de Internet permite el tráfico entre las subredes públicas de una VCN y la red pública de Internet.
- Región OCI
Una región de OCI es un área geográfica localizada que contiene uno o más centros, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones y pueden haber grandes distancias que las separan (entre países o incluso continentes).
- Lista de seguridad
Para cada subred, puede crear reglas de seguridad que especifiquen el origen, el destino y el tipo de tráfico que se permite dentro y fuera de la subred.
- Gateway de servicio
Un gateway de servicios proporciona acceso desde una VCN a otros servicios, como Oracle Cloud Infrastructure Object Storage. El tráfico desde la VCN al servicio Oracle recorre el tejido de red de la Oracle y no atraviesa Internet.
- Tenancy
Un arrendamiento es una partición segura y aislada que Oracle configura en Oracle Cloud cuando se registra en OCI. Puede crear, organizar y administrar sus recursos en OCI dentro de su arrendamiento. Un arrendamiento es sinónimo de una compañía u organización. Normalmente, una compañía tendrá un único arrendamiento y reflejará su estructura organizativa dentro de ese arrendamiento. Un único arrendamiento suele estar asociado a una única suscripción y una única suscripción suele tener un solo arrendamiento.
- Red virtual en la nube y subred de OCI
Una red virtual en la nube (VCN) es una red personalizable y definida por software que se configura en una región de OCI. Al igual que las Redes de los Centros de Datos Tradicionales, las Redes Virtuales le proporcionan control sobre su entorno de red. Una VCN puede tener varios bloques de enrutamiento entre dominios sin clases (CIDR) que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.
- Dominio de disponibilidad
- Oracle Service Network (OSN)
- Registro de OCIOracle Cloud Infrastructure Logging es un servicio altamente escalable y totalmente gestionado que proporciona acceso a los siguientes tipos de logs de sus recursos en la nube:
- Logs de auditoría: logs relacionados con eventos producidos por OCI Audit.
- Logs de servicio: logs publicados por servicios individuales como OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancer, OCI Object Storage y logs de flujo de VCN.
- Logs personalizados: logs que contienen información de diagnóstico a partir de aplicaciones personalizadas, otros proveedores de nube o un entorno local.
- Supervisión de OCI
Oracle Cloud Infrastructure Monitoring supervisa de forma activa y pasiva los recursos en la nube, y utiliza alarmas para notificarle cuando las métricas cumplen los disparadores especificados.
- Notifications de OCI
OCI Notifications difunde mensajes a componentes distribuidos mediante un patrón de publicación-suscripción de baja latencia, que ofrece mensajes seguros, altamente fiables y duraderos para las aplicaciones alojadas en OCI.
- Oracle Services Network
Oracle Services Network (OSN) es una red conceptual en OCI que está reservada para los Servicios Oracle. Estos servicios tienen direcciones IP públicas a la que puede acceder normalmente a través de Internet. Los hosts externos a Oracle Cloud pueden acceder a OSN de forma privada mediante Oracle Cloud Infrastructure FastConnect o VPN Connect. Los hosts de las redes virtuales en la nube pueden acceder a la OSN de forma privada mediante un gateway de servicio.
- OCI Vault
Oracle Cloud Infrastructure Vault permite crear y gestionar de forma centralizada las claves de cifrado que protegen los datos y las credenciales secretas que utiliza para proteger el acceso a los recursos en la nube. La gestión de claves por defecto son las claves gestionadas por Oracle. También puede utilizar claves gestionadas por el cliente que utilizan OCI Vault. OCI Vault ofrece un juego enriquecido de API de REST para gestionar almacenes y claves.
- Firewall de aplicación web de OCI
Oracle Cloud Infrastructure Web Application Firewall (WAF) es una aplicación de perímetro, regional y compatible con el sector de tarjetas de pago (PCI) que se asocia a un punto de cumplimiento, como un equilibrador de carga o un nombre del dominio del aplicación web. WAF protege las aplicaciones frente al tráfico de Internet no deseado y malicioso. WAF puede proteger cualquier punto final orientado a internet, proporcionando una aplicación coherente de las reglas en todas sus aplicaciones.
- Registro de OCI
- Servicios y productos
- Ciencia de datos de OCI
Oracle Cloud Infrastructure Data Science es una plataforma totalmente gestionada y sin servidor que los equipos de ciencia de datos pueden usar para construir, entrenar y gestionar modelos de aprendizaje automático (ML) en OCI. Se puede integrar fácilmente con otros servicios de OCI, como Oracle Autonomous AI Lakehouse, Oracle Cloud Infrastructure Object Storage y más. Puede crear y evaluar modelos de aprendizaje automático de alta calidad que aumenten la flexibilidad del negocio al poner los datos de confianza de la empresa a trabajar rápidamente, y puede respaldar los objetivos empresariales basados en datos con un despliegue más fácil de modelos de aprendizaje automático.
La función Trabajos de Data Science permite a los científicos de datos definir y ejecutar tareas repetibles de aprendizaje automático en una infraestructura totalmente gestionada.
La función de despliegue de modelos de Data Science permite a los científicos de datos desplegar modelos entrenados como puntos finales HTTP totalmente gestionados que pueden proporcionar predicciones en tiempo real, infundiendo inteligencia en procesos y aplicaciones y permitiendo que el negocio reaccione a los eventos relevantes a medida que se producen.
- OCI DevOps
Oracle Cloud Infrastructure DevOps (operaciones para desarrolladores) es una plataforma completa de integración y entrega continuas (CI/CD) para que los desarrolladores simplifiquen y automatizen su ciclo de vida de desarrollo de software. OCI DevOps permite a los desarrolladores y operadores desarrollar, crear, probar y desplegar software en colaboración. Los desarrolladores y operadores obtienen visibilidad durante todo el ciclo de vida de desarrollo con un historial de confirmación del origen a través de las fases de creación, prueba y despliegue.
- OCI Identity and Access Management
Oracle Cloud Infrastructure Identity and Access Management (IAM) proporciona control de acceso de usuario para OCI y Oracle Cloud Applications. La API de IAM y la interfaz de usuario le permiten gestionar los dominios de identidad y los recursos que contienen. Cada dominio de identidad de OCI IAM representa una solución de gestión de identidad y acceso independiente o un grupo de usuarios diferente.
- Cluster de Kubernetes
Un cluster de Kubernetes es un juego de máquinas que ejecutan aplicaciones en contenedores. Kubernetes proporciona una plataforma portátil, ampliable y de código abierto para gestionar cargas de trabajo y servicios en contenedores en esos nodos. Un cluster de Kubernetes está formado por nodos de trabajador y nodos de plano de control.
- Equilibrador de carga
Oracle Cloud Infrastructure Load Balancer proporciona la distribución automatizada de tráfico desde un único punto para acceder a varios servidores.
- OCI Object Storage
OCI Object Storage proporciona acceso a grandes cantidades de datos estructurados y no estructurados de cualquier tipo de contenido, incluidas copias de seguridad en bases de datos, datos analíticos y contenido enriquecido como imágenes y vídeos. Puede almacenar datos de forma segura directamente desde las aplicaciones o desde la plataforma en la nube. Puedes ampliar el almacenamiento sin experimentar ninguna degradación del rendimiento o la fiabilidad del servicio.
Utilice el almacenamiento estandar para el almacenamiento "caliente" al que debe acceder de forma rápida, inmediata y frecuente. Utilice este tipo de almacenamiento para el almacenamiento "frío" que conserva durante largos períodos de tiempo y a los a los que rara vez accede.
- Ciencia de datos de OCI
- MLflow (en Kubernetes Engine)
MLflow es una plataforma de código abierto para gestionar el ciclo de vida del aprendizaje automático, incluido el seguimiento de experimentos y el registro de modelos. Se puede desplegar en Kubernetes para ofrecer escalabilidad. En esta arquitectura, MLflow se ejecuta en Kubernetes Engine, almacena artefactos en OCI Object Storage y mantiene el Registro de modelos como fuente de datos para modelos de producción. Permite el control de versiones, la gobernanza y la promoción controlada de modelos.
- OCI Container Registry (OCIR)
OCI Container Registry es un registro de Docker privado gestionado para almacenar y gestionar imágenes de contenedor. Se integra con OCI Identity and Access Management para un control de acceso seguro. En esta arquitectura, almacena formación versionada y sirve imágenes de contenedor. Estas imágenes las consumen los trabajos de Data Science y los despliegues de Kubernetes Engine.
Recomendaciones
- VCN
- Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque en función del número de recursos que tenga previsto asociar a las subredes de la VCN.
- Utilice bloques CIDR que se encuentren dentro del espacio de direcciones IP privadas estándar y seleccione bloques CIDR que no se solapen con ninguna otra red de Oracle Cloud Infrastructure, su centro de datos local u otro proveedor de servicios en la nube al que desee configurar conexiones privadas.
- Después de crear una VCN, puede cambiar, agregar y eliminar sus bloques CIDR.
- Al diseñar las subredes, tenga en cuenta los requisitos de seguridad y el flujo de tráfico. Asocie todos los recursos de un nivel o rol específico a la misma subred, lo que puede servir como límite de seguridad.
- Utilizar subredes regionales.
- Seguridad
- Utilice Oracle Cloud Guard para supervisar y mantener la seguridad de los recursos en Oracle Cloud Infrastructure de forma proactiva. Cloud Guard utiliza recetas de detector que puede definir para examinar los recursos en busca de puntos débiles de seguridad y para supervisar operadores y usuarios en busca de actividades riesgosas. Cuando se detecta una configuración incorrecta o una actividad no segura, Cloud Guard recomienda acciones correctivas y ayuda a realizar esas acciones, en función de las recetas de responsable de respuesta que pueda definir.
- Para los recursos que requieren la máxima seguridad, Oracle recomienda utilizar zonas de seguridad. Una zona de seguridad es un compartimento asociado a una receta de políticas de seguridad definida por Oracle que se basa en las mejores prácticas. Por ejemplo, los recursos de una zona a la que se accede no deben ser accesibles desde la red pública de Internet y deben estar cifrados mediante claves gestionadas por los clientes. Al crear y actualizar recursos en una zona de seguridad, Oracle Cloud Infrastructure valida las operaciones en relación con las políticas de la receta del área de seguridad y deniega las operaciones que violan cualquiera de las políticas.
- Cloud Guard
- Clone y personalice las recetas por defecto proporcionadas por Oracle para crear recetas personalizadas de detector y responsable de respuesta. Estas recetas le permiten especificar qué tipo de violaciones de seguridad generan una advertencia y qué acciones se pueden realizar en ellas. Por ejemplo, puede que desee detectar cubos de Object Storage que tengan visibilidad definida como pública.
- Aplique Oracle Cloud Guard en el nivel de arrendamiento para abarcar el ámbito más amplio y reducir la carga administrativa que supone mantener varias configuraciones.
- También puede utilizar la función Managed List para aplicar determinadas configuraciones a los detectores.
- Grupos de seguridad de red (NSG)
- Puede utilizar los NSG para definir un juego de reglas de entrada y salida que se aplican a VNIC específicas. Utilice NSG en lugar de listas de seguridad, ya que los NSG le permiten separar la arquitectura de subred de la VCN de los requisitos de seguridad de la aplicación.
- OKE
- Despliegue cargas de trabajo de inferencia y flujo de aprendizaje automático en espacios de nombres independientes. Active la ampliación automática y utilice varios pools de nodos para el aislamiento de la carga de trabajo. Utilice controladores de entrada o equilibradores de carga para exponer de forma segura los servicios de inferencia.
- OCI Object Storage
- Utilice OCI Object Storage para juegos de datos, modelos entrenados y artefactos de flujo de aprendizaje automático. Active el control de versiones y las políticas de ciclo de vida para optimizar el almacenamiento y mantener el linaje de modelos.
- Oracle Cloud Infrastructure Data Science
- Utilice trabajos en contenedores para la formación a fin de garantizar la reproducibilidad. Evite los flujos de trabajo manuales basados en bloc de notas en producción. Integre MLflow para el seguimiento de experimentos.
- Equilibrador de carga de OCI
- Utilice un equilibrador de carga para exponer la interfaz de usuario/API de MLflow y los puntos finales de inferencia. Configure listeners y juegos de back-end para diferentes servicios. Utilice HTTPS para un acceso seguro e intégrelo con DNS si es necesario.
Consideraciones
Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia.
- Rendimiento: utilice la escala automática en OKE para cargas de trabajo de inferencia y optimice las unidades de trabajo de Data Science para la formación. Asegúrese de que el flujo de aprendizaje automático se amplía correctamente con artefactos respaldados por Object Storage y de que el equilibrador de carga tiene el tamaño adecuado para manejar el tráfico.
- Seguridad: aplique políticas de OCI Identity and Access Management con el mínimo de privilegios y utilice OCI Vault para la gestión de secretos. Restrinja el acceso a los puntos finales de MLflow, OCI Object Storage e inferencia.
- Disponibilidad: despliegue en dominios de disponibilidad y de errores. Utilice las funciones de alta disponibilidad de OKE y asegúrese de que los servicios de MLflow sean resilientes.
- Costo: utilice la escala automática para optimizar el uso de los recursos informáticos. Aplique políticas de ciclo de vida en OCI Object Storage y ajuste el tamaño correcto de los pools de nodos de OKE. Cierre los recursos no utilizados.
Explorar más
Para obtener más información sobre Data Science, OCI DevOps, OKE y los servicios relacionados de esta arquitectura, consulte los siguientes recursos:
