Editar

Compartir a través de


Refactorización de aplicaciones de sistema central con Advanced

Archivos de Azure
Azure Load Balancer
Azure SQL Database
Azure Storage
Azure Virtual Machines

La solución automatizada de refactorización de COBOL de Advanced refactoriza las aplicaciones COBOL, así como las escritas en CA-Gen, CA-Telon, Natural, ADSO y otros lenguajes heredados, para ofrecer aplicaciones y bases de datos habilitadas para la nube que sean funcionalmente equivalentes a sus homólogos heredados. Esto contribuye a reducir los costos, mejorar la integración y personalizar las aplicaciones para satisfacer los requisitos empresariales. Además, ofrece nuevos niveles de calidad y escalabilidad, como las pruebas automatizadas, el control de calidad, la posibilidad de beneficiarse de implementaciones contenedorizadas y orquestación con Docker y Kubernetes.

Arquitectura de sistema central

A continuación, se incluye un sistema de ejemplo en el que se puede usar la factorización automatizada:

Diagrama de arquitectura que muestra un sistema central que incluye aplicaciones de lenguaje heredado.

Flujo de trabajo

A. Los usuarios proporcionan entradas a través de TCP/IP con protocolos como TN3270, HTTP y HTTPS.

B. La entrada se basa en protocolos estándar de sistema central.

C. Las aplicaciones por lotes y en línea procesan la entrada.

D. COBOL, PL/I, Assembler y otros lenguajes compatibles se ejecutan en un entorno habilitado.

E. Los archivos y las bases de datos facilitan el almacenamiento de datos. Entre los tipos de base de datos, se incluyen los siguientes: jerárquico, de red y relacional.

F. Los servicios ejecutan tareas para las aplicaciones. Entre los servicios que están habilitados habitualmente, se incluyen la ejecución de programas, las operaciones de E/S, la detección de errores y la protección.

G. El middleware y los servicios de utilidad administran tareas como el almacenamiento en cinta, la puesta en cola, las salidas y la compatibilidad web.

H. Los sistemas operativos proporcionan la interfaz entre el motor y el software que ejecuta.

I. Las particiones ejecutan cargas de trabajo independientes o separan los tipos de trabajo dentro del entorno.

Arquitectura de Azure

Esta es la arquitectura del sistema de ejemplo mostrado anteriormente cuando se hizo la refactorización para Azure. Tenga en cuenta que las letras de los diagramas indican desde qué lugar la solución refactorizada controla la funcionalidad del sistema central correspondiente.

Diagrama de arquitectura que muestra el sistema en Azure después de la refactorización.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

  1. La entrada se suele hacer mediante Azure ExpressRoute desde clientes remotos o desde otras aplicaciones de Azure. En cualquiera de los casos, las conexiones TCP/IP son la forma principal de conectarse al sistema. El acceso de los usuarios a las aplicaciones web se efectúa a través del puerto TLS 443. Puede conservar la misma interfaz de usuario de las aplicaciones web para minimizar la necesidad de entrenamiento de los usuarios finales, o bien renovarla con marcos modernos basados en la experiencia de usuario. Azure Bastion proporciona acceso de administrador a las máquinas virtuales. De este modo, se reduce el número de puertos abiertos y aumenta la seguridad.

  2. De vuelta en Azure, el acceso a los clústeres de proceso de aplicaciones se produce a través del servicio Azure Load Balancer. Este enfoque permite aplicar escalabilidad horizontal a los recursos de proceso para procesar el trabajo de entrada. En función de la entrada, puede equilibrar la carga en el nivel de aplicación o en el de protocolo de red.

  3. Advanced admite la implementación en contenedores, en máquinas virtuales o en el servicio Virtual Machine Scale Sets. A diferencia de las máquinas virtuales, los contenedores y el servicio Virtual Machine Scale Sets pueden aumentar o reducir rápidamente su tamaño mediante la escalabilidad horizontal. Cambiar la unidad de escalado a contenedores optimiza el uso de la infraestructura.

  4. Los servidores de aplicaciones reciben la entrada en los clústeres de proceso y comparten el estado de la aplicación y los datos mediante Azure Cache for Redis o el acceso directo a memoria remota (RDMA).

  5. Los servicios de datos de los clústeres de aplicación permiten varias conexiones a orígenes de datos persistentes. Entre los posibles orígenes de datos, se incluyen los siguientes:

    • Azure SQL Database.
    • Azure Cosmos DB.
    • Bases de datos en máquinas virtuales, como Oracle o Db2.
    • Repositorios de macrodatos, como Azure Databricks y Azure Data Lake.
    • Servicios de datos de streaming, como Apache Kafka y Azure Stream Analytics.
  6. Los servidores de aplicaciones hospedan varios programas de aplicaciones en función del tipo de lenguaje (por ejemplo, clases de Java o programas COBOL).

  7. Los servicios de datos usan una combinación de los siguientes elementos:

    1. Almacenamiento de alto rendimiento: Almacenamiento en discos Ultra y SSD prémium de Azure.

    2. Almacenamiento de archivos: Azure NetApp Files y Azure Files.

    3. Almacenamiento estándar: Azure Blob Storage, archivo y copia de seguridad. La copia de seguridad puede ofrecer los siguientes tipos de almacenamiento:

      1. Almacenamiento con redundancia local (LRS).
      2. Almacenamiento con redundancia de zona (ZRS).
      3. Almacenamiento con redundancia geográfica (GRS).
      4. Almacenamiento con redundancia de zona geográfica (GZRS).

      Para obtener más información, consulte los tipos de redundancia de Azure Storage.

  8. Los servicios de datos de plataforma como servicio (PaaS) de Azure permiten el almacenamiento de datos con escalabilidad y alta disponibilidad para compartirlos entre diferentes recursos de proceso de un clúster. También pueden ofrecer redundancia geográfica.

  9. Azure Data Factory pueden ingerir datos y sincronizarlos con varios orígenes de datos tanto de Azure como de orígenes externos. Azure Blob Storage es una zona de aterrizaje común para los orígenes de datos externos.

  10. Azure Site Recovery permite la recuperación ante desastres de los componentes de clúster de máquina virtual y contenedor.

  11. Las aplicaciones se conectan a puntos de conexión privados de los distintos servicios PaaS.

Componentes

En este ejemplo se incluyen los siguientes componentes de Azure. Varios de estos componentes y flujos de trabajo son intercambiables u opcionales en función de su escenario.

  • Azure ExpressRoute amplía la red local a Azure a través de una conexión de fibra privada dedicada de un proveedor de conectividad. ExpressRoute establece conexiones con servicios en la nube de Microsoft, como Azure y Microsoft 365.
  • Azure Bastion proporciona la conectividad fluida de Secure Shell (SSH) o el protocolo de escritorio remoto (RDP) con las máquinas virtuales de la red virtual desde Azure Portal mediante el protocolo de seguridad de la capa de transporte (TLS). Azure Bastion maximiza la seguridad de acceso de administrador al dejar menos puertos abiertos.
  • Azure Load Balancer distribuye el tráfico entrante a los clústeres de recursos de proceso. Puede definir reglas y otros criterios para distribuir el tráfico.
  • Azure Kubernetes Service (AKS) es un servicio de Kubernetes completamente administrado para la implementación y la administración de aplicaciones contenedorizadas. AKS ofrece Kubernetes sin servidor, una experiencia integrada de integración y entrega continuas (CI/CD), así como seguridad y gobernanza de nivel empresarial.
  • Azure Virtual Machines proporciona recursos de computación escalables a petición de muchos tipos y tamaños. Con las máquinas virtuales de Azure, obtiene la flexibilidad de la virtualización sin necesidad de adquirir y mantener el hardware físico.
  • Azure Virtual Network es el bloque de creación fundamental de las redes privadas de Azure. Las máquinas virtuales de redes virtuales pueden comunicarse de forma segura entre sí, con Internet y con las redes locales. Una red virtual es como una red local tradicional, pero con las ventajas de la infraestructura de Azure, como escalabilidad, alta disponibilidad y aislamiento.
  • Azure Private Link proporciona conectividad privada entre una red virtual y los servicios de Azure. Private Link elimina la exposición a la red pública de Internet para simplificar la arquitectura de red y proteger las conexiones entre puntos de conexión de Azure.
  • Azure Cache for Redis agrega una capa de almacenamiento en caché rápido a la arquitectura de la aplicación para gestionar grandes volúmenes a alta velocidad. Azure Cache for Redis amplía el rendimiento de forma sencilla y rentable, con las ventajas de un servicio totalmente administrado.
  • Azure Storage es una solución segura y escalable de almacenamiento en la nube para todo sus datos, aplicaciones y cargas de trabajo.
    • Azure Disk Storage es almacenamiento en bloques duradero y de alto rendimiento para aplicaciones críticas para la empresa. Los discos administrados de Azure son volúmenes de almacenamiento de nivel de bloque que Azure administra en máquinas virtuales de Azure. Los tipos de almacenamiento en disco disponibles son Almacenamiento en disco Ultra, SSD prémium, SSD estándar y HDD estándar. En esta arquitectura se usan discos Ultra o SSD prémium.
    • Azure Files ofrece recursos compartidos de archivos en la nube totalmente administrados, a los que se puede acceder mediante el protocolo de Bloque de mensajes del servidor (SMB) estándar. Las implementaciones de Windows, Linux y macOS locales y en la nube permiten montar recursos compartidos de archivos de Azure de forma simultánea.
    • Azure NetApp Files proporciona recursos compartidos de archivos de Azure de nivel empresarial con tecnología de NetApp. Azure NetApp Files facilita a las empresas la migración y ejecución de aplicaciones complejas basadas en archivos sin cambios en el código.
    • Azure Blob Storage es 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.
  • Las bases de datos de Azure ofrecen una selección de bases de datos relacionales y NoSQL totalmente administradas para satisfacer las necesidades de las aplicaciones modernas. La administración automatizada de la infraestructura proporciona escalabilidad, disponibilidad y seguridad.
    • Azure SQL Database es un motor de base de datos PaaS totalmente administrado. SQL Database se ejecuta siempre en la última versión estable de SQL Server y en un sistema operativo revisado con alta disponibilidad. Las funcionalidades integradas de administración de bases de datos PaaS incluyen la actualización, la aplicación de revisiones, las copias de seguridad y la supervisión. Puede centrarse en la optimización y la administración de bases de datos específicas del dominio que son críticas para la empresa.
    • Azure Database for PostgreSQL es una base de datos completamente administrada y basada en el motor de base relacional de código abierto PostgreSQL. En el caso de las aplicaciones que requieren una mayor escalabilidad y rendimiento, la opción de implementación de Hiperescala (Citus) utiliza el particionamiento para hacer consultas entre varias máquinas.
    • Azure Cosmos DB es una base de datos NoSQL rápida totalmente administrada con API abiertas para cualquier escala.
  • Azure Site Recovery crea un reflejo de las máquinas virtuales de Azure en una región secundaria de Azure para acelerar la conmutación por error y la recuperación de datos si un centro de datos de Azure deja de funcionar.
  • Azure Data Factory es un servicio ETL que ofrece escalabilidad horizontal, integración de datos sin servidor y transformación de datos. Ofrece una interfaz de usuario sin código que favorece la creación intuitiva y una supervisión y administración desde un único panel.

Detalles del escenario

Hay muchas razones para buscar alternativas a las aplicaciones de sistema central basadas en COBOL que todavía se usan:

  • Los desarrolladores de COBOL y CA-Gen/Natural/Telon/ASDO se están jubilando y nadie ha recibido formación para reemplazarlos, por lo que la reserva de talentos es cada vez más reducida. A medida que crece la escasez de talentos, aumentan los costos y el riesgo de depender de COBOL.
  • Las aplicaciones no se diseñaron para el entorno de TI moderno, por lo que las integraciones son complejas y la flexibilidad es limitada.
  • El hardware y el software de los sistemas centrales de IBM son caros, y los precios de las licencias y le mantenimiento de las bases de datos y las aplicaciones auxiliares del sistema central van en aumento.

La solución automatizada de refactorización de COBOL de Advanced refactoriza las aplicaciones COBOL, así como las escritas en otros lenguajes heredados, para ofrecer aplicaciones y bases de datos habilitadas para la nube que sean funcionalmente equivalentes a sus homólogos heredados. Esto contribuye a reducir los costos, mejorar la integración y personalizar las aplicaciones para satisfacer los requisitos empresariales. Además, ofrece nuevos niveles de calidad y escalabilidad, como las pruebas automatizadas, el control de calidad, la posibilidad de beneficiarse de implementaciones contenedorizadas y orquestación con Docker y Kubernetes.

Las aplicaciones refactorizadas tienen las siguientes características:

  • Equivalen funcionalmente a las aplicaciones originales.
  • Facilitan el mantenimiento al cumplir el requisito de clasificación A de SonarQube y los conceptos y paradigmas orientados a objetos.
  • Ofrecen un rendimiento igual o superior al de las aplicaciones originales.
  • Están preparadas para la nube y se distribuyen mediante una cadena de herramientas DevOps estándar y procedimientos recomendados.

El proceso de refactorización incluye la normalización de flujos, la reestructuración de código, la extracción de capas de datos, el remodelado de datos y el empaquetado con fines de reconstrucción. El proceso identifica el código clonado y crea objetos de reemplazo compartidos. De este modo, se simplifican el mantenimiento y la manejabilidad. El análisis de dependencias de control y datos complejos identifica y elimina el código no alcanzado.

Una vez que la solución de Advanced refactoriza las aplicaciones de COBOL y las bases de datos asociadas, los desarrolladores de Java y C# pueden usar herramientas de DevOps estándar y conceptos de CI/CD para ampliar la funcionalidad de las aplicaciones. El proceso de refactorización conserva la lógica de negocios y optimiza el rendimiento. Entre otras ventajas, se incluyen la elasticidad, la definición de servicios granulares y la fácil integración con servicios nativos de nube.

La solución Automated COBOL Refactoring está disponible para la mayoría de los dialectos y plataformas de COBOL, como z/OS, OpenVMS y VME.

Posibles casos de uso

La refactorización de Advanced ofrece ventajas en muchos escenarios, como los siguientes:

  • Empresas con los siguientes objetivos:
    • Modernizar la infraestructura para evitar costos desorbitados, limitaciones o la rigidez asociada a los sistemas centrales.
    • Evitar el riesgo asociado a la falta de conocimientos en cuanto a las aplicaciones y los sistemas heredados por medio de un enfoque nativo de nube y DevOps.
    • Reducir los costos asociados a los gastos operativos y de capital.
  • Organizaciones que desean migrar las cargas de trabajo de los sistemas centrales a la nube sin necesidad de recurrir a procesos manuales de reescritura que son costosos y propensos a error.
  • Organizaciones que necesitan migrar las aplicaciones críticas para la empresa, al tiempo que garantizan la continuidad con otras aplicaciones locales.
  • Equipos que buscan la escalabilidad horizontal y vertical que ofrece Azure.
  • Empresas que prefieren soluciones que incorporan opciones de recuperación ante desastres.

Consideraciones

Incorpore los siguientes pilares del Marco de buena arquitectura de Microsoft Azure para un sistema de alta disponibilidad y seguridad:

Disponibilidad

Operations

La refactorización no solo admite una adopción de la nube más rápida, sino que también promueve la adopción de DevOps y principios de trabajo de Agile. Dispone de total flexibilidad en las opciones de implementación de desarrollo y producción.

Seguridad

Esta solución usa un grupo de seguridad de red de Azure para administrar el tráfico entre los recursos de Azure. Para más información, consulteGrupo de seguridad de red.

Private Link para Azure SQL Database proporciona una conexión directa y privada, aislada de la red troncal de redes de Azure, que abarca de las máquinas virtuales de Azure a Azure SQL Database.

Azure Bastion maximiza la seguridad de acceso de administrador al dejar menos puertos abiertos. Proporciona una conectividad RDP/SSH segura e ininterrumpida a las VM de la red virtual directamente desde Azure Portal a través de TLS.

Resistencia

Los equilibradores de carga agregan resistencia a la solución. Si un servidor de presentación o transacción deja de funcionar, otros servidores detrás de los equilibradores de carga pueden ejecutar las cargas de trabajo según las reglas y los sondeos de estado. Es muy recomendable usar los conjuntos de disponibilidad y el almacenamiento con redundancia geográfica.

Optimización de costos

Azure ayuda a evitar costos innecesarios al permitir la identificación del número de recursos correcto, el análisis de los gastos a lo largo del tiempo y el escalado para satisfacer las necesidades empresariales sin gastos excesivos.

  • Azure optimiza los costos al ejecutarse en máquinas virtuales. Puede desactivar las máquinas virtuales cuando no estén en uso y crear un script de una programación para patrones de uso conocidos. Consulte el Marco de buena arquitectura de Azure para más información sobre la optimización de costos de las instancias de máquina virtual.
  • Las máquinas virtuales de esta arquitectura usan discos Ultra o SSD prémium. Para más información sobre los precios y las opciones de disco, consulte Precios de Managed Disks.
  • SQL Database optimiza los costos con recursos de proceso sin servidor y de almacenamiento de Hiperescala que se escalan automáticamente. Para más información sobre las opciones y los precios de SQL Database, consulte Precios de Azure SQL Database.
  • Para calcular los costos de la implementación de esta solución, use la calculadora de precios.

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