Criar um Pipeline Escalável de MLOps na OCI Usando Serviços Nativos da OCI e MLflow

Esta arquitetura de referência descreve como implementar um pipeline de MLOps escalável e automatizado na Oracle Cloud Infrastructure (OCI).

A arquitetura ajuda as organizações a operacionalizar modelos de machine learning com consistência, governança, velocidade, reprodutibilidade, implementação automatizada, gerenciamento do ciclo de vida do modelo e observabilidade.

A solução integra OCI DevOps, Oracle Cloud Infrastructure Data Science e Oracle Cloud Infrastructure Kubernetes Engine (OKE) para automatizar o ciclo de vida do machine learning de ponta a ponta. As cargas de trabalho de treinamento são conteinerizadas e executadas como jobs do Oracle Cloud Infrastructure Data Science acionados por pipelines DevOps, enquanto o MLflow implantado no OKE fornece recursos de rastreamento de experimentos e registro de modelos, com artefatos armazenados no OCI Object Storage. Após o treinamento, o OCI DevOps implanta automaticamente o modelo aprovado mais recente do Registro de Modelo de MLflow para OKE, e o acesso aos serviços de MLflow e inferência é fornecido por meio do OCI Load Balancer.

Antes de Começar

Antes de implantar esta solução, certifique-se de que os seguintes pré-requisitos sejam atendidos:

  • Uma tenancy ativa do Oracle Cloud Infrastructure com limites de serviço suficientes.
  • Compartimentos configurados para isolamento do ambiente, como desenvolvimento, teste e produção.
  • Políticas do OCI Identity and Access Management para:
    • OCI DevOps
    • Oracle Cloud Infrastructure Data Science
    • OKE
    • OCI Object Storage
    • OCI Vault
    • Notificações do OCI
    • Balanceador de Carga do OCI
  • Uma VCN (rede virtual na nuvem) configurada com:
    • Sub-redes privadas para OKE e Oracle Cloud Infrastructure Data Science.
    • Uma sub-rede pública do OCI Load Balancer se o acesso externo for necessário.
    • Gateway de Serviço da OCI.
    • Gateway NAT.
  • Um cluster do OKE provisionado para:
    • MLflow como um serviço MLOps.
    • Cargas de trabalho de inferência.
  • MLflow implantado no OKE, configurado com:
    • OCI Object Storage como o armazenamento de artefatos.
    • O Registro de Modelo ativado.
  • Um projeto do OCI DevOps com:
    • Repositórios de origem.
    • pipelines de build e implantação.
  • Tópicos e assinaturas do OCI Notifications configurados.
  • Familiaridade com fluxos de trabalho de Docker, Kubernetes e machine learning.

Arquitetura

Essa arquitetura implementa um pipeline automatizado de MLOps no qual o Oracle Cloud Infrastructure DevOps cria contêineres de treinamento e aciona jobs do Oracle Cloud Infrastructure Data Science para treinamento de modelo.

Os jobs de treinamento extraem imagens de contêiner do OCI Container Registry (OCIR) e acessam conjuntos de dados do Oracle Cloud Infrastructure Object Storage por meio do Oracle Cloud Infrastructure Service Gateway. Durante a execução, o treinamento de métricas e artefatos é registrado no MLflow em execução no OCI Kubernetes Engine, com artefatos persistidos no OCI Object Storage para durabilidade e escalabilidade.

Após a conclusão do treinamento, o modelo é registrado no MLflow Model Registry e promovido por meio de estágios definidos. O OCI DevOps aciona automaticamente um pipeline de implantação que recupera a versão de modelo aprovada mais recente e a implanta no OCI Kubernetes Engine como serviço de inferência. O serviço MLflow (plano de controle MLOps) e os pontos finais de inferência são expostos por meio do Oracle Cloud Infrastructure Load Balancer, fornecendo uma camada de acesso unificada e escalável. Em todo o pipeline, o Oracle Cloud Infrastructure Notifications oferece atualizações em tempo real para estágios de build, treinamento e implantação. A solução é executada em uma VCN segura, usando rede privada, Oracle Cloud Infrastructure Vault para gerenciamento de segredos e Oracle Cloud Infrastructure Logging e Oracle Cloud Infrastructure Monitoring para fins de observabilidade.

O diagrama a seguir ilustra essa arquitetura de referência.



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

Essa arquitetura tem os seguintes componentes:

  • Infraestrutura
    • Domínio de disponibilidade

      Domínios de disponibilidade são data centers stand-alone e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou refrigeração ou a rede interna do domínio de disponibilidade. Portanto, uma falha em um domínio de disponibilidade não deve afetar os outros domínios de disponibilidade na região.

    • Compartimento

      Compartimentos são partições lógicas entre regiões em uma tenancy do OCI. Use compartimentos para organizar, controlar o acesso e definir cotas de uso para seus recursos do Oracle Cloud. Em um determinado compartimento, você define políticas que controlam o acesso e definem privilégios para recursos.

    • Gateway de internet

      Um gateway de internet permite o tráfego entre as sub-redes públicas em uma VCN e a internet pública.

    • Região da OCI

      Uma região do OCI é uma área geográfica localizado que contém um ou mais data centers, hospedando domínios de disponibilidade. Regiões são independentes de outras regiões, e grandes distâncias podem separá-las (em países ou mesmo continentes).

    • Lista de segurança

      Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego permitido dentro e fora da sub-rede.

    • Gateway de serviço

      Um gateway de serviço fornece acesso de uma VCN a outros serviços, como o Oracle Cloud Infrastructure Object Storage. O tráfego da VCN para o serviço Oracle atravessa a malha de rede Oracle e não atravessa a internet.

    • Tenancy

      Uma tenancy é uma partição segura e isolada que a Oracle configura no Oracle Cloud quando você se inscreve no OCI. Você pode criar, organizar e administrar seus recursos no OCI em sua tenancy. Uma tenancy é sinônimo de uma empresa ou organização. Normalmente, uma empresa terá uma única tenancy e refletirá sua estrutura organizacional dentro dessa tenancy. Uma única tenancy geralmente está associada a uma única assinatura, e uma única assinatura geralmente tem apenas uma tenancy.

    • Rede e sub-rede virtual na nuvem da OCI

      VCN (rede virtual na nuvem) é uma rede personalizável definida por software que você configura em uma região do OCI. Assim como as redes tradicionais do data center, as VCNs dão a você controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos de CIDR (Classless Inter-domain Routing) não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • OSN (Oracle Service Network)
    • Registro em Log do OCI
      O Oracle Cloud Infrastructure Logging é um serviço altamente escalável e totalmente gerenciado que fornece acesso aos seguintes tipos de logs de seus recursos na nuvem:
      • Logs de auditoria: Logs relacionados a eventos produzidos pelo OCI Audit.
      • Logs de serviço: Logs publicados por serviços individuais, como OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancer, OCI Object Storage e logs de fluxo da VCN.
      • Logs personalizados: Logs que contêm informações de diagnóstico dos aplicativos personalizados, de outros provedores de nuvem ou de um ambiente on-premises.
    • Monitoramento do OCI

      O Oracle Cloud Infrastructure Monitoring monitora ativa e passivamente seus recursos de nuvem e usa alarmes para notificá-lo quando as métricas atendem aos acionadores especificados.

    • Notificações do OCI

      O OCI Notifications transmite mensagens para componentes distribuídos usando um padrão de publicação-assinatura de baixa latência, entregando mensagens seguras, altamente confiáveis e duráveis para aplicativos hospedados na OCI.

    • Oracle Services Network

      O Oracle Services Network (OSN) é uma rede conceitual no OCI reservada para serviços Oracle. Esses serviços têm endereços IP públicos que você pode acessar pela Internet. Os hosts fora do Oracle Cloud podem acessar o OSN de forma privada usando o Oracle Cloud Infrastructure FastConnect ou o VPN Connect. Os hosts em suas VCNs podem acessar o OSN de forma privada por meio de um gateway de serviço.

    • OCI Vault

      O Oracle Cloud Infrastructure Vault permite criar e gerenciar centralmente as chaves de criptografia que protegem seus dados e as credenciais secretas usadas para proteger o acesso aos seus recursos na nuvem. O gerenciamento de chaves padrão são chaves gerenciadas pela Oracle. Você também pode usar chaves gerenciadas pelo cliente que usam o OCI Vault. O OCI Vault oferece um conjunto avançado de APIs REST para gerenciar vaults e chaves.

    • OCI - Firewall de Aplicativo Web

      O Oracle Cloud Infrastructure Web Application Firewall (WAF) é uma aplicação de borda, baseada em regional e compatível com o setor de cartões de pagamento (PCI) anexada a um ponto de imposição, como um balanceador de carga ou um nome do domínio do aplicativo Web. O WAF protege aplicativos contra tráfego mal-intencionado e indesejado na internet. O WAF pode proteger qualquer ponto final voltado para internet, fornecendo uma aplicação consistente de regra entre seus aplicativos.

  • Serviços e Produtos
    • Ciência de Dados da OCI

      O Oracle Cloud Infrastructure Data Science é uma plataforma totalmente gerenciada e serverless que as equipes de ciência de dados podem usar para criar, treinar e gerenciar modelos de machine learning (ML) na OCI. Ele pode ser facilmente integrado a outros serviços da OCI, como Oracle Autonomous AI Lakehouse, Oracle Cloud Infrastructure Object Storage e muito mais. Você pode criar e avaliar modelos de machine learning de alta qualidade que aumentam a flexibilidade dos negócios, colocando os dados confiáveis da empresa para funcionar rapidamente e pode oferecer suporte a objetivos de negócios orientados por dados com implementação mais fácil de modelos de ML.

      O recurso Jobs do serviço Data Science permite que os cientistas de dados definam e executem tarefas repetíveis de aprendizado de máquina em uma infraestrutura totalmente gerenciada.

      O recurso Implantação de Modelo do serviço Data Science permite que os cientistas de dados implantem modelos treinados como pontos finais HTTP totalmente gerenciados que podem fornecer previsões em tempo real, infundindo inteligência em processos e aplicativos e permitindo que a empresa reaja a eventos relevantes à medida que ocorrem.

    • OCI DevOps

      O Oracle Cloud Infrastructure DevOps (operações do desenvolvedor) é uma plataforma completa de integração contínua/entrega contínua (CI/CD) para que os desenvolvedores simplifiquem e automatizem seu ciclo de vida de desenvolvimento de software. O OCI DevOps permite que desenvolvedores e operadores desenvolvam, criem, testem e implantem software de forma colaborativa. Desenvolvedores e operadores obtêm visibilidade em todo o ciclo de vida de desenvolvimento com um histórico de commit de origem por meio das fases de criação, teste e implementação.

    • OCI Identity and Access Management

      O Oracle Cloud Infrastructure Identity and Access Management (IAM) fornece controle de acesso do usuário para OCI e Oracle Cloud Applications. A API do IAM e a interface do usuário permitem gerenciar domínios de identidades e os recursos dentro deles. Cada domínio de identidades do OCI IAM representa uma solução independente de gerenciamento de identidades e acessos ou outra população de usuários.

    • Cluster do Kubernetes

      Um cluster do Kubernetes é um conjunto de máquinas que executam aplicativos em contêineres. O Kubernetes fornece uma plataforma portátil, extensível e de código aberto para gerenciar cargas de trabalho e serviços em contêineres nesses nós. Um cluster do Kubernetes é formado por nós de trabalho e nós de plano de controle.

    • Balanceador de carga

      O Oracle Cloud Infrastructure Load Balancer fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores.

    • OCI Object Storage

      O OCI Object Storage oferece acesso a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de banco de dados, dados analíticos e conteúdo avançado como imagens e vídeos. Você pode armazenar dados com segurança diretamente de aplicativos ou de dentro da plataforma de nuvem. Você pode dimensionar o armazenamento sem sofrer qualquer degradação no desempenho ou na confiabilidade de serviço.

      Use armazenamento padrão para armazenamento "quente" que você precisa acessar com rapidez, rapidez e frequência. Use armazenamento de arquivo compactado para armazenamento "frio" que você retém por longos períodos de tempo e acesso raro.

  • MLflow (no Kubernetes Engine)

    O MLflow é uma plataforma de código aberto para gerenciar o ciclo de vida do ML, incluindo rastreamento de experimentos e registro de modelos. Ele pode ser implementado no Kubernetes para escalabilidade. Nessa arquitetura, o MLflow é executado no Kubernetes Engine, armazena artefatos no OCI Object Storage e mantém o Registro de Modelo como a origem da verdade para modelos de produção. Permite controle de versão, governança e promoção controlada de modelos.

  • OCI Container Registry (OCIR)

    O OCI Container Registry é um registro privado e gerenciado do Docker para armazenar e gerenciar imagens de contêiner. Ele se integra ao OCI Identity and Access Management para controle de acesso seguro. Nesta arquitetura, ele armazena o treinamento com versão e serve imagens de contêiner. Essas imagens são consumidas por jobs do serviço Data Science e implantações do Kubernetes Engine.

Recomendações

Essas recomendações ajudam a melhorar a segurança, a escalabilidade e a capacidade de manutenção do pipeline de MLOps.
  • VCN
    • Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar às sub-redes na VCN.
    • Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão e selecione blocos CIDR que não se sobreponham a nenhuma outra rede no Oracle Cloud Infrastructure, seu data center on-premises ou outro provedor de nuvem para o qual você pretende configurar conexões privadas.
    • Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.
    • Ao projetar as sub-redes, considere o fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos dentro de uma camada ou atribuição específica à mesma sub-rede, que pode servir como um limite de segurança.
    • Usar sub-redes regionais.
  • Segurança
    • Use o Oracle Cloud Guard para monitorar e manter a segurança de seus recursos no Oracle Cloud Infrastructure proativamente. O Cloud Guard usa receitas do detector que você pode definir para examinar seus recursos em busca de pontos fracos de segurança e monitorar operadores e usuários em busca de atividades arriscadas. Quando qualquer configuração incorreta ou atividade insegura é detectada, o Cloud Guard recomenda ações corretivas e ajuda a executar essas ações, com base nas receitas do respondedor que você pode definir.
    • Para recursos que exigem segurança máxima, a Oracle recomenda o uso de zonas de segurança. Uma zona de segurança é um compartimento associado a uma receita de políticas de segurança definidas pela Oracle que se baseiam nas melhores práticas. Por exemplo, os recursos de uma zona de segurança não devem ser acessíveis pela internet pública e devem ser criptografados usando chaves gerenciadas pelo cliente. Quando você cria e atualiza recursos em uma zona da segurança, o Oracle Cloud Infrastructure valida as operações na receita da zona da segurança e nega as operações que violam qualquer uma das políticas.
  • Cloud Guard
    • Clone e personalize as receitas padrão fornecidas pela Oracle para criar receitas personalizadas de detector e respondedor. Essas receitas permitem especificar quais tipos de violações de segurança geram uma advertência e quais ações podem ser executadas nelas. Por exemplo, talvez você queira detectar buckets do serviço Object Storage que tenham visibilidade definida como pública.
    • Aplique o Oracle Cloud Guard no nível da tenancy para cobrir o escopo mais amplo e reduzir a carga administrativa de manutenção de várias configurações.
    • Você também pode usar o recurso Lista gerenciada para aplicar determinadas configurações a detectores.
  • Grupos de segurança de rede (NSGs)
    • Você pode usar NSGs para definir um conjunto de regras de entrada e saída que se aplicam a VNICs específicas. Use NSGs em vez de listas de segurança, porque os NSGs permitem separar a arquitetura de sub-rede da VCN dos requisitos de segurança do seu aplicativo.
  • OKE
    • Implante cargas de trabalho de MLflow e inferência em namespaces separados. Ative o dimensionamento automático e use vários pools de nós para isolamento de carga de trabalho. Use controladores de entrada ou balanceadores de carga para expor com segurança os serviços de inferência.
  • OCI Object Storage
    • Use o OCI Object Storage para conjuntos de dados, modelos treinados e artefatos de MLflow. Ative políticas de controle de versão e ciclo de vida para otimizar o armazenamento e manter a linhagem do modelo.
  • Oracle Cloud Infrastructure Data Science
    • Use jobs em contêineres para treinamento a fim de garantir a reprodutibilidade. Evite fluxos de trabalho manuais baseados em notebook na produção. Integre o MLflow para rastreamento de experimentos.
  • Balanceador de Carga do OCI
    • Use um balanceador de carga para expor a IU/API do MLflow e os pontos finais de inferência. Configure listeners e conjuntos de back-end para diferentes serviços. Use HTTPS para acesso seguro e integre com DNS, se necessário.

Considerações

Estas considerações resumem os principais fatores de desempenho, segurança, disponibilidade e custo do pipeline de MLOps.

Considere os pontos a seguir ao implantar essa arquitetura de referência.

  • Desempenho: Use o dimensionamento automático no OKE para cargas de trabalho de inferência e otimize os formatos de job do serviço Data Science para treinamento. Certifique-se de que o MLflow seja dimensionado adequadamente com artefatos suportados pelo Object Storage e que o balanceador de carga seja dimensionado corretamente para lidar com o tráfego.
  • Segurança: Aplique políticas do OCI Identity and Access Management de menor privilégio e use o OCI Vault para gerenciamento de segredos. Restrinja o acesso ao MLflow, ao OCI Object Storage e aos pontos finais de inferência.
  • Disponibilidade: Implante em domínios de disponibilidade e falha. Use recursos de alta disponibilidade do OKE e garanta que os serviços MLflow sejam resilientes.
  • Custo: Use o dimensionamento automático para otimizar o uso da computação. Aplique políticas de ciclo de vida nos pools de nós do OCI Object Storage e do tamanho direito do OKE. Desligue recursos não utilizados.

Explorar Mais

Esses recursos de documentação da Oracle fornecem mais informações sobre os serviços usados nessa arquitetura de referência.

Para saber mais sobre Data Science, OCI DevOps, OKE e serviços relacionados nesta arquitetura, consulte os seguintes recursos:

Confirmações

  • Autor: Prasanth Prasad
  • Colaboradores: Thangaraj, Karol Stuart