Despliegue de una carga de trabajo MongoDB migrada a Oracle Exadata Database Machine
Las cargas de trabajo y las aplicaciones que utilizan documentos y bases de datos de documentos para desarrollar esquemas y aplicaciones de datos son populares debido a la flexibilidad que ofrecen a los desarrolladores. La flexibilidad del esquema, el desarrollo rápido y la escalabilidad permiten acelerar la creación de prototipos de funciones de aplicaciones, facilitar la evolución de las aplicaciones y la capacidad de crear aplicaciones y funciones iterativamente más pequeñas que los desarrolladores pueden escalar para abordar una gran base de usuarios. Sin embargo, estos tipos de cargas de trabajo tienen sus desafíos, como garantías transaccionales más débiles, versatilidad de consultas de datos y la incapacidad de soportar otras cargas de trabajo en documentos, como análisis o aprendizaje automático.
¿Y si estas cargas de trabajo pueden beneficiarse de las ventajas de las bases de datos de documentos tradicionales y aprovechar las ventajas de las bases de datos relacionales? Por ejemplo, tienen garantías transaccionales más sólidas y funcionalidades agregadas, como análisis y aprendizaje automático, sin la necesidad de replicar datos en otra base de datos o sistema.
Oracle Database 23ai, diseñado para simplificar el desarrollo de aplicaciones de IA, microservicios, gráficos, documentos, espaciales y relacionales, es una plataforma de base de datos convergente que ofrece todo lo que se necesita en una solución potente.
Oracle Exadata Database Machine está diseñado para ser la plataforma de mayor rendimiento y disponibilidad para ejecutar Oracle Database. Exadata ejecuta todos los tipos de cargas de trabajo de base de datos, incluido el procesamiento de transacciones en línea (OLTP), el almacenamiento de datos (DW) y la consolidación de cargas de trabajo mixtas. Fácil y rápido de implantar, Exadata está diseñado para potenciar y proteger sus bases de datos más importantes y es una base ideal para Database as a Service.
Arquitectura funcional
Esta arquitectura de referencia se centra en desplegar la carga de trabajo migrada y no en el proceso de migración. Para obtener más información sobre el proceso de migración, consulte la sección Explorar más.
Una de las funciones clave utilizadas en esta arquitectura es la API de Oracle Database para MongoDB, que permite a las aplicaciones interactuar con recopilaciones de documentos JSON en Oracle Database mediante los comandos MongoDB. Esto permite que el código de aplicación existente funcione con los datos almacenados en Oracle Database 23ai, sin necesidad de refactorizar el código.
El siguiente diagrama ilustra una aplicación típica compuesta por una base de datos, un nivel de backend y un nivel de front-end.
mongodb-logical-arch-migration.zip
Una pila popular utilizada para implementar este patrón es la pila MEAN:
- MongoDB: base de datos de documentos
- Express: marco de backend
- Angular: Marco frontal
- Node.js: servidor backend
Esta arquitectura utiliza una pila MEAN como ejemplo de un despliegue existente para migrar a Oracle Database 23ai. La migración de esta carga de trabajo a Oracle Database 23ai consta de los siguientes pasos de alto nivel:
- Despliegue una instancia de 23ai de Oracle Database de alta disponibilidad en Exadata en varios nodos de base de datos mediante Oracle Real Application Clusters (Oracle RAC).
- Migre metadatos y datos de MongoDB a Oracle Database 23ai.
- Instale y configure los recursos informáticos de nivel de backend, ya sean máquinas virtuales, contenedores u Oracle REST Data Services.
- Configure Oracle REST Data Services para activar la API MongoDB para que la aplicación se pueda comunicar con la base de datos mediante los controladores MongoDB.
- Configure la aplicación para utilizar la nueva cadena de conexión a la base de datos.
- Conecte la aplicación backend a Oracle Database 23ai utilizando las mismas herramientas y controladores MongoDB que se utilizan en la aplicación actual.
Después de migrar la carga de trabajo a Oracle Database, puede mejorar la funcionalidad al activar funciones adicionales, como seguridad mejorada, informes operativos, análisis y aprendizaje automático, sin copiar datos de la base de datos. Oracle Database 23ai es una plataforma multimodelo de carga de trabajo múltiple, que le permite integrar fácilmente funciones que utilizan tipos de datos relacionales, espaciales, gráficos o vectoriales junto con su aplicación existente.
Para mejorar la escalabilidad de la carga de trabajo, asigne más recursos informáticos y memoria a la base de datos. Dado que Oracle Database 23ai es una tecnología de base de datos de múltiples modelos y cargas de trabajo, se pueden agregar funciones adicionales que se basan en tipos de datos relacionales, espaciales, gráficos o vectoriales, trabajando junto con la aplicación existente.
Arquitectura Física
Nivel de frontend
- Se utiliza el despliegue actual.
- Los usuarios pueden conectarse desde Internet o desde la red corporativa.
- La capacidad de DNS está configurada para enrutar solicitudes al centro de datos en espera en caso de failover.
Nivel de backend
- Las aplicaciones existentes se despliegan y utilizan con las mismas instancias informáticas.
- Los servicios Oracle REST Data Services gestionados por el cliente se colocan y despliegan en los servidores de aplicaciones. El código de la aplicación puede conectarse a Oracle Database 23ai a través de Oracle REST Data Services.
- La escalabilidad del nivel de backend se logra utilizando el mecanismo de escalabilidad actual en su lugar, escalando implícitamente Oracle REST Data Services instalado en cada servidor de aplicaciones.
Nivel de base de datos
- Oracle Database 23ai se despliega en Exadata y se utiliza para almacenar y servir documentos JSON en el nivel de backend.
- La API de Oracle Database para MongoDB se activa mediante Oracle REST Data Services, que permite utilizar el código de aplicación existente sin cambios en el código.
Continuidad del negocio
- Se ha conseguido mediante una estrategia de recuperación ante desastres de Oracle Data Guard.
- Se asume una estrategia de recuperación ante desastres cálida, con el nivel de backend y los recursos asociados ya desplegados y en ejecución.
El siguiente diagrama ilustra esta arquitectura de referencia.
mongodb-exadata-machine-physical-arch.zip
El diseño para la arquitectura física:
Continuidad del negocio
- Hay dos centros de datos con despliegues idénticos: uno activo y el otro en espera.
- La dirección de tráfico DNS dirige las solicitudes de los usuarios al centro de datos activo. Si los sondeos de comprobación del sistema de DNS ejecutados en el nivel de aplicación fallan de forma recurrente, el DNS se vuelve a configurar para enrutar el tráfico a la carga de trabajo del centro de datos en espera.
- Un equilibrador de carga distribuye las solicitudes entrantes entre varias máquinas virtuales de nivel backend, lo que evita un único punto de fallo.
- El nivel de backend tiene varias máquinas virtuales que gestionan solicitudes de usuario.
- Oracle REST Data Services gestionado por el cliente se despliega y configura en las máquinas virtuales de nivel backend. A medida que agrega máquinas virtuales, tanto el servidor de aplicaciones como Oracle REST Data Services se escalan automáticamente.
- El objetivo de tiempo de recuperación (RTO) depende no solo del failover de la base de datos, sino también del failover completo al resto de los componentes de carga de trabajo del centro de datos en espera.
- El RTO y el RPO de la base de datos (objetivo de punto de recuperación) dependen del modo de protección configurado de Oracle Data Guard.
- El failover de la base de datos aprovechará el failover manual o automático de Oracle Data Guard, en función de los requisitos detallados de continuidad del negocio.
Red
- Hay una subred pública que recibe las solicitudes de usuario entrantes de Internet.
- Las solicitudes del equilibrador de carga se direccionan a los servidores de nivel backend que atienden las solicitudes del usuario.
- La VM de Exadata está asociada a las redes de cliente y administración.
- Las solicitudes de nivel de backend a la base de datos mediante Oracle REST Data Services utilizan direcciones de red de cliente.
- Los dos centros de datos están interconectados con el ancho de banda y la baja latencia necesarios para admitir una configuración de Oracle Data Guard.
Base de Datos
- Oracle Database 23ai se despliega en un cluster de VM de Exadata.
- El cluster de VM utiliza varios nodos de base de datos para una alta disponibilidad.
- Oracle RAC garantiza que la base de datos utilice varios nodos de base de datos para la carga de trabajo.
Seguridad
- Todos los datos son seguros en tránsito y en reposo.
Las posibles mejoras de diseño que no se muestran en este despliegue por simplicidad incluyen:
- Utilice Active Data Guard para activar la base de datos en espera para el acceso de solo lectura y descargar consultas de análisis operativos.
Recomendaciones
- Despliegue de Aplicación
Considere el uso de un despliegue basado en contenedores con Kubernetes si la aplicación se puede ejecutar en contenedores. Si se utilizan contenedores, considere tener una imagen de contenedor con el código de backend y Oracle REST Data Services gestionado por el cliente ya instalado.
- Seguridad
Considere el uso de las funciones de la opción de seguridad avanzada de Oracle Database para cifrar datos estáticos y activar la ocultación dinámica de datos, se necesita una licencia de Oracle Database Enterprise Edition para utilizar la opción de seguridad avanzada de Oracle Database.
- Capacidad de Observación
Considere el uso de Oracle Data Safe para aumentar aún más la estrategia de seguridad de la carga de trabajo y poder realizar auditorías de la base de datos.
- Evolución de la aplicación
- Considera la posibilidad de desplegar análisis operativos e informes en tiempo real en Oracle Database 23ai utilizando SQL y una interfaz como Oracle APEX, manteniendo los datos dentro de la base de datos para un análisis confiable y en tiempo real.
- Considera el uso de Oracle Database 23ai para el aprendizaje automático con Oracle Machine Learning for SQL, para crear y entrenar modelos con datos JSON sin necesidad de movimiento de datos y para desplegar los modelos junto con la carga de trabajo existente para realizar inferencias eficientes.
- Considere el uso de la base de datos para almacenar tipos de datos adicionales (relacionales, vectoriales, espaciales o gráficos) para agregar funcionalidad y flexibilidad a la carga de trabajo.
- Considera el uso de Exadata y Oracle Database 23ai para la analítica más allá de la analítica operativa, beneficiándote de la compresión de columnas híbridas, un formato de columnas eficiente adaptado para la analítica de datos, que aumenta el rendimiento de la analítica al tiempo que reduce el espacio necesario para almacenar datos. La compresión de columnas híbridas está soportada en Exadata y se incluye con una licencia de Oracle Database Enterprise Edition.