Volver a diseñar aplicaciones por lotes de sistema central en Azure

Azure Data Factory
Azure Databricks
Azure Kubernetes Service (AKS)
Azure SQL Database
Azure Storage

Esta arquitectura de referencia muestra cómo puede usar Azure para rediseñar una aplicación por lotes de sistema central z/OS con el fin de ofrecer un sistema seguro, escalable y de alta disponibilidad en la nube mediante Azure. Debido a las necesidades empresariales en constante evolución, los datos y las aplicaciones deben ofrecer resultados y escalarse sin que la infraestructura se vea afectada. El rediseño hacia la nube puede ayudar a las empresas de los sectores financiero, sanitario, de seguros y del comercio minorista a reducir los tiempos de entrega de sus productos o características, y rebajar los costos.

Arquitectura de sistema central

El primer diagrama muestra la arquitectura de una aplicación por lotes típica que se ejecuta en un sistema central z/OS.

Diagrama de una aplicación por lotes típica que se ejecuta en un sistema central z/OS.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

  1. Los procesos por lotes de sistema central se pueden desencadenar a una hora programada mediante un programador de operaciones, planeamiento y control (OPC). También se pueden desencadenar mediante un mensaje colocado en una cola de mensajes, como un mensaje que anuncia que se ha creado un archivo.

  2. Se usa un dispositivo de almacenamiento de acceso directo (DASD) de sistema central para almacenar archivos de entrada y salida; por ejemplo, los archivos planos que requiere la aplicación. Puede desencadenar el proceso por lotes mediante la creación de un archivo en el almacenamiento DASD.

  3. El proceso por lotes es una ejecución de un conjunto de trabajos, como un trabajo que ejecuta internamente un usuario o un programa del sistema para realizar una tarea específica. Normalmente, los procesos por lotes se ejecutan sin interacción del usuario. Todos los trabajos por lotes de un sistema central se ejecutan bajo el control de un sistema de ejecución de trabajos (JES).

  4. Los programas de procesos por lotes pueden leer y escribir datos de:

    • Una base de datos basada en archivos, como Virtual Storage Access Method (VSAM).
    • Una base de datos relacional, como Db2 o Informix.
    • Una base de datos no relacional, como Information Management System (IMS).
    • Una cola de mensajes.
  5. La salida de la ejecución del trabajo se puede supervisar a través de un programador OPC o de Tivoli Workload Scheduler (TWS). También se emplea la utilidad System Display and Search Facility (SDSF) en JES en el sistema central para comprobar el estado de ejecución del trabajo.

  6. El nivel de administración proporciona los siguientes servicios:

    • Control de código fuente, como Endevor o Changeman.
    • Seguridad, como Resource Access Control Facility (RACF). Esta seguridad proporciona autenticación para ejecutar lotes y acceder a archivos y a la base de datos.
    • Administración de salida que admite el almacenamiento y la búsqueda de registros de ejecución de trabajos.

Arquitectura de Azure

En el segundo diagrama se muestra cómo puede usar los servicios de Azure para rediseñar una aplicación similar con funcionalidades y flexibilidad agregadas.

Diagrama de una aplicación por lotes rediseñada mediante servicios de Azure. Se incluyen varios servicios de ejemplo.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

  1. Use uno de los siguientes desencadenadores para iniciar el proceso por lotes de Azure.

    • Use el programador de trabajos de Azure Databricks o el programador de Azure Function.
    • Cree una tarea de proceso por lotes periódica con Azure Logic Apps.
    • Use un evento de almacenamiento, como la creación o eliminación de un archivo en Azure Blob o File Storage.
    • Use un desencadenador basado en mensajes, como la llegada de un mensaje a Azure Service Bus.
    • Cree un desencadenador de Azure Data Factory.
  2. Almacene los archivos migrados desde el sistema central mediante Azure Blob Storage o Azure Files. Los procesos por lotes que se han rediseñado en Azure pueden leer y escribir datos desde este almacenamiento.

  3. Azure proporciona varios servicios para implementar una carga de trabajo por lotes de sistema central. Seleccione servicios específicos en función de sus requisitos empresariales. Por ejemplo, la potencia de proceso necesaria, el tiempo total de ejecución, la capacidad de dividir el proceso por lotes de sistema central en unidades más pequeñas y la preocupación por los costos.

    1. Azure Databricks es una plataforma de análisis basada en Apache Spark. Los trabajos se pueden escribir en los lenguajes R, Python, Java, Scala y Spark SQL. Proporciona un entorno de proceso con tiempos de inicio rápidos del clúster, terminación automática y escalado automático. Se integra de fábrica con Azure Storage, por ejemplo, Azure Blob Storage y Azure Data Lake Storage. Use Azure Databricks si necesita procesar grandes cantidades de datos en poco tiempo. También es una buena opción si necesita ejecutar cargas de trabajo de extracción, transformación y carga (ETL).
    2. AKS y Service Fabric proporcionan una infraestructura para implementar una arquitectura de aplicaciones basada en servicios. Es posible que no sea rentable para una sola aplicación. Puede refactorizar la aplicación de sistema central mediante Java Spring Boot. La mejor manera de ejecutar aplicaciones de Spring Boot en Azure es usar Azure Spring Apps, un servicio de Spring totalmente administrado. Los desarrolladores de Java pueden usarlo para compilar y ejecutar fácilmente microservicios de Spring Boot en Azure.
    3. Puede rediseñar la aplicación por lotes de sistema central mediante .NET o Java. Batch proporciona la infraestructura para ejecutar esta aplicación a gran escala. Crea y administra un grupo de máquinas virtuales (VM), instala las aplicaciones y, luego, programa trabajos para ejecutarse en las máquinas virtuales. No hay ningún software de programador de clústeres o trabajos que instalar, administrar o escalar. Escriba aplicaciones en cualquier lenguaje de programación compatible con Windows o Linux.
    4. Puede rediseñar programas por lotes de COBOL o PL/1 de corta duración. Para estos programas, use servicios de Azure, como Functions, WebJobs o Logic Apps.
  4. Azure proporciona varios servicios de datos para almacenar y recuperar datos.

    • Puede migrar bases de datos relacionales de sistema central, como Db2 e Informix, con cambios mínimos en la visibilidad de las ofertas de bases de datos relacionales de Azure. Por ejemplo, servicios de base de datos relacionales, como máquinas virtuales, bases de datos o instancias administradas de Azure SQL. También puede usar cualquier sistema de administración de bases de datos relacionales (RDBMS) de código abierto, como Azure PostgreSQL. La selección de una base de datos de Azure depende del tipo de carga de trabajo, las consultas entre bases de datos, los requisitos de confirmación en dos fases y muchos otros factores.
    • Puede migrar bases de datos no relacionales de sistema central, como IMS, sistemas de administración de datos integrados (IDMS) o VSAM a Azure Cosmos DB. Azure Cosmos DB proporciona tiempos de respuesta rápido, escalabilidad automática e instantánea, y velocidad garantizada a cualquier escala. Es una opción rentable para cargas de trabajo impredecibles o esporádicas de cualquier tamaño o escala. Los desarrolladores pueden empezar a trabajar fácilmente sin tener que planear ni administrar la capacidad.
    • Puede usar Azure Cache for Redis para acelerar una aplicación rediseñada.
  5. Las aplicaciones, el sistema operativo y los recursos de Azure pueden usar agentes para enviar registros y métricas a registros de Azure Monitor.

    • Application Insights supervisa la aplicación migrada. Detecta automáticamente anomalías en el rendimiento e incluye herramientas de análisis eficaces que ayudan a diagnosticar los problemas.
    • Azure Log Analytics ayuda a almacenar, indexar, consultar y obtener análisis de los datos de registro recopilados.

    Puede usar la salida de Log Analytics y Application Insights para crear alertas y paneles, o exportarla a servicios externos. También puede usar la salida para realizar acciones, como el escalado de una máquina virtual.

  6. Este nivel proporciona servicios de Azure para el control de código fuente, la seguridad y la administración de salida. Estos servicios pueden constar de Azure DevOps y Microsoft Entra ID.

Componentes

Red e identidad

  • Azure ExpressRoute: permite ampliar las redes locales a la nube de Microsoft a través de una conexión privada de un proveedor de conectividad. Con ExpressRoute, puede establecer conexiones con servicios en la nube de Microsoft, como Microsoft Azure y Microsoft 365.
  • Azure VPN Gateway: una puerta de enlace de VPN es un tipo específico de puerta de enlace de red virtual que se usa para enviar tráfico cifrado entre una red virtual de Azure y una ubicación local por medio de la red pública de Internet.
  • Microsoft Entra ID: Microsoft Entra ID es un servicio de administración de identidades y acceso que se puede sincronizar con un directorio local.

Application

  • Logic Apps: le ayuda a crear y ejecutar tareas y procesos periódicos y automatizados según una programación. Puede llamar a servicios dentro y fuera de Azure, como puntos de conexión HTTP o HTTPS. También puede publicar mensajes en servicios de Azure, como Azure Service Bus, u obtener archivos cargados en un recurso compartido de archivos.
  • Service Bus: puede usar Service Bus para la mensajería entre una interfaz de usuario y servicios back-end. Este sistema puede desacoplar aplicaciones y servicios y aumentar la confiabilidad y el uso.
  • Azure Databricks: es una herramienta de ingeniería de datos basada en la nube que se usa para procesar y transformar grandes cantidades de datos. Esos datos se pueden explorar luego mediante modelos de aprendizaje automático.
  • Azure Spring Apps: facilita la implementación, la administración y la ejecución de microservicios de Spring en Azure. Admite Java y .NET Core.
  • AKS: simplifica la implementación de un clúster de Kubernetes administrado en Azure al descargar la sobrecarga operativa en Azure.
  • Batch: está diseñado para ejecutar computación por lotes de uso general en la nube en muchas máquinas virtuales que se pueden escalar en función de la carga de trabajo que se ejecuta. Es una opción perfecta para aquellos casos en los que se usa ETL o IA para ejecutar varias tareas en paralelo, independientes entre sí.
  • Functions: permite ejecutar pequeños fragmentos de código sin preocuparse por la infraestructura de la aplicación. Con Functions, la infraestructura en la nube proporciona todos los servidores actualizados que necesita para mantener la aplicación en ejecución a gran escala.
  • Azure App Service: con WebJobs, una característica de App Service, puede crear código de lógica de negocios en segundo plano reutilizable como trabajos web.
  • Azure Cache for Redis: las aplicaciones que usan un gran volumen de datos de back-end se pueden desarrollar para escalarse y ofrecer un rendimiento muy optimizado mediante la integración con un almacén de datos en memoria, como Redis. Azure Cache for Redis ofrece tanto el producto de código abierto (OSS Redis) como el producto comercial de Redis Labs (Redis Enterprise), como servicio administrado.

Almacenamiento

El almacenamiento de Azure proporciona varios niveles de acceso a los datos: frecuente, esporádico y archivo. El uso eficaz de estos niveles de almacenamiento puede ofrecerle una buena relación precio-rendimiento.

  • Blob Storage: almacenamiento de objetos seguro y escalable para cargas de trabajo nativas de nube, archivos, lagos de datos, informática de alto rendimiento y aprendizaje automático.
  • Azure Files: recursos compartidos de archivos en la nube de nivel empresarial sencillos, seguros y sin servidor. Azure Files puede ser especialmente útil para las soluciones de sistema central rediseñadas. Proporciona un complemento eficaz para el almacenamiento de SQL administrado.
  • Table Storage: almacén de pares clave-valor NoSQL para el desarrollo rápido con conjuntos de datos semiestructurados de gran tamaño.
  • Azure Queue Storage: colas de mensajes sencillas, rentables y duraderas para cargas de trabajo grandes.
  • Azure SQL: familia de servicios totalmente administrada de Azure para SQL Server. Puede migrar y usar los datos relacionales de forma eficaz con otros servicios de Azure, como Azure SQL Managed Instance, SQL Server en Azure Virtual Machines y Azure Database for MariaDB.
  • Azure Cosmos DB: una oferta no SQL que puede usar para migrar datos no tabulares desde los sistemas centrales.

Supervisión

  • Azure Monitor: ofrece una solución completa para recopilar y analizar la telemetría, y actuar en consecuencia, desde los entornos local y en la nube. Contiene las características Application Insights, registros de Azure Monitor y Azure Log Analytics.

Administración

  • Azure DevOps: rediseñe aplicaciones de sistema central en Azure durante cada fase de desarrollo de software y colaboración en equipo. DevOps ofrece los siguientes servicios:

    • Azure Boards: herramienta ágil de planeamiento, seguimiento de elementos de trabajo, visualización e informes.
    • Azure Pipelines: una plataforma de CI/CD independiente del lenguaje, la plataforma y la nube con compatibilidad con contenedores o Kubernetes.
    • Azure Repos: proporciona repositorios Git privados hospedados en la nube.
    • Azure Artifacts: proporciona administración integrada de paquetes con compatibilidad con fuentes de paquetes de Maven, npm, Python y NuGet de orígenes públicos o privados.
    • Azure Test Plans: proporciona una solución de pruebas exploratorias, integradas y planeadas.

Detalles del escenario

Los sistemas centrales se usan principalmente para procesar grandes cantidades de datos. El procesamiento por lotes es una manera de procesar un gran volumen de transacciones agrupadas y, luego, realizar actualizaciones masivas en la base de datos. Una vez desencadenado, se requiere una interacción mínima o nula por parte del usuario. Por ejemplo, los sistemas centrales permiten que los bancos y otras instituciones financieras realicen el procesamiento de fin de trimestre y generen informes, como las declaraciones trimestrales de existencias o el estado de las pensiones.

Posibles casos de uso

Esta solución es ideal para los sectores de finanzas, seguros, sanidad y venta al por menor. Use esta arquitectura para rediseñar las aplicaciones de sistema central en Azure. La arquitectura es adecuada en los siguientes casos:

  • Aplicaciones por lotes de sistema central que consumen muchos recursos.
  • Aplicaciones por lotes que necesitan un proceso elevado durante un tiempo determinado, como fin de mes, trimestre o año.
  • Procesos por lotes de sistema central que son repetitivos y no consumen muchos recursos, pero que pueden necesitar utilización por parte de sistemas externos.

Consideraciones

Disponibilidad

  • La arquitectura por lotes de este artículo usa servicios PaaS o de computación de varios nodos, que proporcionan alta disponibilidad.
  • Los servicios de base de datos de Azure admiten redundancia de zona y se pueden diseñar para que conmuten por error a un nodo secundario si se produce una interrupción o durante una ventana de mantenimiento.

Escalabilidad

  • Los siguientes servicios de Azure de esta arquitectura tienen funcionalidades de escalado automático:

    • Azure Databricks
    • AKS
    • Spring Apps
    • Batch
    • Azure Functions
    • Logic Apps
  • Para más información sobre el escalado automático en Azure, consulte la guía de escalado automático.

Seguridad

  • Esta arquitectura de referencia usa ExpressRoute para una conexión privada y eficaz a Azure desde el entorno local. Sin embargo, también puede usar una VPN de sitio a sitio.
  • Puede autenticar los recursos de Azure mediante Microsoft Entra ID. Puede asignar permisos de administración con el control de acceso basado en rol (RBAC).
  • Los servicios de base de datos de Azure admiten varias opciones de seguridad, como el cifrado de datos en reposo.
  • Para más información sobre el diseño de soluciones seguras, consulte Documentación de Azure Security Center.

Resistencia

  • Puede usar Azure Monitor y Application Insights, además de Log Analytics, para supervisar el estado de un recurso de Azure. Establezca alertas para administrar de forma anticipada el estado de los recursos.
  • Para más información sobre la resistencia en Azure, consulte Diseño de aplicaciones de Azure confiables.

Optimización de costos

Use la calculadora de precios de Azure para estimar los costos de los recursos de Azure.

Para ver un ejemplo de estimación de costos de servicios, consulte Aplicación por lotes de sistemas centrales de Azure.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes