Lo sentimos. No hallamos ninguna coincidencia para tu búsqueda.

Le sugerimos que pruebe lo siguiente para encontrar lo que busca:

  • Verifique la ortografía de su búsqueda de palabras clave.
  • Utilice sinónimos para la palabra clave que escribió; por ejemplo, intente con “aplicación” en lugar de “software”.
  • Comience una nueva búsqueda.
Comunicarse con nosotros Iniciar sesión en Oracle Cloud

Desarrollo de aplicaciones modernas

Las aplicaciones modernas son difíciles de conseguir. Las herramientas, las restricciones y las posibilidades están cambiando demasiado rápido. Oracle presenta un marco para el desarrollo de aplicaciones con el fin de simplificar la toma de decisiones en arquitectura a fin de crear y ejecutar aplicaciones de alta disponibilidad, resilientes, totalmente seguras y conformes con un conjunto de principios de diseño y recomendaciones tecnológicas.

¿Ya sabes lo que estás buscando hacer? Ve directamente a nuestra biblioteca de arquitectura

Requisitos básicos

Requisitos comunes aplicables a cualquier aplicación moderna.


Seguridad y cumplimiento

Alinee las políticas de seguridad con las mejores prácticas del sector y aplíquelas en todas las capas de la pila de aplicaciones. Garantizar la confidencialidad e integridad de los datos. Utilice la gestión de privilegios para identificar y gestionar quién puede realizar determinadas tareas. Facilite la detección y el diagnóstico de eventos de seguridad.


Disponibilidad

Haga que las aplicaciones estén disponibles 24/7/365 sin tiempo de inactividad, planificadas o de otro modo.


Escalabilidad

Amplíe de forma controlada de decenas a miles a millones de usuarios y gestione volúmenes crecientes de datos sin necesidad de rediseñar la aplicación en el futuro.


Rendimiento

Proporcione la latencia más baja y el mayor rendimiento necesarios para ofrecer la mejor experiencia de usuario posible.


Agilidad

Confíe en herramientas y métodos de automatización modernos para los procesos de creación y despliegue. Evite los cuellos de botella causados por la necesidad de realizar tareas manuales.


Capacidad de observación

Registre las métricas de rendimiento y supervise el rendimiento del sistema para detectar cualquier degradación. Permite a los equipos generar automáticamente alarmas cuando estas mediciones están fuera de los límites esperados.


Resiliencia

Cuando surjan problemas, asegúrese de que las aplicaciones se recuperen correctamente, restaure rápidamente la funcionalidad perdida, evite la pérdida de datos y no afecte negativamente a la experiencia del usuario.


Optimización de costos

Se ejecuta con el menor costo total posible y equilibra todos los demás requisitos.


Portabilidad

Asegúrese de que la arquitectura de la aplicación cumple con los estándares abiertos, lo que facilita la migración de la ubicación local a la nube o entre proveedores.

    Principios de diseño

    Mejores prácticas que rigen las arquitecturas de aplicaciones.

     

    Abrir todo Cerrar todo

  • Utiliza plataformas con poco código cuando sea posible, y lenguajes de programación maduros y marcos ligeros cuando no lo es

    Descripción general
    Los lenguajes y marcos de programación que adoptes para crear tu aplicación desempeñan un papel clave en la entrega y el mantenimiento satisfactorios de la aplicación a largo plazo. Las opciones de idioma y marco tienen consecuencias a largo plazo en cómo puedes escalar tu negocio, utilizar tus aplicación y ofrecer funciones de alta calidad a tus clientes. Los cambios de lenguaje o marco suelen ser costosos. El apoyo a ecosistemas paralelos de múltiples lenguajes y marcos añade complejidad y reduce la agilidad.

    La elección de un idioma y un marco, se repercuten en una serie de factores, como la velocidad de entrega, la estabilidad y la solidez del ecosistema existente, la preparación operativa y el rendimiento de la producción. Utiliza plataformas con poco código siempre que sea posible para poder centrarte en resolver los problemas de tu negocio en lugar de hacer frente a las complicaciones del desarrollo tradicional. Si los requisitos de tu aplicación son más complejos, elige lenguajes maduros y marcos ligeros.

    Detalles del principio
    Las plataformas con poco código permiten crear, probar y desplegar aplicaciones empresariales más rápido que la codificación manual tradicional. Estas plataformas 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. Este enfoque te ayuda a evitar complicaciones en cuanto a visualización, recopilación y análisis de datos, así como en lo referente a seguridad, accesibilidad, rendimiento y globalización. Una plataforma con poco código reduce significativamente estas complicaciones y reduce drásticamente la cantidad de código que mantienes.

    Sin embargo, si tu aplicación tiene requisitos más sofisticados, elige un lenguaje de programación maduro junto con un marco ligero. Al seleccionar un lenguaje de programación, selecciona uno que te proporcione ventajas como:

    • Seguridad
    • Alto rendimiento y eficacia
    • Soporte de herramientas
    • Documentación completa y actualizada
    • Un ecosistema de bibliotecas
    • Conformidad con un conjunto de pruebas o implantación de referencia
    • Una comunidad sólida

    Los lenguajes más nuevos tienden a tener una mayor tasa de cambio en su diseño lingüístico y en el ecosistema y las bibliotecas correspondientes. Una mayor tasa de cambio significa que es más difícil evaluar los riesgos y más costoso realizar cambios posteriormente.

    Al seleccionar un marco, selecciona uno que sea de código abierto. Los marcos de código abierto están constantemente revisados por pares, lo que significa que sus características están cerca de lo que la mayoría de los desarrolladores quieren porque contribuyen a la creación y el mantenimiento de los marcos. Los errores se encuentran y solucionan rápidamente. También debes seleccionar una estructura ligera que consuma pocos recursos, como CPU, memoria, ancho de banda de red o manejadores de archivos.

    Utiliza un marco de aplicación que equilibre la mejora del enfoque de las tareas (la lógica empresarial bajo la que subyacen los elementos fijos y el andamiaje) y la flexibilidad (lo que le permite satisfacer las necesidades de funciones actuales y futuras). Adopta un marco que proporcione valores por defecto fáciles de usar, razonables y sin controversias para funciones comunes, como el registro, la telemetría, la seguridad, la configuración, así como para patrones comunes, como la creación de API de REST.

    Recomendaciones de Oracle
    Oracle APEX es una plataforma con poco código que proporciona componentes de alto nivel, como formularios, gráficos y widgets de interfaz de usuario. APEX también proporciona patrones de diseño comunes a través de un entorno de desarrollo gráfico intuitivo. Las aplicaciones desarrolladas mediante APEX pueden acceder a los datos locales a través de SQL e integrarse con servicios externos mediante las API de REST. Además, puedes publicar la funcionalidad que desarrolles en APEX como API de REST para el consumo externo.

    Si una plataforma con poco código es inadecuada para tu aplicación, adopta Java como lenguaje de programación. Java proporciona un conjunto estable y amplio de funcionalidades para la mayoría de los casos de uso de aplicaciones comunes y cuenta con un ecosistema sano de bibliotecas y marcos fiables y estables para desarrollar aplicaciones modernas. El enfoque de Java en la sencillez y la legibilidad, junto con su excelente soporte para herramientas de desarrollador, incluidas herramientas de análisis estáticos y marcos de prueba, reducen los costos de mantenimiento del software y el riesgo de errores en las aplicaciones de producción.

    Utiliza GraalVM para desarrollar y ejecutar tu aplicación. GraalVM es un JDK que combina la estabilidad de Java con el mejor rendimiento de su clase mediante la optimización dinámica del tiempo de ejecución, la aplicación de parches frecuentes y proactivos de vulnerabilidades de seguridad y herramientas de diagnóstico de bajo costo para el análisis y el diagnóstico del rendimiento, como Java Flight Recorder.

    Cree aplicaciones con un enfoque de API como elemento principal mediante el marco Helidon o Micronaut. Ambos marcos proporcionan andamiaje que reduce considerablemente el tiempo necesario para entregar tu aplicación y patrones fáciles de usar para casos de uso habituales, como las API de REST, en función de un conjunto de opciones de marco sencillas e controvertidas para actividades comunes, como el registro, la telemetría y el almacenamiento. Ambos marcos admiten servicios de alto rendimiento mediante el soporte para E/S sin bloqueo con API reactivas idiomáticas y baja latencia mediante el soporte para bibliotecas de red de alto rendimiento.

    • Elige Helidon MP para aplicaciones estrechamente alineadas con el ecosistema empresarial Java, por ejemplo, CDI, JAX-RS o JPA. El soporte basado en estándares de Helidon para patrones empresariales modernos de Java mediante MicroProfile simplifica el traslado de las aplicaciones Java EE existentes a microservicios.
    • Elige Micronaut o Helidon SE para aplicaciones que no dependen del ecosistema empresarial de Java existente. El andamiaje de aplicaciones de tiempo de compilación de Micronaut aumenta el rendimiento de las aplicaciones en tiempo de ejecución y permite la comprobación a nivel de marco, lo que puede eliminar muchos problemas de seguridad y calidad relacionados con la reflexión y la configuración del tiempo de ejecución.

    Tanto Helidon como Micronaut cuentan con soporte integrado para imágenes nativas de GraalVM, lo que te permite crear aplicaciones compactas y eficientes en la memoria cuando es necesario.

  • Crea tu aplicación como un conjunto de servicios que se comuniquen a través de API de REST

    Descripción general
    Divide las funciones o tareas de la aplicación en servicios independientes y acoplados que funcionan conjuntamente. Diseña cada servicio con un ámbito funcional limitado centrado en una función o funcionalidad. En comparación con una arquitectura monolítica tradicional, este enfoque mejora el mantenimiento de aplicaciones, el desarrollo de funciones, las pruebas, el despliegue y la escalabilidad.

    Adopta un enfoque de diseño de API de REST basado en contratos, con el fin de proporcionar interfaces claras y comprensibles para la comunicación entre servicios y con ellos. Un contrato de API proporciona los mecanismos necesarios para que los equipos colaboren y consuman la funcionalidad sin depender de los detalles internos de la implantación de un servicio. Por ejemplo, un servicio puede ser propiedad exclusiva de un equipo de desarrollo que puede mejorar libremente su implementación sin tener que coordinar las dependencias de código con otros equipos de desarrollo.

    Descripción del contexto
    Inicia un método basado en el contrato especificando la API de REST de un servicio. A continuación, crea un prototipo de implantación de la API para que puedan probarla las partes interesadas que la utilizarán (como los equipos). Cuando todos coinciden en los detalles de la API, cada equipo puede trabajar en paralelo para implantar tanto el servicio como otros servicios que lo consuman.

    Define las aplicaciones de políticas para los acuerdos de nivel de servicio y seguridad (SLA) en una fase temprana del ciclo de vida de tu producto para garantizar que los aspectos del contrato de servicio estén claros para todo el mundo.

    Trata la especificación de la API como código y gestiónala en un sistema de control de versiones junto con el código fuente y las configuraciones de políticas

    Recomendaciones de Oracle
    especifica la API con el formato independiente de la implantación OpenAPI y almacénala en un repositorio proporcionado por Oracle Cloud Infrastructure (OCI) DevOps.

    Implementa tus servicios con un marco ligero de código abierto, como Micronaut o Helidon.

    Implementa tus servicios en plataformas sin servidor, como Oracle Container Engine for Kubernetes u Oracle Functions, para facilitar el despliegue, las posibilidades de escalado y la rentabilidad.

    Utiliza Oracle Cloud Infrastructure API Gateway para crear puntos finales públicos o privados protegidos y controlados a partir de la especificación de la API.

    Utiliza Oracle Cloud Infrastructure (OCI) Service Mesh para simplificar y proteger la comunicación entre los servicios alojados en el clúster de Oracle Container Engine for Kubernetes. OCI Service Mesh también te permite observar todo el tráfico de red entre tus servicios mediante las métricas y los logs emitidos por su componente de proxy que se ejecuta como un sidecar en los pods de las aplicaciones.

  • Empaqueta y despliega la aplicación como contenedores

    Descripción general
    Un contenedor empaqueta código y sus dependencias como una unidad, para que las aplicaciones se ejecuten de forma rápida y fiable en varios entornos informáticos. Una imagen de contenedor es un archivo que, cuando se ejecuta, crea e inicia un contenedor en un entorno informático.

    En comparación con las máquinas virtuales tradicionales, los contenedores son más pequeños, requieren menos recursos y tienen tiempos de inicio más rápidos. También son independientes de la plataforma y pueden ejecutar aplicaciones en cualquier lugar. Para aprovechar estas ventajas, descompón la aplicación en servicios que realizan funciones de negocio discretas y empaqueta cada servicio como contenedor. Para las aplicaciones heredadas, sustituye gradualmente cada función existente de tu aplicación por un servicio en contenedores hasta que se refactorice toda la aplicación.

    Detalles principales
    Al empaquetarse el código y las dependencias de las aplicaciones en una sola unidad ejecutable (una imagen de contenedor), los contenedores son extremadamente portables. Combinando esta portabilidad con la abstracción de infraestructura, los contenedores aportan consistencia operativa a tu aplicación. Tanto si tu aplicación se ejecuta on-premises en un servidor físico como en la nube en una máquina virtual, produce los mismos resultados cada vez.

    Gracias a esta reproducibilidad y previsibilidad consistentes, los contenedores simplifican los procesos DevOps y permiten a tus equipos de desarrollo desplegar tus aplicaciones más rápidamente. Al proporcionar aislamiento a nivel de proceso y, dado que frecuentemente se sustituyen, los contenedores simplifican y agilizan los procesos asociados a la solución de vulnerabilidades de software. El desglose de aplicaciones en servicios modulares en contenedores también los hace muy robustos. Un error o fallo en un servicio individual no produce el cierre de toda tu aplicación y puede actualizar o aplicar parches a cada servicio independientemente del resto de la aplicación.

    A diferencia de una máquina virtual, un contenedor no incluye un sistema operativo propio; en su lugar, comparte el sistema operativo de su host. Como resultado, los contenedores tienen un tamaño menor y un inicio más rápido que las máquinas virtuales. La mayoría de las imágenes de contenedor tienen decenas de megabytes de tamaño en comparación con las máquinas virtuales que pueden tener varios gigabytes y sus tiempos de inicio están en segundos en lugar de los minutos que tarda en iniciar las máquinas virtuales.

    La mejor forma de ejecutar y ampliar tu aplicación con servicios modularizados en contenedores es desplegar un servicio por contenedor. Este enfoque aísla los servicios unos de otros, lo que elimina el tiempo de inactividad y permite una ampliación independiente para cada servicio.

    Aunque puedes desplegar contenedores manualmente, es mejor utilizar un software de gestión de contenedores que se integre con la integración continua y las herramientas de despliegue continuo.

    Recomendaciones de Oracle
    Utiliza Oracle Cloud Infrastructure Registry (Container Registry) para almacenar las imágenes de contenedor y Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) para ejecutar y gestionar tus contenedores. Estos servicios totalmente gestionados están totalmente integrados con diversas funcionalidades de la plataforma Oracle Cloud Infrastructure (OCI), están disponibles en todas las regiones de Oracle Cloud y cumplen estándares normativos como PCI, ISO, SOC, HIPAA y FedRAMP.

    Además de almacenar imágenes de contenedor en Container Registry, puedes almacenar listas de manifiestos (a veces denominadas imágenes de arquitectura múltiple) para admitir varias arquitecturas, como ARM y AMD64. Para identificar y mitigar posibles vulnerabilidades de seguridad, activa la exploración de imágenes en todas las imágenes cargadas en Container Registry. También debes firmar tus imágenes de contenedor para garantizar que solo las imágenes autorizadas y de confianza se despliegan en OKE.

  • Automatización de la creación, la prueba y el despliegue

    Descripción general
    La integración continua (CI) y el despliegue continuo (CD) son un juego de herramientas y procedimientos que los equipos de desarrollo utilizan para ofrecer cambios de código de forma frecuente y fiable. Las mejores prácticas de integración y despliegue continuos incluyen revisiones de código y orientación para pruebas de unidades, pruebas de integración, registros de entrada de código, archivado de tickets y despliegue de aplicaciones en entornos de desarrollo y prueba.

    La integración continua describe una práctica en la que los desarrolladores suelen integrar sus cambios de código en la rama principal de un repositorio compartido. Los cambios de los desarrolladores se validan mediante la creación de una compilación y, a continuación, la ejecución de pruebas automatizadas en la compilación. Las pruebas garantizan que tu aplicación no se pierda cuando se integren nuevos cambios en la rama principal.

    Las ventajas de la integración continua incluyen:

    • Envío de menos errores a producción porque las pruebas automatizadas identifican los fallos de regresión con antelación.
    • Los problemas de integración se resuelven con antelación, lo que facilita el proceso de creación.
    • Los errores se detectan y localizan de forma más rápida y sencilla (ya que cada cambio suele ser pequeño).

    La entrega continua es un paso más allá de la integración continua: después de pasar las pruebas adecuadas, una creación se entrega automáticamente a un entorno de prueba y/o producción. El objetivo de la entrega continua es disponer siempre de una base de código lista para su despliegue en un entorno de producción del cliente.

    Entre las ventajas adicionales de la entrega continua se incluyen:

    • La automatización de despliegues complejos significa que tu equipo dedica menos tiempo a prepararse para una versión.
    • Versiones más frecuentes y aceleración del ciclo de comentarios de los clientes.
    • Iteración más rápida porque hay menos presión en la toma de decisiones para los cambios pequeños.

    El despliegue continuo va un paso más allá de la entrega continua: cada cambio que pase todas las pruebas se despliega automáticamente en el entorno de producción del cliente. No hay intervención humana: solo una prueba con fallos puede impedir que se despliegue un nuevo cambio en producción. Sin intervención humana, el despliegue continuo depende en gran medida de una automatización de pruebas bien diseñada.

    Entre las ventajas adicionales del despliegue continuo se incluyen:

    • Aumento de la velocidad de desarrollo porque no es necesario pausar en cada versión.
    • Mayor satisfacción del cliente gracias a una calidad mejorada y un flujo continuo de mejoras.

    La integración y la entrega continuas ofrecen las mejores prácticas para almacenar, integrar, desplegar y mantener código para automatizar la creación de aplicaciones. Estas mejores prácticas incluyen las siguientes:

    • Aplica el paradigma "shift-left" y céntrate en detectar y prevenir problemas lo antes posible en el ciclo de vida de desarrollo de software (SDLC). Por ejemplo, controla las dependencias de terceros de la aplicación para detectar vulnerabilidades durante la integración continua.
    • Utiliza un repositorio de código basado en Git para almacenar todos tus activos de código. Utiliza un servicio de artefacto inmutable para almacenar activos derivados.
    • Para implementar la integración continua, fusiona todo el código en una rama "versión candidata" al menos una vez al día. Al fusionar código en esa rama, asegúrese de que las compilaciones se disparan automáticamente. Como parte del pipeline de creación, ejecuta todas las pruebas de unidades y corrige inmediatamente los fallos del pipeline antes de continuar el desarrollo en la rama de versión candidata. Utiliza exploraciones de seguridad en el código para detectar vulnerabilidades. No almacenes ningún artefacto que tenga un problema de vulnerabilidad. Corrige todas las vulnerabilidades en la rama de la versión candidata antes de continuar con el desarrollo.
    • Para implementar un despliegue continuo, entrega automáticamente las versiones candidatas en un entorno de prueba o usa despliegues canarios. Cuando se producen despliegues de prueba, créelos automáticamente para que se completen la producción. Si fallan los despliegues de prueba, resuelve inmediatamente los problemas antes de continuar con el desarrollo en la rama de la versión candidata. Utilice las funciones de seguridad como parte de los despliegues para evitar que los artefactos no autorizados y vulnerables se desplieguen en la infraestructura.
    • En el entorno de producción, utilice las herramientas de supervisión para evaluar el estado de las aplicaciones desplegadas y detectar las vulnerabilidades posteriores al despliegue. Si se detectan problemas, implante la reversión automática a la versión anterior. Realiza comprobaciones de seguridad en el entorno posterior al despliegue y resuelve de inmediato los problemas detectados.

    Recomendaciones de Oracle
    Utiliza el servicio DevOps para automatizar el despliegue de las aplicaciones nativas en la nube. En primer lugar, almacena el código en un repositorio de código DevOps y crea una rama de versión. Trabaja en incrementos pequeños para realizar cambios en la rama de liberación y concilia los problemas en la rama diariamente para garantizar su estabilidad. A continuación, utiliza la funcionalidad de disparadores en el repositorio de código para iniciar automáticamente un pipeline de creación de DevOps.

    Utiliza un único pipeline de creación de DevOps para crear todos los artefactos asociados al repositorio de código. Si la creación falla, configura el pipeline de creación para que espere una aprobación antes de finalizar. La solicitud de aprobación debe ir al confirmador que ha activado la creación, y debe resolver la incidencia con una nueva confirmación de código y, a continuación, aprobar la finalización de la creación. Para compilar correctamente, configura el pipeline de creación para entregar automáticamente los artefactos al servicio de registro de artefactos de Oracle Cloud Infrastructure y para disparar automáticamente un pipeline de despliegue DevOps.

    Agrega Application Dependency Management para detectar vulnerabilidades de seguridad (CVE) en dependencias de aplicaciones durante las fases de desarrollo en un pipeline de creación de OCI DevOps. De esta forma, podrás detectar y corregir posibles vulnerabilidades de seguridad tan pronto como se identifiquen.

    Utiliza Resource Manager para crear todos tus entornos de infraestructura en una zona de máxima seguridad y disfrutar automáticamente de seguridad en tus despliegues. Mediante el gestor de recursos, puedes utilizar la infraestructura como código para automatizar la creación de la infraestructura en todas las regiones de forma coherente. A continuación, puedes configurar el pipeline de despliegue DevOps para que se despliegue siempre en los recursos que has creado en la zona de seguridad.

    Crea un único pipeline de despliegue DevOps que despliegue todos los artefactos creados a partir de un único pipeline de creación. Organiza los entornos de despliegue, como la región de OCI, el dominio de disponibilidad y el dominio de errores. Configura el pipeline con una estrategia de despliegue canario, dinámico o azul/verde. Configúralo también para disparar pruebas automáticamente. Activa OCI Monitoring y Application Performance Monitoring en tu aplicación e infraestructura para detectar problemas.

    Si no se detectan problemas y las pruebas se completan correctamente, configura el pipeline de despliegue para desplegar automáticamente los artefactos en el siguiente entorno de la estrategia de despliegue hasta que los artefactos se desplieguen por completo en todos los entornos de producción. Al realizar el despliegue en el entorno de producción, configura el pipeline para que se despliegue en todos los dominios de errores de un dominio de disponibilidad de uno en uno. Despliega cada dominio de disponibilidad dentro de una región de uno en uno y, a continuación, en cada región de uno en uno. Continúa utilizando OCI Monitoring y Application Performance Monitoring en la aplicación y la infraestructura para detectar problemas rápidamente. Configurar alertas y, si alguna métrica clave se reduce de forma repentina durante el despliegue, fallará automáticamente el despliegue y disparará una reversión a la versión anterior.

  • Utiliza los servicios gestionados para eliminar la complejidad del desarrollo y las operaciones de las aplicaciones

    Visión general
    Un servicio gestionado proporciona una funcionalidad específica sin que necesites realizar tareas de mantenimiento relacionadas con la optimización del rendimiento, la disponibilidad, el escalado, la seguridad o la actualización. Con un servicio gestionado, puedes centrarte en brindar funciones a tus clientes, en lugar de preocuparte por la complejidad de las operaciones.

    Un servicio gestionado de Oracle Cloud Infrastructure (OCI) proporciona un componente ampliable y seguro para el desarrollo nativo en la nube. Utiliza servicios gestionados para desarrollar y ejecutar tu aplicación y almacenar tus datos. Obtén las mejores soluciones de su clase sin necesidad de conocimientos en cada área para crear y utilizar tu aplicación.

    Detalles del principio
    Los servicios gestionados permiten crear aplicaciones de alta disponibilidad, escalables, ágiles y de gran rendimiento con seguridad, conformidad y resiliencia.

    Los servicios gestionados se hacen cargo de los aspectos más complejos de los componentes subyacentes de tu aplicación, lo que facilita el almacenamiento y la recuperación de datos, así como la creación y ejecución de tu aplicación. Los servicios se integran con conjuntos de herramientas que automatizan la creación, las pruebas y el despliegue de tu aplicación. Los servicios gestionados mejoran la productividad y reducen el tiempo de comercialización.

    Los servicios gestionados centralizan y automatizan varias tareas de gestión de infraestructura, eliminando los errores humanos y la necesidad de habilidades especializadas. La infraestructura subyacente se mantiene actualizada y segura, y los servicios te permiten supervisar y realizar un seguimiento de las modificaciones o el acceso, lo que garantiza la confidencialidad e integridad de tu aplicación y tus datos.

    Los servicios gestionados tienen alta disponibilidad y posibilidad de ampliación, satisfacen las necesidades de tu aplicación y solo tendrás que pagar por lo que utilizas. Puedes empezar a pequeña escala sin experimentar ninguna merma del rendimiento o la fiabilidad.

    Recomendaciones de Oracle
    Recomendamos los siguientes servicios en la nube:

    • Oracle Autonomous Database para gestionar datos para el almacenamiento de datos o el procesamiento de transacciones. Autonomous Database ofrece bases de datos en memoria, NoSQL y SQL con una ventaja autónoma para reducir la sobrecarga de gestión.
    • Oracle Cloud Infrastructure Container Engine for Kubernetes para crear, ejecutar y gestionar tus contenedores.
    • Oracle Functions para crear, ejecutar y escalar aplicaciones que se ejecutan períodos cortos de manera segura y aislada, sin gestionar ninguna infraestructura.
    • Oracle API Gateway para crear puntos finales privados o públicos protegidos y controlados a partir de las especificaciones de tu API.
    • Oracle Cloud Infrastructure Object Storage para almacenar o recuperar de forma segura una cantidad ilimitada de datos no estructurados de cualquier tipo de contenido. Se escala sin problemas, sin ninguna merma del rendimiento o de la fiabilidad del servicio.
    • Los servicios de Oracle Cloud Observability and Management Platform se integran con todos los servicios anteriores para permitir la visibilidad de logs, métricas y eventos.
    • Oracle Application Express (APEX) para crear rápidamente aplicaciones modernas y basadas en datos con poco código. APEX puede maximizar la disponibilidad y la escalabilidad, para hacer frente a las demandas cambiantes de tu aplicación con poco código. Proporciona gestión automatizada, alto rendimiento consistente, ampliación automática y administración sencilla.

    Estos servicios son altamente disponibles, de alto rendimiento y flexibles. Su infraestructura subyacente se gestiona y recibe los parches más recientes para garantizar que tu aplicación siga siendo segura.

  • Mantén el nivel de aplicación sin estado

    Descripción general
    El estado de una aplicación puede constar de muchos elementos, como cachés de datos, preferencias de un usuario, personalización, mensajes intercambiados entre servicios, la posición en un flujo de trabajo de varios pasos, el despliegue de aplicaciones, la configuración del tiempo de ejecución y una sesión de usuario (por ejemplo, la página que visitó un usuario por última vez o el tamaño y los elementos del carrito de compras de un usuario). Si se pierde el estado de tu aplicación, puede provocar una pérdida de datos, un mal funcionamiento en tu aplicación, una experiencia de usuario inadecuada y, a veces, un fallo completo de la aplicación.

    Si almacenas el estado de tu aplicación en sistemas de archivos locales o en la memoria de un único host, puede que se pierda si tu aplicación experimenta interrupciones, como reinicios o fallos de disco localizados. En su lugar, guarda el estado en almacenes de persistencia externos. Utiliza el menor número de almacenes de persistencia posible; idealmente, solo uno para proporcionar consistencia de datos.

    Detalles del principio
    Los elementos del estado de una aplicación se almacenan habitualmente en varios artefactos con distintos formatos, como objetos serializados, documentos JSON o XML o archivos de texto. Si estos elementos se almacenan en varios almacenes de persistencia, como sistemas de archivos externos, almacenes de mensajes, almacenes de objetos, varias bases de datos o almacenamiento de bloques elásticos, es posible que los diferentes almacenes de datos no se sincronicen y generen inconsistencias de estado. Las aplicaciones también deben implementar transacciones, uniones e idempotencia para garantizar la consistencia de los datos cuando el estado se debe actualizar como una unidad.

    Al dispersar los elementos del estado de una aplicación en varias ubicaciones, aumentan las posibilidades de vulneración de la seguridad. Las operaciones del ciclo de vida, como la adición y eliminación de nodos, la aplicación de parches, la copia de seguridad y la recuperación, y la replicación para desastres y recuperación, se vuelven extremadamente complejas y requieren especial consideración para mantener la consistencia del estado en las distintas ubicaciones.

    Como resultado, un mejor enfoque consiste en almacenar todos los datos de estado y de aplicación en una única base de datos si es posible. Los datos permanecen consistentes en un único almacén y son más fáciles de gestionar. Con este enfoque, se pueden sustituir las instancias de aplicación. Esto ayuda especialmente a arquitecturas de aplicaciones modernas, como microservicios elásticos o instancias efímeras donde existe una instancia solo para servir una o varias solicitudes. La agregación de un nodo se simplifica porque un nuevo nodo puede obtener la última copia del estado y la eliminación de un nodo no provoca la pérdida total del estado. Los parches se pueden aplicar de forma dinámica simplemente sustituyendo los ejecutables. Un nodo se puede restaurar a partir de copias de seguridad y adquirir el estado de la base de datos. El estado se puede replicar sistemáticamente como una unidad en diferentes regiones para la recuperación ante desastres. Tener un estado consistente en distintas regiones permite garantizar que no haya problemas funcionales en tu aplicación después de un failover o switchover.

    Recomendaciones de Oracle
    Si tu aplicación utiliza una base de datos, utiliza la misma base de datos para almacenar su estado. Una base de datos proporciona una mejor disponibilidad, integridad y seguridad que las alternativas, como archivos o representaciones en memoria. Lo ideal es utilizar una base de datos multimodelo (que pueda almacenar diferentes formatos) para almacenar todos los elementos del estado de la aplicación. El uso de una base de datos mulimodelo en lugar de varios almacenes de datos de un solo uso también permite lograr y mantener la coherencia en todos los elementos del estado de tu aplicación. (Nota: Aunque está permitido almacenar el estado almacenado en caché en la aplicación, la aplicación debe estar diseñada para utilizar la base de datos como fuente de datos y poder recrear su estado de la base de datos.) Oracle Database es una solución ideal para este fin. Almacena diferentes formatos y proporciona un rendimiento predecible, por lo que guardar el estado de tu aplicación en ella no disminuye el rendimiento de tu aplicación.

    Si tu aplicación no utiliza una base de datos, utiliza otros almacenes de persistencia duradera, como Oracle Cloud Infrastructure Object Storage, para almacenar el estado. Si el estado de la aplicación no se puede mantener en un solo almacén de datos, diseña tu aplicación para almacenar su estado en varios almacenes de datos que se pueden mantener sincronizados y recuperar como una unidad consistente después del fallo.

    A continuación, te ofrecemos algunas recomendaciones para almacenar el estado en Oracle Database.

    • Estado de objeto de sesión de usuario: Utiliza una asignación de objeto/relación JSON, como JPA, o tablas relacionales.
    • Cachés de datos locales: Para los datos almacenados en caché en el nivel de aplicación, la fuente de datos debe ser la base de datos. Las cachés se deben reconstruir al iniciar la aplicación o según sea necesario. Las actualizaciones en las cachés deben utilizar el método de escritura asincrónica, que actualiza la base de datos backend. Las demás instancias de caché de las instancias de aplicación deben recibir notificaciones de los cambios para poder refrescarse.
    • Datos de configuración de la aplicación: Se trata de artefactos, como puntos finales de conexión, límites, niveles de registro, destinos de log y números de puerto, que normalmente se almacenan como documentos JSON, archivos XML o archivos de propiedades. Utiliza el tipo de dato adecuado para almacenar estos datos en una base de datos.
    • Comunicación entre procesos o llamadas de proceso remoto: Normalmente, los microservicios de aplicaciones y los componentes se comunican entre sí mediante mensajes. Utiliza las colas de transacciones de Oracle Database para que dichos mensajes sean duraderos y para garantizar que sobrevivan y se procesen si se produce una interrupción.
    • Texto (como registros de log de auditoría): Las aplicaciones generan archivos log, como logs de auditoría y logs de diagnóstico. Utiliza la funcionalidad de Oracle Text para almacenar de forma centralizada dichos logs.
    • Supervisión del rendimiento: Las aplicaciones generan métricas o datos de series temporales con fines de supervisión del rendimiento. Datos de series temporales de Oracle Database del usuario o funcionalidad de datos JSON para almacenar dichos datos.
    • Estado del flujo de trabajo: algunos motores de flujo de trabajo almacenan el estado de la aplicación localmente, y la conmutación por error de dichos flujos de trabajo puede generar un estado perdido. Utiliza el motor de flujo de trabajo de la base de datos para evitar estos problemas. Como mínimo, configura los motores de flujo de trabajo para utilizar la base de datos como almacén de persistencia para su estado.
  • Utiliza una base de datos convergente con soporte completo en todos los datos

    Descripción general
    Tu aplicación puede utilizar datos en diversos formatos, como tabulares (relacionales), no estructurados, XML, JSON, espaciales o grafos. Habitualmente, esta variedad requería un tipo de base de datos diferente para cada formato de datos. Por ejemplo: una base de datos relacional para datos relacionales, un almacén de documentos para datos no estructurados o una base de datos de grafos para datos vinculados jerárquicamente. Sin embargo, el uso de varias bases de datos a menudo conlleva una complejidad operativa adicional e incoherencias de datos. En su lugar, utiliza una única base de datos de varios modelos para almacenar, indexar y buscar varios tipos y formatos de datos.

    Aprovecha la funcionalidad de la base de datos para simplificar la lógica de tus aplicaciones. Por ejemplo, utiliza SQL para consultas, uniones y análisis; utilice transacciones para garantizar la consistencia y el aislamiento; y utiliza funcionalidades de análisis y algoritmos de aprendizaje automático integrados para evitar transferencias de datos innecesarias. Para proteger los datos confidenciales, utiliza las funciones de seguridad y el control de acceso de la base de datos y usa la replicación para mejorar la disponibilidad, la escalabilidad y la resiliencia de las aplicaciones.

    Detalles del principio
    Utiliza una base de datos multimodelo para almacenar diferentes tipos de datos, como documentos JSON, gráficos de propiedades y datos relacionales. Las bases de datos multimodelo avanzadas ofrecen soporte completo para cualquier tipo de datos almacenados en la base de datos. Puedes almacenar un nuevo documento JSON, insertar filas relacionales y actualizar un gráfico de propiedades todo dentro de la misma transacción ACID. Puedes utilizar sentencias SQL para unir, filtrar y agregar estos diferentes tipos de datos, lo que proporciona las sólidas garantías de coherencia y simultaneidad a las que estás acostumbrado en las bases de datos relacionales. Además de ofrecer este amplio conjunto de funciones, una base multimodelo también se puede utilizar como almacén de datos de un solo uso, al que se accede mediante API distintas de SQL, como API de REST, API de almacén de documentos y API de grafos.

    Una ventaja clave del uso de una base de datos multimodelo es su capacidad de reutilización. Aunque los datos pueden ser de diferentes tipos y unidades, la tecnología subyacente para gestionar esos datos no cambia. Esto significa que no necesitas aprender distintas tecnologías de base de datos y entender cómo usarlas y ajustarlas para cada tipo de datos. Y como la tecnología permanece constante, no tienes que reescribir tu código de aplicación. Además, una base de datos multimodelo mejora la resiliencia de tu aplicación mediante la reducción de la fragmentación de datos, lo que facilita la copia de seguridad y la recuperación.

    Recomendaciones de Oracle
    Utiliza Oracle Autonomous Database, una base de datos convergente multimodelo, para almacenar, gestionar y analizar todos sus datos. Facilita el mantenimiento de la aplicación mediante vistas para exponer los datos en tablas, de modo que el esquema subyacente se pueda cambiar sin afectar a tus aplicaciones existentes. Utiliza la redefinición basada en edición para actualizar tu aplicación sin tiempo de inactividad. Utiliza Oracle Data Safe para implantar y evaluar controles de seguridad, enmascarar datos confidenciales y accesos a datos de auditoría. Utiliza Oracle Data Guard como caché de lectura altamente escalable para tus datos, y con el fin de mantener una copia de seguridad consistente para la recuperación ante desastres.

    Oracle Autonomous Database realiza tareas operativas sin que la carga de trabajo se vea afectada o interrumpida. Esto significa que no es necesario agregar lógica de compensación compleja a la aplicación para manejar escenarios de escalado o failover. La base de datos gestiona los recursos, como la CPU y el almacenamiento, de forma independiente y proporciona una escalabilidad bidireccional flexible.

  • Seguimiento y supervisión integrales del instrumento

    Descripción general
    Una única solicitud de usuario puede seguir una ruta compleja a través de los múltiples servicios o microservicios que conforman las aplicaciones modernas. El rastreo de punta a punta sigue el recorrido de cada solicitud desde su origen hasta las profundidades de tu infraestructura y te ayuda a depurar la causa raíz de los problemas. La supervisión se suele utilizar como una herramienta de diagnóstico, alertando a los desarrolladores cuando tu aplicación no funciona según lo esperado.

    Los desarrolladores, administradores y responsables de seguridad deben mantener una comprensión oportuna y autorizada del estado, el rendimiento, el estado operativo y los posibles incidentes de seguridad de tu aplicación. Esta comprensión garantiza que el funcionamiento y el rendimiento de tu aplicación cumplan las expectativas durante su ciclo de vida. Además, permite optimizar el diagnóstico de incidentes y la recuperación de aplicaciones. El seguimiento y la supervisión integrales deben ser sencillos de implantar y gestionar sin añadir complejidad a tu aplicación.

    Descripción del contexto
    Es posible que tu aplicación no se comporte como se espera de varias formas. Por ejemplo, puede funcionar mal o sencillamente fallar. A diferencia de las aplicaciones monolíticas tradicionales, las aplicaciones creadas a partir de microservicios presentan desafíos de diagnóstico adicionales debido a las múltiples interacciones entre sus componentes.

    El rastreo es la mejor forma de entender rápidamente lo que ocurre con una solicitud de usuario cuando recorre los microservicios y otros componentes ,como la infraestructura, que componen la aplicación. Utiliza el rastreo de extremo a extremo para recopilar datos sobre cada solicitud de usuario y, a continuación, revisa los datos para ver dónde puede estar experimentando cuellos de botella y latencias tu aplicación. Por ejemplo, una solicitud puede transmitirse y progresar a través de varios microservicios antes de ser satisfecha. Sin una forma de rastrear toda la ruta de una solicitud, no hay forma de determinar la causa raíz de su fallo.

    Por lo general, la supervisión está mucho más enfocada: mejora tu comprensión de cómo se comporta tu aplicación mediante su instrumentación para posteriormente recopilar, agregar y analizar métricas. La supervisión de extremo a extremo también permite una integración inteligente y automatizada con herramientas que ajustan dinámicamente la capacidad de los recursos y coordinan las respuestas a eventos inesperados.

    Disponer de una comprensión clara, precisa y oportuna del estado operativo y del historial de una aplicación no consiste solo en medir la experiencia de un usuario final. Es posible que también necesites mantener el cumplimiento con jurisdicciones regionales o nacionales, lo que puede requerir la capacidad de generar informes de actividad detallados a petición o acreditaciones sobre el manejo de elementos de datos confidenciales específicos.

    En general, las soluciones de supervisión deben ser compatibles con herramientas de terceros y alinearse con las herramientas administrativas de tu entorno en particular. Es importante mantener la flexibilidad del diseño y evitar la dependencia de proveedores.

    Recomendaciones de Oracle
    Crea funcionalidades de seguimiento y supervisión integrales en tu aplicación desde el principio y garantiza su coherencia a lo largo de todo su ciclo de vida. Las capacidades no deben agregar ninguna complejidad al desarrollo, las pruebas y el despliegue, sino ser fáciles de implementar y gestionar. Cuando sea posible, adopta soluciones que se amplíen para adaptarse a la diversidad de plataformas que utilizas actualmente y que podrías desplegar en el futuro.

    Los servicios de Oracle Cloud Infrastructure (OCI), como Monitoring, están diseñados para proporcionar soporte listo para usar de cara a la supervisión. Además, puedes ampliar muchos servicios de OCI a tus componentes de aplicación mediante una experiencia de gestión y despliegue consistente a través de las API y los SDK soportados. Por ejemplo, puedes agregar recopilación de métricas de supervisión automatizada o captura de logs con almacenamiento centralizado para todas las máquinas virtuales y aplicaciones.

    Durante el desarrollo y las pruebas, puedes configurar servicios para recopilar solo información básica de depuración o pruebas de rendimiento. A medida que tu aplicación se acerca al despliegue de producción, aumenta el alcance, la frecuencia y la trazabilidad de la información recopilada realizando actualizaciones simples de los parámetros de configuración existentes.

    Oracle Cloud Infrastructure Service Mesh capta automáticamente una serie de métricas y logs de comunicación para los servicios que se ejecutan en Oracle Container Engine for Kubernetes. Puedes utilizar estos datos para realizar un seguimiento del estado de tus servicios en la malla y mejorar el rendimiento de las aplicaciones.

    Utiliza una recopilación de datos sólida y centralizada para todo el entorno de arrendamiento en la nube, con el fin de proporcionar una única ubicación para el análisis, la investigación coordinada y la generación de alertas. Service Connector Hub ofrece respuestas flexibles, coherentes y personalizables a los eventos. Oracle Cloud Infrastructure (OCI) Logging Analytics permite realizar análisis e investigaciones eficientes de todos tus sistemas de registro de eventos en la nube (y externos). También puedes utilizar Oracle Cloud Infrastructure (OCI) Service Connector Hub, Functions, y Notifications para transformar las métricas y los logs ingeridos en alertas procesables. Además, puedes aprovechar nuestras integraciones con productos y servicios de terceros, como Splunk o Grafana.

    Los siguientes servicios de OCI te ayudan a consolidar tus funciones de registro, supervisión y seguimiento en los entornos que alojan tu aplicación: Logging, Monitoring, Logging Analytics, Application Performance Monitoring, OS Management, Database Management y Java Management Service. Estos servicios totalmente gestionados se integran con recursos de infraestructura de OCI comunes y proporcionan mecanismos compatibles para integrar tus recursos de aplicaciones personalizadas.

  • Elimina el punto único de fallo mediante la replicación de datos automatizada y la recuperación ante fallos

    Descripción general
    Un punto único de fallo es un componente de una aplicación que, al sufrir un fallo, provoca que la aplicación en su conjunto no esté disponible o no sea fiable. Al desarrollar una aplicación para que sea de alta disponibilidad y fiable, utiliza la replicación de datos automatizada para garantizar que el fallo de un solo componente no conlleve la pérdida de datos.

    La replicación de datos entre máquinas y el uso de redes redundantes te protege frente a fallos rutinarios de máquinas y redes. La replicación de datos en centros de datos (o "dominios de disponibilidad") en varias regiones geográficas te protege contra desastres localizados, como incendios, terremotos, inundaciones o huracanes.

    Detalles del principio
    Para que tu aplicación logre una alta disponibilidad, debes asegurarte de que los datos de los que depende permanezcan disponibles cuando se producen fallos. La clave de la alta disponibilidad de los datos es la redundancia mediante la replicación de datos automatizada.

    La replicación es el proceso de copiar y mantener los objetos de base de datos, como las tablas, en varias bases de datos que componen un sistema de base de datos distribuida. Los cambios aplicados en una ubicación se capturan y se almacenan localmente antes de ser reenviados y aplicados en cada una de las réplicas situadas en ubicaciones remotas.

    Las bases de datos replicadas pueden funcionar en dos modos distintos: activo-pasivo y activo-activo. En el modo activo-pasivo, hay una sola réplica principal y una o más réplicas secundarias, y solo la réplica principal participa en el procesamiento de los datos de la aplicación. En el modo activo-activo, todas las réplicas participan en el procesamiento de datos. El modo activo-activo permite lograr un mejor uso de los recursos y una mayor disponibilidad porque no es necesario un failover primario-secundario.

    La redundancia garantiza que las réplicas de datos fallen de forma independiente. Los fallos de máquinas o discos suelen ser independientes, pero un fallo de red o de energía puede provocar que un grupo de máquinas falle simultáneamente. Para protegerte contra estos incidentes, la red y la infraestructura de energía deben ser también redundantes, y las réplicas de datos se deben colocar cuidadosamente en diferentes máquinas y ubicaciones que no pueden fallar juntas.

    Recomendaciones de Oracle
    Los centros de datos de Oracle Cloud Infrastructure (OCI) se han diseñado cuidadosamente para eliminar los puntos únicos de fallo catastrófico. Un centro de datos o dominio de disponibilidad típico contiene varias unidades de fallo independientes conocidas como dominios de errores. Dos dominios de errores independientes no pueden fallar juntos. De manera similar, una sola región puede contar con varios dominios de disponibilidad separados geográficamente para garantizar que dos de ellos no puedan fallar al mismo tiempo.

    Utiliza servicios de almacenamiento OCI, como Block Volumes, Object Storage y File Storage, para replicar datos en los dominios de errores y disponibilidad, con el fin de que ningún punto de fallo pueda afectar la disponibilidad de los datos de la aplicación. Aprovecha el aislamiento de fallos resiliente integrado en OCI usando Container Engine for Kubernetes para desplegar tu aplicación en varios dominios de errores y disponibilidad. Oracle Autonomous Database, Data Guard y GoldenGate proporcionan replicación de hardware y software activa-activa para una alta disponibilidad, así como actualizaciones y aplicación de parches sin tiempo de inactividad. Utiliza estos servicios gestionados para garantizar una alta disponibilidad de tus datos sin necesidad de crear y mantener tu propia infraestructura de almacenamiento.

  • Implanta la defensa automatizada en profundidad para proteger tu aplicación y sus datos

    Descripción general
    La defensa en profundidad es un enfoque en el que varios controles de seguridad redundantes e independientes actúan como capas de defensa para una aplicación. Las capas están diseñadas para proporcionar seguridad incluso si una de ellas falla, por ejemplo, un cortafuegos combinado con detección de intrusiones.

    Sin embargo, la gestión y configuración manual de los controles de seguridad puede ser compleja, opaca y propensa a errores, tanto individuales como colectivos. En su lugar, protege tu aplicación y sus datos mediante controles de seguridad automatizados.

    Descripción del contexto
    La defensa en profundidad gestiona los riesgos mediante el uso de diversos controles que abarcan los elementos físicos, técnicos, administrativos, operativos, de personal y de procedimiento de la seguridad. La independencia de estos controles significa que proporcionan una defensa profunda que da respuesta a los fallos, exploits u otras vulnerabilidades de seguridad. Estos controles están diseñados para abordar los riesgos de diferentes maneras y proporcionar funciones de registro, auditoría y más para garantizar que los intentos de violación de la seguridad se detecten y se informe a las partes interesadas pertinentes.

    En lugar de tener que configurar manualmente un conjunto complejo de controles de seguridad, utiliza controles automatizados sencillos y prescriptivos para proteger tu aplicación. Los controles de seguridad automatizados eliminan los errores humanos (una causa raíz de muchos incidentes de seguridad) y te ayudan a proteger tu aplicación y sus datos necesidad de convertirte en un experto en seguridad.

    Recomendaciones de Oracle
    Implanta controles de seguridad automatizados y de fácil uso en todas las etapas del ciclo de vida de tu aplicación, incluidos el desarrollo, la creación, las pruebas, el despliegue y el tiempo de ejecución. Verifica los usuarios, los permisos y las políticas de acceso en cada paso del ciclo de vida y asegúrate de que el acceso se otorga solo cuando sea necesario. Detecta problemas de seguridad que se introducen al principio del ciclo de vida de desarrollo del software. La detección temprana garantiza que tu aplicación se despliegue en producción con mejores prácticas de arquitectura de seguridad y que los problemas de seguridad operativa causados por configuraciones incorrectas o vulnerabilidades reveladas se detecten y mitiguen.

    Oracle Cloud Infrastructure (OCI) ofrece varios servicios de seguridad automatizados para proteger tu aplicación y sus datos. A continuación te ofrecemos algunas recomendaciones para utilizar los servicios de OCI:

    • Utiliza Web Application Firewall (WAF) para limitar el tráfico desde ubicaciones desconocidas. Para la seguridad de la capa de transporte (TLS), utiliza certificados para los equilibradores de carga y recurre a la rotación automática. Activa el WAF en cada equilibrador de carga que sirva contenido HTTPS. Activa reglas gestionadas por Oracle y realiza ajustes para evitar los falsos positivos. Limita el tráfico de países con los que no realizas negocios mediante reglas de acceso de IP geográfica. Utiliza la inteligencia de amenazas que incorpora el WAF para bloquear los nodos de Tor.
    • Utiliza Oracle Cloud Infrastructure Identity and Access Management (IAM) para aplicar un enfoque de seguridad centrado en la identidad que permita una sencilla vinculación y gestión de los usuarios. Utiliza OCI IAM en el frontend de la aplicación para autenticar a los usuarios con estrictos métodos de autenticación, al tiempo que mantienes una experiencia de usuario óptima con seguridad adaptable, conexión social o federada opcional o autenticación sin contraseña (en función de los requisitos). Apoya el cumplimiento de los requisitos normativos permitiendo a los usuarios gestionar su consentimiento para las condiciones de uso y facilitando el cumplimiento los requisitos de residencia de datos. Usa OCI IAM en el backend para restringir el acceso a los componentes de tu aplicación según proceda. Aplica la autenticación para los administradores mediante opciones de autenticación multifactor (MFA) potentes. Aplica políticas de seguridad sólidas que permitan el acceso solo mediante permisos otorgados explícitamente. Separa las responsabilidades para que el acceso se limite a quienes lo necesitan.
    • Cifra los datos estáticos con las claves almacenadas en Oracle Cloud Infrastructure (OCI) Vault respaldados con módulos de seguridad de hardware. Tal vez prefieras utilizar claves de cifrado independientes para cada servicio, pero alinear las entidades de OCI Vault con compartimentos. Rota las claves de cifrado maestras al menos una vez al año y las claves de datos cada tres meses. Utiliza un almacén privado en producción y replica las claves en regiones secundarias. Crea copias de seguridad y almacénelas en Oracle Cloud Infrastructure Object Storage en una región independiente. Protege las claves de cifrado y restringe el acceso a las claves solo a las personas autorizadas por el propietario de la aplicación.
    • Utiliza principios de seguridad incorporados para autorizar a las instancias informáticas a realizar acciones en otros servicios de OCI.
    • Aplica el principio de accesibilidad mínima para el aislamiento de los puntos final mediante la función de grupos de seguridad de red en las redes virtuales en la nube (VCN) de OCI.. Activa el registro de NetFlow en cada VCN. Supervisa el registro de DNS para monitorear la actividad de criptominería o de comando y control en el servidor.
    • Inicia tu aplicación en una configuración segura por defecto gracias a Oracle Security Zones. Utiliza zonas de seguridad máximas para compartimentos con subredes privadas. Asegúrate de que el acceso de operadores a cualquier instancia informática de subredes privadas pase por Oracle Cloud Infrastructure Bastion.
    • Activa Oracle Cloud Guard y resuelve o acepta y desactiva todos los problemas. Activa las notificaciones de retraso y trata los nuevos problemas con urgencia.
    • Activa Oracle Data Safe para proteger Oracle Databases supervisando los usuarios y los accesos. Data Safe también analiza las bases de datos en busca de mejores prácticas de seguridad y alerta sobre divergencias.
    • Examina periódicamente instancias y contenedores para detectar problemas de seguridad conocidos utilizando Oracle Cloud Infrastructure Vulnerability Scanning Service.
    • Utiliza Oracle Cloud Infrastructure (OCI) Service Mesh para autenticar y cifrar la comunicación entre los servicios de tu clúster de Oracle Container Engine for Kubernetes (OKE). OCI Service Mesh también permite configurar políticas de acceso para controlar la comunicación entre servicios y validar solicitudes externas.

Patrones de arquitectura

Patrones con opinión con opciones de tecnologías recomendadas.


Aplicaciones web o móviles

Las aplicaciones web suelen contener un front-end que es lo que ven los usuarios y un backend que tiene la lógica de negocio. En respuesta a una solicitud de usuario o API, una aplicación web interactúa con la API o con los datos almacenados en un sistema de archivos, almacenamiento de objetos, almacenamiento de bloques o base de datos. La aplicación debe admitir diferentes clientes, como exploradores y dispositivos móviles, e interactuar con otros sistemas y aplicaciones mediante API.

Mensajería

Las soluciones de mensajería conectan los componentes de la aplicación, incluidos los sistemas locales existentes a las soluciones en la nube. Esto puede activar la transferencia de datos como parte de un pipeline de procesamiento distribuido bien definido o para la publicación de mensajes en varios sistemas descendentes independientes que evolucionan de forma independiente.

Según eventos

En la nube, un evento es cualquier incidencia o cambio significativo en un sistema. Los principios básicos de una arquitectura basada en eventos son eventos de captura, comunicación, proceso y persistencia. Al crear una aplicación basada en eventos en Oracle Cloud Infrastructure (OCI), puedes suscribirte a los cambios en los recursos en la nube y a los eventos generados por la aplicación. Esto te permite responder a ellos casi en tiempo real. La mayoría de las aplicaciones modernas creadas con microservicios se basan en una arquitectura basada en eventos.

Big data y analítica

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. 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.

Aprendizaje automático (AA) e IA

Los científicos de datos e ingenieros de aprendizaje automático no desean dedicar tiempo al aprovisionamiento, la actualización, la aplicación de parches y la protección de la infraestructura. Quieren crear, entrenar, desplegar y supervisar modelos que afecten al negocio. Una plataforma de aprendizaje automático debe estar completamente gestionada y permitirles realizar todos estos pasos en el ciclo de vida de desarrollo de modelos.

Extensiones de SaaS

Oracle Fusion Cloud, la oferta de software como servicio (SaaS) empresarial de Oracle, abarca soluciones para áreas como HCM, ERP, SCM y CX. Proporciona una funcionalidad extensa, pero a veces las organizaciones desean crear una interfaz de usuario personalizada y procesos de negocio que extiendan esa funcionalidad. Estas aplicaciones de extensión se integran con información de Oracle Fusion Cloud, utilizan la misma capa de seguridad y, a menudo, enmascaran datos de otros sistemas, lo que brinda una experiencia de usuario que se integra a la perfección con las aplicaciones de Oracle Cloud.

Con poco código

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 relaciones entre las categorías se ilustran de la siguiente forma: la categoría Idiomas y Marcos es un input de la categoría DevOps que, a su vez, lo es de la categoría Aplicación. Estas tres categorías cuentan con el apoyo de la categoría Seguridad y Gobernanza que, por su parte, cuenta con el apoyo de la categoría Observabilidad y Gestión. Cada categoría contiene imágenes que representan las tecnologías más destacadas para esa categoría.

Recomendaciones de tecnología y plataforma