Implantar uma Carga de Trabalho MongoDB Migrada no Oracle Exadata Database Machine
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 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:
- 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).
- Migre metadados e dados do MongoDB para o Oracle Database 23ai.
- Instale e configure o processamento em camada de back-end, sejam VMs, contêineres ou Oracle REST Data Services.
- 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.
- Configure o aplicativo para usar a nova string de conexão do banco de dados.
- 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
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
- 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.