Las arquitecturas de referencia aplican principios de diseño específicos para satisfacer los requisitos básicos del desarrollo moderno de aplicaciones. Estos principios permiten a los desarrolladores crear aplicaciones web y móviles que integren plataformas de mensajería y de análisis basados en datos/IA/AA. Las arquitecturas controladas por eventos pueden reaccionar a eventos en tiempo real. Estos patrones de arquitectura ayudan a acelerar el desarrollo de aplicaciones personalizadas en finanzas, minoristas, sanidad, energía, fabricación y también ayudan a ampliar las aplicaciones de Oracle empaquetadas. La mayoría de las aplicaciones empresariales están centradas en los datos, con una variedad de datos y están mejor desarrolladas en una base de datos convergente. La programación mediante lenguajes populares Java, Python, Javascript, Go, etc. también está soportada en estos patrones de arquitectura. El desarrollo de aplicaciones con poco código comprime los niveles de tecnología necesarios y es una buena opción para algunas aplicaciones. A continuación, las aplicaciones y los contenedores de base de datos gestionados por Kubernetes se pueden desplegar en Oracle Cloud (OCI), entornos independientes y otras grandes nubes públicas.
Las aplicaciones web y móviles suelen contener un front-end visible para el usuario, un generador de consultas y un back-end que realiza el cálculo de datos y sirve al front-end. En respuesta a una solicitud de usuario o API, una aplicación web interactúa con la API o con datos persistentes almacenados en una base de datos. La aplicación debe soportar diferentes clientes, como exploradores y dispositivos móviles, e interactuar con otros sistemas y aplicaciones mediante el uso de API y eventos. El backend debe ser seguro y ampliarse por demanda.
Crea tu aplicación web como un conjunto de microservicios que pueden probarse, desplegarse y ser propiedad de distintos equipos de aplicaciones de forma independiente. Muestra los servicios como API de REST y comunícate con otros microservicios utilizando una malla de eventos incorporada para eventos y mensajes, o API creadas por microservicio. Incorpora el aprendizaje automático en aplicaciones inteligentes con modelos de aprendizaje automático a través de puntos finales REST en la base de datos.
Las aplicaciones web y móviles deben ser ampliables para gestionar los picos en la demanda y operar bajo presión con baja latencia. Deben estar disponibles las 24 horas del día, los 7 días de la semana, lo suficientemente resistentes como para producir datos cuando se soliciten, y no deben perder información almacenada.
Las aplicaciones móviles se crean con marcos front-end como React Native o SwiftUI, lo que crea la interfaz de usuario que interactúa con un backend para todos sus servicios de datos y enriquecimiento. El desarrollador puede centrarse en el flujo de trabajo y la lógica de la aplicación, acceder al backend a través de API bien definidas que son resilientes, seguras y amplían de forma autónoma.
La seguridad es de suma importancia para las aplicaciones web expuestas a Internet. El cifrado de datos, TLS, la protección DDoS, los firewalls y la gestión granular de acceso a datos y usuarios son críticos. Tanto la seguridad de la base de datos como la seguridad de la aplicación son importantes y se gestionan con contraseñas y claves a las que se accede a través del servicio Oracle Database Wallet y OCI Vault.
Crea un front-end móvil y web en Javascript (React) o SwiftUI. Para los servicios de aplicaciones y datos de backend se incluye soporte de lenguaje políglota (Python, Node.js, Java, PL/SQL, Go, etc.) para activar casos de uso y microservicios escritos en estos lenguajes. Procesa los datos cerca de donde se almacenan.
Una aplicación web o móvil a menudo necesita interactuar con otros sistemas de negocio y servicios que están fuera de la organización. Los servicios que forman parte de una aplicación web deben permitir la interacción y la colaboración mediante API bien definidas. Utiliza Oracle REST Data Services (ORDS) para utilizar API de datos o crear nuevas. Utiliza puntos finales de REST listos para usar con los servicios de OML y la ejecución de Python incorporada de OML4Py para activar el aprendizaje automático. Utiliza los gateways de API disponibles en Oracle Cloud como punto de entrada único para todos los clientes y enruta las solicitudes de API al servicio adecuado. Configura los servicios del equilibrador de carga y los controladores de entrada para una comunicación de API segura entre los microservicios.
El mantenimiento de una infraestructura de aplicación web o móvil es responsable de desplegar, actualizar, aplicar parches, ampliar y proteger la configuración. Utiliza servicios gestionados como Oracle Autonomous Database y una serie de otros servicios gestionados en Oracle Cloud para maximizar la disponibilidad y la escalabilidad, y responder a las cambiantes demandas de las aplicaciones web y móviles. Los servicios gestionados garantizan que la aplicación esté disponible 24 horas todos los días del año y protegida cuando se produce un fallo en el centro de datos donde se aloja la infraestructura. Utiliza servicios de autogestión solo cuando un servicio gestionado por proveedor no esté disponible.
Mantén los componentes de nivel medio sin estado de la aplicación. Si se va a almacenar el estado de la aplicación, utiliza Oracle Autonomous Database para almacenar los datos y el estado de la aplicación y obtener coherencia, durabilidad y capacidad de recuperación rápida de la raíz del estado de la aplicación. Mantener el estado en una base de datos es más sencillo y eficiente en la recuperación general de la aplicación.
Las aplicaciones web y móviles utilizan datos en diferentes formatos y necesitan almacenar, buscar y procesar los datos en un almacén de datos. Los datos pueden ser tabulares (relacionales), no estructurados, con formato XML y JSON, espaciales o gráficos. Tradicionalmente, esta disparidad significaba utilizar una base de datos relacional para datos relacionales, un almacén de documentos para datos no estructurados y bases de datos de gráficos para datos jerárquicos enlazados. Sin embargo, el uso de varias bases de datos genera complejidad operativa e incoherencia de datos. Para solucionar este problema, utiliza Oracle Autonomous Database convergente para almacenar varios tipos de datos, indexarlos y proporcionar formas de buscar los datos y utilizarlos para realizar análisis unificados en todos los datos.
Una aplicación web o móvil puede contener cientos de servicios, propiedad de diferentes equipos de negocio y aplicaciones. La capacidad de observación unificada con interfaces de herramientas abiertas es importante para obtener visibilidad del comportamiento de estos sistemas distribuidos de manera inherente. Centraliza la solución de observabilidad mediante el uso de las métricas, los registros y el rastreo exportados desde todas las capas de la aplicación y los niveles de datos. Estos servicios controlan toda la pila, desde el front-end hasta el backend, lo que ayuda a encontrar y corregir problemas en la aplicación rápidamente, y se convierten en la plataforma para el ajuste continuo del rendimiento.
Las aplicaciones web y móviles deben ser resilientes, poder recuperarse de los fallos y minimizar el tiempo de inactividad y eliminar la pérdida de datos. La redundancia ayuda a eliminar los puntos de fallo únicos: utiliza Kubernetes para gestionar la resiliencia de los contenedores de bases de datos y los contenedores de aplicaciones. El operador de Kubernetes de Oracle Database está diseñado para ello mediante pipelines de integración y despliegue continuos que incluyan el nivel de datos. En clusters de Kubernetes, configura pools de nodos con un mínimo de tres nodos, con cada nodo en un dominio de disponibilidad independiente en una región de dominio de disponibilidad múltiple en OCI. En una única región de dominio de disponibilidad de OCI, configura pools de nodos en Kubernetes con cada nodo en un dominio de errores independiente. Utiliza un único equilibrador de carga público y varios equilibradores de carga privados con varios controladores de entrada para la redundancia en Kubernetes.
Configura Autonomous Database para una máxima disponibilidad mediante Autonomous Data Guard para minimizar el tiempo de inactividad operativo y la pérdida de datos.
Sigue el principio de privilegio mínimo para garantizar que los usuarios y las cuentas de servicio solo tengan el privilegio mínimo necesario para realizar sus tareas. Controla quién tiene acceso a los componentes de la aplicación web mediante Cloud Identity and Access Management (IAM), incluida la base de datos. Utiliza la autenticación multifactor en IAM para aplicar una autenticación compleja a los administradores a fin de restringir el acceso a los componentes de la aplicación y a la base de datos.
Este patrón de arquitectura de datos convergente para una aplicación web o móvil está compuesto por un front-end y microservicios con el backend mediante la aplicación y los servicios de datos integrados en Oracle Autonomous Database. Opcionalmente, para los servicios que no están en la base de datos, los microservicios de los contenedores se gestionan en un cluster de Kubernetes.
El siguiente diagrama ilustra esta arquitectura de referencia.
La arquitectura tiene los siguientes componentes (los componentes pueden ser servicios totalmente gestionados en Oracle Cloud Infrastructure o servicios equivalentes en otros entornos de despliegue. Por ejemplo, Oracle Autonomous Database es un servicio gestionado en OCI y Oracle Database se ejecuta en otros entornos).
En este caso de uso se describe una aplicación móvil de entrega de alimentos de ejemplo denominada GrabDish que utiliza una arquitectura de microservicios con Autonomous Database y bases de datos en contenedores (base de datos de conexión en una base de datos de contenedor) para cada uno de sus servicios. Utiliza la plataforma de mensajería incorporada en Colas de eventos transaccionales (TEQ) para mensajería, lo que simplifica los patrones de microservicios comunes para los desarrolladores. GrabDish muestra los servicios de IA/AA y una variedad de tipos de datos utilizados, para programar la aplicación en varios idiomas. Para obtener más información, consulta los medios de vida en GrabDish en http://bit.ly/simplifymicroservices
Obtén más información sobre los recursos relacionados.
Las soluciones de mensajería conectan los componentes de la aplicación, incluidos los sistemas locales existentes a las soluciones en la nube. Las cargas útiles de mensajes son eventos generados por la aplicación, entradas de usuario, cambios de datos o eventos generados por el dispositivo. La mensajería permite la transferencia de eventos y datos como parte de un pipeline de procesamiento distribuido bien definido o para la publicación de mensajes y eventos en varios sistemas descendentes independientes que procesan, enriquecen y analizan datos. La mayoría de las aplicaciones modernas creadas con microservicios se basan en una arquitectura basada en eventos. Una malla de eventos permite que cualquier evento producido en un sistema se consuma de forma segura en cualquier otro lugar del sistema distribuido donde se necesita casi en tiempo real, utilizando uno o varios agentes de eventos. Después de procesar un evento, los datos (carga útil) se almacenan en un Data Lakehouse para realizar análisis y formación de modelo de IA/AA.
Crea soluciones de mensajería que sean de alta disponibilidad, fiables y flexibles. Utiliza la plataforma de base de datos convergente, los servicios en la nube y las mejores prácticas de Oracle para ofrecer mensajes y soluciones incluso basadas en las necesidades del negocio. Estas recomendaciones ayudan a minimizar la integración del desarrollo, la sobrecarga del despliegue y la carga de gestión a largo plazo.
Las soluciones de mensajería conectan los componentes de la aplicación, incluidos los sistemas locales existentes, a las soluciones en la nube. Permiten la transferencia de datos como parte de un pipeline de procesamiento distribuido y convergente bien definido o publican mensajes y eventos en varios sistemas descendentes independientes que evolucionan de forma independiente.
Estas soluciones también deben acomodar de forma transparente picos no planificados en la carga de mensajes mediante el almacenamiento en buffer de datos y el ajuste dinámico de los recursos del proceso. En el pasado, era difícil para las empresas desplegar y gestionar soluciones de mensajería fiables que cumplieran estos objetivos sin una complejidad y unos gastos excesivos. Sin embargo, esta implementación ahora puede ser sencilla en la nube con servicios de mensajería diseñados para la escala y el rendimiento.
Utiliza los siguientes principios de diseño para crear aplicaciones o plataformas de mensajería con la arquitectura de datos convergente.
Utiliza las API de JMS o Kafka para mensajería con Oracle Transactional Event Queues. El uso de las API estándar permite la portabilidad de aplicaciones y también crear sin problemas aplicaciones de mensajería híbridas y multinube.
Ejecuta aplicaciones en servicios completamente gestionados con el mantenimiento de la infraestructura y la aplicación de parches de seguridad incorporados. Puedes aprovechar la automatización de la ampliación en respuesta a las cargas cambiantes. Utiliza Oracle Autonomous Database como un servicio de Oracle Database totalmente gestionado en OCI. Oracle Transactional Event Queues es una función integrada de la base de datos disponible en todas las regiones de OCI.
Utiliza Oracle Autonomous Database que soporte de forma nativa diferentes tipos de datos: JSON, relacional, gráfico, espacial, etc. Utiliza la funcionalidad de la base de datos para simplificar la lógica de la aplicación. Por ejemplo, utiliza SQL para consultas, uniones y análisis. Utiliza las transacciones para garantizar la coherencia y el aislamiento, así como los algoritmos y análisis de aprendizaje automático incorporados para evitar transferencias de datos innecesarias. Utiliza las funciones de seguridad y el control de acceso de la base de datos para proteger los datos confidenciales y usa la replicación para mejorar la disponibilidad, las posibilidades de ampliación y la resiliencia de la aplicación.
Una aplicación de mensajería puede contener cientos de servicios, propiedad de diferentes equipos de negocio y aplicaciones. La observabilidad unificada con interfaces de herramientas abiertas es importante para obtener visibilidad del comportamiento de estos complejos sistemas distribuidos. En lugar de que cada equipo cree su propia solución, centraliza las métricas, los logs y el rastreo exportados de todas las capas de la aplicación. Las métricas de TEQ se pueden exportar a Prometheus, que admite paneles de control de Grafana para depurar y ajustar el rendimiento.
Elimina los puntos de fallo únicos con la ampliación horizontal y automatiza la recuperación de fallos.
Dado que TEQ forma parte de Oracle Autonomous Database, las aplicaciones se benefician de las capacidades incorporadas de alta disponibilidad y recuperación ante desastres entre regiones sin trabajo adicional.
La mensajería transaccional de TEQ también simplifica la recuperación de fallos externos.
Implementa políticas de control de identidad y acceso (IAM) para que solo los usuarios autorizados puedan crear, enviar o recibir datos de los flujos. Aplica un principio de accesibilidad mínima al punto final mediante la protección del acceso a los puntos finales de mensajería con mTLS y gateway de servicio, que limita el acceso desde Internet. Cifra los datos estáticos y en tránsito para lograr la confidencialidad de los datos. Utiliza la cartera de base de datos para proteger las credenciales de las conexiones a la base de datos.
La arquitectura de base de datos convergente proporciona un diseño para realizar patrones de mensajería en aplicaciones modernas. Este patrón utiliza colas de eventos transaccionales (TEQ) integradas en Oracle Autonomous Database.
Esta arquitectura proporciona simplicidad al eliminar la necesidad de utilizar servicios de streaming o colas externos y proporciona capacidades de mensajería transaccional que simplifican los patrones de microservicios comunes.
Los arquitectos de aplicaciones deben tener en cuenta la escalabilidad, el rendimiento y la simplicidad de esta arquitectura:
FedEx utiliza Oracle E-Business Suite y el gestor de eventos de negocio creado con Oracle TEQ para las cuentas a cobrar de los 15,5 millones de paquetes entregados todos los días.
Oracle Transactional Event Queues activa varios escenarios de autenticación de 2 factores (2-FA) que utilizan contraseñas de un solo uso (OTP)
Obtén más información sobre los recursos relacionados.
Las plataformas con poco código son adecuadas para crear aplicaciones oportunistas en colaboración con las partes interesadas del negocio; crear aplicaciones de análisis y generación de informes de datos; ampliar las aplicaciones SaaS y modernizar las aplicaciones heredadas. Cada línea de código tiene un costo asociado a su creación, mantenimiento, depuración, actualización y protección. Oracle Application Express (APEX) ayuda a los desarrolladores a evitar estos costos proporcionando componentes de alto nivel y patrones de diseño comunes mediante una experiencia de desarrollo gráfica e intuitiva.
Las plataformas con poco código permiten crear aplicaciones empresariales más rápido que con la codificación manual tradicional. Estas plataformas son idóneas para crear aplicaciones oportunistas en colaboración con las partes interesadas de la empresa, crear aplicaciones de análisis e informes de datos, ampliar aplicaciones SaaS y modernizar aplicaciones heredadas.
Con las plataformas de poco código, eres libre de centrarte en resolver el problema empresarial en lugar de en la complejidad del desarrollo de aplicaciones web. Estas complejidades incluyen seguridad, accesibilidad, acceso eficiente a los datos, rendimiento y globalización. Las plataformas con poco código eliminan esta complejidad al reducir drásticamente la cantidad de código que tienes que mantener.
Oracle Application Express (APEX) ayuda a los desarrolladores a evitar los costos asociados al desarrollo tradicional de aplicaciones al proporcionar componentes de alto nivel y patrones de diseño comunes a través de una experiencia de desarrollo gráfico intuitiva.
Oracle Cloud Infrastructure (OCI) proporciona la infraestructura segura, fiable, ampliable y con un alto rendimiento necesaria para las aplicaciones más exigentes. Estas aplicaciones se pueden ampliar para admitir cualquier cosa, desde grupos de trabajo pequeños hasta millones de usuarios finales. En este documento se describen los principios de diseño y la ruta de implantación óptima para diseñar una aplicación con poco código.
Al implementar un patrón con poco código, utiliza los siguientes principios de diseño de desarrollo de aplicaciones modernas:
Adopta un enfoque basado en metadatos y con poco código al desarrollar aplicaciones. Especifica la lógica de la aplicación de forma declarativa siempre que sea posible y escribe el código solo cuando sea necesario. Interactúa directamente con los datos de la base de datos mediante SQL. Utiliza servicios completamente gestionados, como Oracle Autonomous Database y Oracle APEX Application Development (APEX Service), que pueden maximizar la disponibilidad y la escalabilidad para hacer frente a las cambiantes demandas de las aplicaciones con poco código. Además, las capacidades de base de datos como Oracle Real Application Clusters (RAC) y Oracle Data Guard garantizan que las aplicaciones con poco código estén disponibles 24 horas todos los días del año y que puedan realizar un failover si se produce un fallo en el centro de datos donde se aloja la infraestructura.
Utiliza OCI Resource Manager para automatizar el aprovisionamiento de bases de datos autónomas de Oracle y entornos APEX. Utiliza Oracle SQL Developer Command Line (SQLcl) con Liquibase para automatizar el despliegue de los cambios del modelo de datos. Utiliza el despliegue de aplicaciones de un clic de APEX para desplegar manualmente los cambios entre entornos.
Oracle APEX no tiene estado y no tiene servidor, y el estado de la aplicación de tiempo de ejecución se almacena en tablas para que se puedan reutilizar las conexiones entre usuarios. Esto genera un número mucho menor de conexiones que pueden soportar una gran simultaneidad de usuarios.
Las aplicaciones con poco código suelen tener que trabajar con datos en diferentes formatos, como estructurados (relacionales), no estructurados (documentos XML/JSON) y espaciales. Puesto que APEX está embebido en Autonomous Database, puede utilizar SQL, PL/SQL y JavaScript del servidor para trabajar en todos estos formatos de datos. Además, debido a la arquitectura única de APEX, las aplicaciones disfrutan de un acceso a los datos sin latencia, lo que proporciona el rendimiento más óptimo.
Controla y realiza un seguimiento de la actividad de la aplicación APEX mediante las capacidades incorporadas de control de actividad, que incluyen información detallada de rastreo y depuración en un nivel por usuario. Revisa la actividad de nivel de espacio de trabajo y de nivel de instancia de APEX Administration Services. Utiliza el hub de rendimiento para supervisar la actividad de la base de datos, revisar los informes del repositorio de carga de trabajo automática (AWR) para identificar a los principales consumidores de recursos e identificar las recomendaciones de ajuste.
APEX en Oracle Autonomous Database se despliega mediante una arquitectura de alta disponibilidad que abarca el nivel de datos (Exadata y RAC) y el nivel medio (nodos redundantes de Oracle REST Data Services). Utiliza Autonomous Data Guard para aumentar aún más la disponibilidad de tus aplicaciones y protegerlas frente a fallos de dominios de disponibilidad.
Utiliza OCI Identity and Access Management (IAM) para esquemas de autenticación para tus aplicaciones APEX. Asigna esquemas de autorización a aplicaciones y componentes de aplicación de APEX para aplicar el control de acceso en función del rol de usuario o el privilegio. Utiliza las capacidades declarativas incorporadas de APEX para manejar la protección del estado de la sesión (SSP) y el cifrado a nivel de elemento para proteger las aplicaciones y los datos. Utiliza variables de enlace en consultas SQL para evitar la inyección SQL. Configura los timeouts apropiados de la aplicación para garantizar que las sesiones inactivas terminen automáticamente. Ejecuta el asesor de APEX incorporado para detectar posibles problemas de seguridad, como páginas, elementos y botones no protegidos. Utiliza API de escape declarativas y programáticas para proteger frente a scripts de sitios (XSS).
Esta arquitectura es para el desarrollo y despliegue de aplicaciones con poco código mediante Oracle APEX Application Development (APEX Service) y todos los servicios de Oracle Autonomous Database. Al desplegar estos servicios, todos los componentes necesarios para la pila completa se aprovisionan automáticamente y se gestionan por completo. Estos componentes incluyen gateways, equilibradores de carga y Oracle REST Data Services.
En esta imagen se muestra la arquitectura subyacente del desarrollo y despliegue de aplicaciones con poco código mediante Oracle APEX Application Development y todos los servicios de Oracle Autonomous Database. Muestra un entorno totalmente gestionado que contiene una subred pública y una subred privada. Fuera del entorno totalmente gestionado se encuentran estos servicios: aplicaciones APEX, API de Oracle REST Data Services y API de REST externas. Estos servicios acceden al entorno totalmente gestionado a través de un gateway de Internet o de NAT.
La subred pública contiene un equilibrador de carga mientras que la subred privada contiene una instancia de Oracle REST Data Services y una instancia de Oracle Autonomous Database, en la que se es una instancia de Oracle APEX en Autonomous Database.
El tráfico de las aplicaciones APEX y las API de Oracle REST Data Services se enruta a través de un gateway de Internet al equilibrador de carga, que lo dirige bidireccionalmente a la instancia de Oracle REST Data Services en la subred privada. Este servicio, a su vez, se comunica bidireccionalmente con Oracle Autonomous Database. El tráfico de Oracle APEX en la instancia de Autonomous Database se enruta directamente a las API de REST externas a través de un gateway de NAT.
Todos los artefactos de aplicación se despliegan en el nivel de base de datos, que proporciona acceso a datos de latencia cero porque no es necesario tráfico de red entre los niveles de aplicación y base de datos.
Al implementar un patrón con poco código, también debes tener en cuenta lo siguiente:
Considera las alternativas a la arquitectura descrita en este patrón y evita intentar implementar antipatrones.
Algunos ejemplos de la eficacia de un patrón de código bajo son:
Obtén más información sobre los recursos relacionados.
Big data es un conjunto de capacidades y patrones que permite gestionar, recopilar, almacenar, catalogar, preparar, procesar y analizar todos los tipos de datos (no estructurados, semiestructurados y estructurados) tanto si proceden de orígenes como bases de datos, videos, formularios, documentos, archivos log, páginas web o imágenes. Además, una plataforma de aprendizaje automático debe estar totalmente gestionada y permitir que ingenieros de datos y científicos de datos realicen todos estos pasos en el ciclo de vida de desarrollo del modelo.
Las funcionalidades de big data de Oracle abarcan diversos servicios y herramientas para que puedas comenzar tu transición al big data en función de tus habilidades y preferencias. Con la base de datos Oracle convergente se almacena una gran variedad de datos en la base de datos, y se escala hasta múltiples PB de volumen, con una rápida ingesta de datos y eventos (con colas de eventos transaccionales), proporcionando seguridad de todos los datos con seguridad integrada. La arquitectura de datos convergente aborda el volumen, la variedad, la velocidad y la veracidad de los datos en una plataforma de base de datos convergente con Oracle Autonomous Database.
Los científicos de datos e ingenieros de aprendizaje automático no quieren dedicar tiempo al aprovisionamiento, la actualización, la aplicación de parches y la protección de la infraestructura. Quieren dedicar su tiempo a crear, entrenar y desplegar modelos que afectan al negocio. Una plataforma de aprendizaje automático debe estar totalmente gestionada y debe permitirles realizar todos los pasos del ciclo de vida de desarrollo del modelo (crear, entrenar, desplegar y supervisar). Los datos utilizados para el aprendizaje automático deben ser independientes de la fuente y permitir a los científicos de datos acceder a datos consistentes y fiables para crear, entrenar y desplegar modelos.
La mayoría de los kits de herramientas de aprendizaje automático modernos son de código abierto y se escriben en Python. Como tal, una plataforma de aprendizaje automático debe proporcionar soporte nativo para marcos de código abierto y Python. También debe proporcionar a los usuarios la capacidad de personalizar sus entornos de aprendizaje automático instalando sus propias bibliotecas o actualizando las que ya están instaladas. La plataforma debe permitir a los científicos de datos entrenar sus modelos con datos estructurados, no estructurados o semiestructurados, a la vez que escalan los pasos de extracción, transformación y carga (ETL) o de formación vertical u horizontal en una serie de recursos informáticos.
Por último, una plataforma de aprendizaje automático debe garantizar que los modelos se puedan desplegar fácilmente para el consumo en tiempo real con una fricción mínima (normalmente mediante una simple llamada REST), conservando el linaje del modelo desplegado para garantizar que se pueda auditar y reproducir.
Al implantar un patrón de big data y análisis, utiliza los siguientes principios de diseño para el desarrollo moderno de aplicaciones.
Tus datos son tan valiosos como la capacidad para utilizarlos. Las herramientas de big data son populares en la comunidad de código abierto, y la mayoría tiene capacidades equivalentes a las de las bases de datos modernas, especialmente con el almacenamiento de datos, el análisis y el entrenamiento y despliegue de modelos de IA/AA. La convergencia de Oracle Database es una de esas plataformas de big data.
Las capacidades premium nativas de Oracle, como las tablas externas y SQL de Oracle Autonomous Data Warehouse, permiten el uso de almacenes de datos en la base de datos Oracle y el almacenamiento de objetos de OCI para almacenar y analizar petabytes de datos en tiempo real.
DataOps es importante para garantizar que puedes obtener los máximos beneficios de tus pipelines de big data. Utiliza el servicio Oracle Cloud Infrastructure Data Integration para ingerir datos, implantar el procesamiento ETL y la transferencia de ELT, y crear pipelines para conectar tareas en secuencia o en paralelo para facilitar un proceso. Los pipelines pueden incluir varios orígenes de datos populares dentro y fuera de Oracle Cloud. Utiliza las capacidades de programación de Data Integration para definir cuándo y con qué frecuencia ejecutar cada tarea. Utiliza Oracle Database Cloud Service Management para definir trabajos de base de datos que se ejecutan en un juego de bases de datos según un programa. Mejora esto con pipelines de integración y despliegue continuos y capacidad de observación unificada para los desarrolladores de aplicaciones.
Utiliza las mejores herramientas que pueden simplificar, automatizar y acelerar la consolidación de datos para su uso con el máximo valor de negocio. Para almacenes de datos, subalmacenes de datos de departamento y capas de presentación y servicio con datos estructurados, utiliza Autonomous Database, que está optimizada para estos escenarios. La capacidad de Autonomous Data Warehouse también proporciona conectividad a herramientas de análisis, inteligencia empresarial e informes como Oracle Analytics Cloud.
Planifica la seguridad de los datos. Realiza un seguimiento de todos los trabajos que incorporan datos y sacan datos del lago de datos, conserva los metadatos del linaje de datos y asegúrate de actualizar las políticas de control de acceso.
Sigue el principio de privilegio mínimo y asegúrate de que los usuarios y las cuentas de servicio solo tienen el privilegio mínimo necesario para realizar sus tareas. Controla quién tiene acceso a los componentes de la plataforma de datos mediante Oracle Cloud Infrastructure Identity and Access Management. Utiliza la autenticación multifactor en Oracle Cloud Infrastructure Identity and Access Management para aplicar una autenticación compleja a los administradores. Utiliza la seguridad de la base de datos con Oracle Datasafe para obtener la estrategia de seguridad de todos los datos, usuarios y patrones de acceso. Almacena información confidencial, como contraseñas y tokens de autenticación, un servicio de almacén.
Utiliza una base de datos convergente escalable (procesamiento de transacciones y almacén de datos) para operar la empresa que genera datos, almacena y analiza todos los tipos de datos. En esta arquitectura, varios orígenes de datos (usuarios finales, dispositivos, eventos, sensores y aplicaciones) alimentan datos a la base de datos mediante la integración de datos (Oracle GoldenGate) y las colas de eventos transaccionales de Oracle para los datos de transmisión. Los datos se almacenan en Oracle Autonomous Database (Oracle Autonomous Transaction Processing y Oracle Autonomous Data Warehouse) junto con el soporte del almacén de objetos de OCI para big data mediante SQL con tablas externas. Utiliza Oracle Machine Learning para crear y desplegar modelos y Oracle Analytics Cloud para obtener insights de los datos.
Oracle Machine Learning (libros de notas de OML, interfaz de usuario de OML AutoML, servicios de OML, OML4Py) en Oracle Autonomous Database para explorar y preparar los datos, así como para crear, evaluar y desplegar modelos de aprendizaje automático.
Este patrón de arquitectura proporciona potentes capacidades cuando los datos necesarios para entrenar el modelo se incorporan a la base de datos y el procesamiento está cerca de donde se encuentran los datos. Este patrón tiene una variedad de orígenes de datos y eventos que se pueden explorar y preparar con la exploración de datos para la formación de OML, y utilizar OML para crear, entrenar y desplegar modelos con SQL, Python mediante OML4Py, o utilizando AutoML sin código. Importa modelos entrenados en otro lugar, como OCI Data Science (p. ej., Tensorflow o PyTorch) con servicios OML, con el formato de modelo ONNX.
Este patrón utiliza el enfoque de mover los algoritmos a los datos. Se accede a todos los datos desde su origen (mediante tablas externas) o se ingieren y, a continuación, se procesan y almacenan en la base de datos convergente para modelos de AA. Una vez que los modelos se entrenan en la base de datos, se pueden desplegar directamente mediante consultas SQL (mediante operadores PREDICTION) o con API OML4Py. Los modelos con formación externa se pueden desplegar con los servicios de OML. Además, el aprendizaje automático de análisis de texto, espacial y gráfico está disponible en Autonomous Database.
Esta arquitectura utiliza los siguientes componentes:
Se tratan los siguientes orígenes de datos:
Esta arquitectura tiene los siguientes componentes dentro de la VCN:
Ten en cuenta lo siguiente para big data y análisis.
Al implementar el aprendizaje automático y la inteligencia artificial, ten en cuenta estas opciones.
Antipatrones
Al diseñar una implementación, ten en cuenta lo siguiente:
Considera las alternativas a la arquitectura descrita en este patrón y evita intentar implementar antipatrones.
A continuación, se muestran ejemplos de implementaciones que utilizan los servicios de datos y análisis de Oracle Cloud Infrastructure (OCI) para ingerir, almacenar, catalogar, preparar, procesar y analizar big data.
Utiliza Oracle Autonomous Data Warehouse como almacén de datos o Data Mart con Oracle Analytics Cloud.
Gestiona los datos de Autonomous Data Warehouse y utiliza Oracle Analytics Cloud para la visualización de los datos.
Obtén más información sobre los recursos relacionados.