Implantar uma Carga de Trabalho MongoDB Migrada no Oracle Exadata Database Machine

Migre uma carga de trabalho existente que use um banco de dados de documentos, neste caso MongoDB, para o Oracle Database 23ai na infraestrutura do Exadata para desenvolvimento simplificado de aplicações centradas em JSON usando um banco de dados convergente e multimodelo.

Cargas de trabalho e aplicativos que usam documentos e bancos de dados de documentos para evoluir esquemas de dados e aplicativos são populares devido à flexibilidade que oferecem aos desenvolvedores. A flexibilidade do esquema, o desenvolvimento rápido e a escalabilidade permitem a prototipagem acelerada de recursos de aplicativos, a evolução mais fácil dos aplicativos e a capacidade de criar aplicativos e recursos iterativamente menores que os desenvolvedores podem dimensionar para atender a uma grande base de usuários. No entanto, esses tipos de cargas de trabalho têm seus desafios, incluindo garantias transacionais mais fracas, versatilidade de consulta de dados e incapacidade de suportar outras cargas de trabalho em documentos, como análise ou machine learning.

E se essas cargas de trabalho puderem se beneficiar das vantagens dos bancos de dados de documentos tradicionais e aproveitar os benefícios dos bancos de dados relacionais? Por exemplo, tenha garantias transacionais mais fortes e funcionalidades adicionais, como análise e machine learning, sem a necessidade de replicar dados para outro banco de dados ou sistema.

O Oracle Database 23ai, projetado para simplificar o desenvolvimento de IA, microsserviços, gráficos, documentos, aplicações espaciais e relacionais, é uma plataforma de banco de dados convergente que oferece tudo o que é necessário em uma solução avançada.

O Oracle Exadata Database Machine foi projetado para ser a plataforma com o maior desempenho e mais disponível para execução do Oracle Database. O Exadata executa todos os tipos de workloads do banco de dados, incluindo processamento de transações on-line (OLTP), data warehousing (DW) e consolidação de workloads mistas. Simples e rápido de implementar, o Exadata foi projetado para potencializar e proteger seus bancos de dados mais importantes e é uma base ideal para o Database as a Service.

Arquitetura Funcional

Essa arquitetura de referência pressupõe que uma carga de trabalho composta por um aplicativo e um banco de dados MongoDB exista on-premises e será migrada para usar o Oracle Database 23ai como o banco de dados. Ele descreve a arquitetura de estado futura, seus benefícios, como ela pode ser implantada e quais recursos adicionais podem ser usados para aumentar a carga de trabalho existente.

Essa arquitetura de referência se concentra na implantação da carga de trabalho migrada, e não no processo de migração. Para saber mais sobre o processo de migração, consulte a seção Explorar Mais.

Um dos principais recursos usados nessa arquitetura é a API do Oracle Database para MongoDB, que permite que os aplicativos interajam com coleções de documentos JSON no Oracle Database usando comandos MongoDB. Isso permite que o código do aplicativo existente funcione com dados armazenados no Oracle Database 23ai, sem a necessidade de refatorar o código.

O diagrama a seguir ilustra um aplicativo típico composto por um banco de dados, camada de back-end e camada de front-end.



mongodb-logical-arch-migration.zip

Uma pilha popular usada para implementar esse padrão é a pilha MEAN:

  • MongoDB: Banco de dados de documentos
  • Express: Estrutura de back-end
  • Angular: Estrutura front-end
  • Node.js: Servidor de backend

Essa arquitetura usa uma pilha MEAN como exemplo de uma implantação existente para migrar para o Oracle Database 23ai. A migração dessa carga de trabalho para o Oracle Database 23ai consiste nas seguintes etapas de alto nível:

  1. Implante uma instância 23ai do Oracle Database altamente disponível no Exadata em vários nós de banco de dados, usando o Oracle Real Application Clusters (Oracle RAC).
  2. Migre metadados e dados do MongoDB para o Oracle Database 23ai.
  3. Instale e configure o processamento em camada de back-end, sejam VMs, contêineres ou Oracle REST Data Services.
  4. Configure o Oracle REST Data Services para ativar a API MongoDB para que o aplicativo possa se comunicar com o banco de dados usando os drivers MongoDB.
  5. Configure o aplicativo para usar a nova string de conexão do banco de dados.
  6. Conecte o aplicativo de backend ao Oracle Database 23ai usando as mesmas ferramentas e drivers MongoDB usados no aplicativo atual.

Depois de migrar a carga de trabalho para o Oracle Database, você pode aprimorar a funcionalidade ativando recursos adicionais, como segurança aprimorada, relatórios operacionais, análises e machine learning, sem copiar dados do banco de dados. O Oracle Database 23ai é uma plataforma multimodelo e com várias cargas de trabalho, que permite integrar perfeitamente recursos que utilizam tipos de dados relacionais, espaciais, gráficos ou vetoriais ao lado do seu aplicativo existente.

Para melhorar a escalabilidade da carga de trabalho, aloque mais computação e memória ao banco de dados. Como o Oracle Database 23ai é uma tecnologia de banco de dados multimodelo e com várias cargas de trabalho, é possível adicionar recursos adicionais que dependem de tipos de dados relacionais, espaciais, gráficos ou vetoriais, trabalhando com o aplicativo existente.

Arquitetura Física

A arquitetura física dessa carga de trabalho migrada para o Oracle Database 23ai suporta o seguinte:

Camada front-end

  • A implantação atual é usada.
  • Os usuários podem se conectar pela internet ou pela rede corporativa.
  • O recurso de DNS é configurado para rotear solicitações para o data center stand-by em caso de failover.

Camada de back-end

  • Os aplicativos existentes são implantados e usados com as mesmas instâncias de computação.
  • Os Oracle REST Data Services gerenciados pelo cliente são co-localizados e implantados nos servidores de aplicativos. O código do aplicativo pode se conectar ao Oracle Database 23ai por meio do Oracle REST Data Services.
  • A escalabilidade da camada de back-end é obtida usando o mecanismo de escalabilidade atual em vigor, dimensionando implicitamente o Oracle REST Data Services instalado em cada servidor de aplicativos.

Camada de banco de dados

  • O Oracle Database 23ai é implantado no Exadata e é usado para armazenar e fornecer documentos JSON à camada de back-end.
  • A API do Oracle Database para MongoDB é ativada usando o Oracle REST Data Services, que permite que o código do aplicativo existente seja usado sem alterações no código.

Continuidade dos negócios

  • Conseguido usando uma estratégia de recuperação de desastres do Oracle Data Guard.
  • Uma estratégia de recuperação de desastres é assumida, com a camada de back-end e os recursos associados já implantados e em execução.

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



mongodb-exadata-machine-physical-arch.zip

O design da arquitetura física:

Continuidade dos negócios

  • Há dois data centers com implantações idênticas: um ativo e outro em espera.
  • A direção do tráfego DNS direciona as solicitações do usuário para o data center ativo. Se as investigações de verificação de integridade do DNS executadas na camada do aplicativo falharem repetidamente, o DNS será reconfigurado para rotear o tráfego para a carga de trabalho do data center stand-by.
  • Um balanceador de carga distribui solicitações de entrada em várias VMs de camada de back-end, evitando um único ponto de falha.
  • A camada de back-end tem várias VMs que tratam solicitações do usuário.
  • O Oracle REST Data Services gerenciado pelo cliente é implantado e configurado nas VMs de camada de back-end. À medida que você adiciona VMs, o servidor de aplicativos e o Oracle REST Data Services são dimensionados automaticamente.
  • O RTO (Recovery Time Objective) não depende apenas do failover do banco de dados, mas também do failover completo para o restante dos componentes de carga de trabalho no data center stand-by.
  • O RTO e o RPO do banco de dados (objetivo do ponto de recuperação) dependem do modo de proteção configurado do Oracle Data Guard.
  • O failover do banco de dados aproveitará o failover manual ou automático do Oracle Data Guard, dependendo dos requisitos detalhados de continuidade dos negócios.

Redes

  • Há uma sub-rede pública que recebe solicitações de usuário recebidas da internet.
  • As solicitações do balanceador de carga são roteadas para os servidores de camada de back-end que atendem às solicitações do usuário.
  • A VM do Exadata é anexada às redes de cliente e administração.
  • As solicitações de camada de back-end para o banco de dados por meio do Oracle REST Data Services usam endereços de rede do cliente.
  • Os dois data centers estão interconectados com a largura de banda e a baixa latência necessárias para suportar uma configuração do Oracle Data Guard.

Banco de Dados

  • O Oracle Database 23ai é implantado em um cluster de VMs do Exadata.
  • O cluster de VMs usa vários nós de banco de dados para alta disponibilidade.
  • O Oracle RAC garante que o banco de dados use vários nós de banco de dados para a carga de trabalho.

Segurança

  • Todos os dados estão seguros em trânsito e em repouso.

As possíveis melhorias de design não descritas nesta implantação por motivos de simplicidade incluem:

  • Use o Active Data Guard para ativar o banco de dados stand-by para acesso somente leitura e descarregar consultas de análise operacional.

Recomendações

Use as recomendações a seguir como ponto de partida para melhorar e desenvolver ainda mais a carga de trabalho. Seus requisitos podem ser diferentes da arquitetura descrita aqui.
  • Implantação do Aplicativo

    Considere usar uma implantação baseada em contêiner usando o Kubernetes se o aplicativo puder ser executado em contêineres. Se os contêineres forem usados, considere ter uma imagem de contêiner com o código de back-end e o Oracle REST Data Services gerenciado pelo cliente já instalado.

  • Segurança

    Considere o uso dos recursos da Opção de Segurança Avançada do Oracle Database para criptografar dados em repouso e ativar a redação dinâmica de dados, é necessária uma licença do Oracle Database Enterprise Edition para usar a Opção de Segurança Avançada do Oracle Database.

  • Observabilidade

    Considere o uso do Oracle Data Safe para aumentar ainda mais a postura de segurança da carga de trabalho e ser capaz de executar auditoria de banco de dados.

  • Evolução do Aplicativo
    • Considere implementar análises operacionais e relatórios em tempo real no Oracle Database 23ai usando SQL e um frontend como o Oracle APEX, mantendo dados dentro do banco de dados para análise confiável e em tempo real.
    • Considere usar o Oracle Database 23ai para machine learning usando o Oracle Machine Learning for SQL, para criar e treinar modelos com dados JSON sem necessidade de movimentação de dados e para implementar os modelos juntamente com a carga de trabalho existente para inferência eficiente.
    • Considere usar o banco de dados para armazenar tipos de dados adicionais (relacional, vetorial, espacial ou gráfico) para aumentar a funcionalidade e a flexibilidade da carga de trabalho.
    • Considere usar o Exadata e o Oracle Database 23ai para análise além da análise operacional, beneficiando-se da Hybrid Columnar Compression, um formato colunar eficiente adaptado para análise de dados, que aumenta o desempenho analítico e reduz o espaço necessário para armazenar dados. A Hybrid Columnar Compression é suportada no Exadata e está incluída com uma licença do Oracle Database Enterprise Edition.

Explorar Mais

Saiba mais sobre a implantação de cargas de trabalho migradas de MongoDB para o Oracle Exadata Database Machine.

Revise estes recursos adicionais:

Confirmações

  • Autor: José Cruz
  • Colaboradores: Massimo Castelli, Simon Griffiths, Matt DeMarco, Julian Dontcheff