La solution de refactorisation COBOL automatisée d’Advanced refactorise les applications COBOL, ainsi que celles écrites en CA-Gen, CA-Telon, Natural, ADSO et d’autres langages hérités, pour fournir des applications et des bases de données cloud qui ont les même fonctionnalités que leurs équivalents hérités. En plus de réduire les coûts, cette solution permet une intégration plus poussée et une personnalisation pour répondre aux besoins de l’entreprise. En outre, elle dévoile un tout nouveau monde de qualité et de scalabilité, du test automatisé à l’assurance qualité, ainsi que de la possibilité de tirer parti de déploiements conteneurisés et d’orchestration avec Docker et Kubernetes.
Architecture mainframe
Voici un exemple de système où une factorisation automatisée peut être utilisée :
Workflow
R. Les utilisateurs fournissent une entrée via TCP/IP, en utilisant des protocoles tels que TN3270, HTTP et HTTPS.
B. L’entrée arrive via des protocoles de mainframe standard.
C. Des applications de traitement par lot et en ligne traitent l’entrée.
D. Les langages COBOL, PL/I, Assembler et compatibles s’exécutent dans un environnement activé à cette fin.
E. Des fichiers et bases de données fournissent un stockage de données. Les types de base de données sont hiérarchique, réseau et relationnelle.
F. Les services effectuent des tâches pour les applications. Les services couramment activés sont l’exécution de programme, les opérations d’E/S, la détection des erreurs et la protection.
G. Les services d’intergiciel et d’utilitaire gèrent des tâches telles que le stockage sur bande, la mise en file d’attente, la sortie et le support web.
H. Les systèmes d’exploitation fournissent l’interface entre le moteur et le logiciel.
I. Les partitions exécutent des charges de travail distinctes ou séparent les types de travail au sein de l’environnement.
Architecture Azure
Il s’agit de l’architecture de l’exemple de système illustré ci-dessus lors de sa refactorisation pour Azure. Notez que les légendes sous forme de lettres dans les diagrammes révèlent où la solution refactorisée gère la fonctionnalité de mainframe correspondante.
Téléchargez un fichier Visio de cette architecture.
Workflow
En général, l’entrée arrive via Azure ExpressRoute en provenance de clients distants ou d’autres applications Azure. Dans les deux cas, les connexions TCP/IP constituent le principal moyen de se connecter au système. L’accès utilisateur aux applications web est sur le port TLS 443. Vous pouvez conserver l’interface utilisateur des applications web afin de réduire l’effort de recyclage des utilisateurs finaux, ou la mettre à jour à l’aide de frameworks d’expérience utilisateur modernes. Azure Bastion assure l’accès des administrateurs aux machines virtuelles Azure, ce qui a pour effet d’optimiser la sécurité et de minimiser les ports ouverts.
Une fois dans Azure, l’accès aux clusters de calcul d’application s’effectue via un équilibreur de charge Azure. Cette approche permet une montée en puissance parallèle des ressources de calcul pour traiter le travail d’entrée. En fonction de l’entrée, vous pouvez équilibrer la charge au niveau de l’application ou du protocole réseau.
Advanced prend en charge le déploiement dans des conteneurs, des machines virtuelles ou des groupes de machines virtuelles identiques. Contrairement aux machines virtuelles, les conteneurs et les groupes de machines virtuelles identiques peuvent rapidement monter ou baisser en puissance parallèle. Le déplacement de l’unité de mise à l’échelle vers des conteneurs optimise l’utilisation de l’infrastructure.
Les serveurs d’applications reçoivent l’entrée dans les clusters de calcul, et partagent l’état et les données d’application à l’aide d’Azure Cache pour Redis ou d’un accès direct à la mémoire à distance (RDMA).
Les services de données dans les clusters d’application permettent plusieurs connexions à des sources de données persistantes. Les sources de données possibles sont les suivantes :
- Azure SQL Database.
- Azure Cosmos DB.
- Bases de données sur machines virtuelles, telles qu’Oracle ou Db2.
- Référentiels de Big Data tels qu’Azure Databricks et Azure Data Lake.
- Services de données de diffusion en continu tels que Kafka et Azure Stream Analytics.
Les serveurs d’applications hébergent divers programmes d’application en fonction de la capacité du langage, tels que des classes Java ou des programmes COBOL.
Les services de données utilisent une combinaison des ressources suivantes :
Stockage haute performance : SSD Premium Azure et Disque Ultra Azure.
Stockage de fichiers : Azure NetApp Files et Azure Files.
Stockage standard : Stockage Blob Azure, archivage et sauvegarde. La sauvegarde peut être :
- Stockage localement redondant (LRS).
- Stockage redondant interzone (ZRS).
- Stockage géoredondant (GRS).
- Stockage géoredondant interzone (GZRS).
Pour plus d’informations sur la redondance, consultez Redondance de Stockage Azure.
Les services de données PaaS (platform as a service) Azure fournissent un stockage de données évolutif et hautement disponible qui peut être partagé entre plusieurs ressources de calcul dans un cluster. Ils peuvent également être géo-redondants.
Azure Data Factory peut ingérer des données et les synchroniser avec plusieurs sources de données au sein d’Azure et à partir de sources externes. Le stockage d’objets blob Azure est une zone d’atterrissage commune pour les sources de données externes.
Azure Site Recovery assure la récupération d’urgence des composants de cluster de machines virtuelles et de conteneurs.
Les applications se connectent aux points de terminaison privés de différents services PaaS.
Composants
Cet exemple inclut les composants Azure suivants. Plusieurs de ces composants et flux de travail sont interchangeables ou facultatifs en fonction de votre scénario.
- Azure ExpressRoute étend vos réseaux locaux dans Azure via une connexion à fibre optique dédiée privée assurée par un fournisseur de connectivité. ExpressRoute établit des connexions aux services cloud Microsoft, tels qu’Azure et Microsoft 365.
- Azure Bastion fournit une connectivité RDP (Remote Desktop Protocol) ou SSH (Secure Shell) aux machines virtuelles du réseau virtuel à partir du portail Azure via le protocole TLS (Transport Layer Security). Azure Bastion optimise la sécurité de l’accès administrateur en minimisant les ports ouverts.
- Azure Load Balancer répartit le trafic entrant vers les clusters de ressources de calcul. Vous pouvez définir des règles et d’autres critères pour distribuer le trafic.
- Azure Kubernetes Service (AKS) est un service complètement managé qui permet de déployer de gérer des applications conteneurisées. Il offre une expérience d’intégration continue et de livraison continue (CI/CD) Kubernetes serverless, ainsi qu’une sécurité et une gouvernance de classe entreprise.
- Azure Virtual Machines fournit plusieurs tailles et types de ressources informatiques à la demande et évolutives. Les machines virtuelles Azure vous permettent de tirer parti de la flexibilité de la virtualisation sans avoir à acheter le matériel physique ni à en assurer la maintenance.
- Le Réseau virtuel Azure est le bloc de construction fondamental de vos réseaux privés Azure. Les machines virtuelles dans les réseaux virtuels peuvent communiquer en toute sécurité entre elles, avec Internet et avec des réseaux locaux. Un réseau virtuel est semblable à un réseau local traditionnel, mais avec les avantages de l’infrastructure Azure, tels que la scalabilité, la haute disponibilité et l’isolation.
- Azure Private Link fournit une connectivité privée entre un réseau virtuel et les services Azure. Private Link élimine l’exposition à l’Internet public afin de simplifier l’architecture réseau et de sécuriser les connexions entre les points de terminaison Azure.
- Azure Cache pour Redis ajoute une couche de mise en cache rapide à l’architecture d’application pour gérer des volumes importants à grande vitesse. Il adapte les performances de manière simple et économique, tout en offrant les avantages d’un service entièrement géré.
- Stockage Azure est un stockage cloud évolutif et sécurisé pour l’ensemble de vos données, applications et charges de travail.
- Stockage sur disque Azure est un stockage de bloc durable à hautes performances pour les applications stratégiques. Les disques managés Azure sont des volumes de stockage au niveau du bloc gérés par Azure sur des machines virtuelles Azure. Les types de stockages sur disque disponibles sont le stockage sur disques Ultra, SSD Premium, SSD Standard et HDD Standard. Cette architecture utilise des disques de stockage SSD Premium ou Ultra.
- Azure Files offre des partages de fichiers managés dans le cloud accessibles via le protocole SMB (Server Message Block) standard. Des déploiements cloud et locaux de Windows, Linux et macOS peuvent monter des partages de fichiers simultanément.
- Azure NetApp Files fournit des partages de fichiers Azure de classe entreprise optimisés par NetApp. Azure NetApp Files permet aux entreprises de migrer et d’exécuter facilement des applications complexes basées sur des fichiers sans modification du code.
- Stockage Blob Azure est un stockage d’objets évolutif et sécurisé pour les archives, les lacs de données, le calcul haute performance, le Machine Learning et les charges de travail natifs cloud.
- Les bases de données Azure offrent un choix de bases de données relationnelles et NoSQL entièrement managées pour répondre aux besoins des applications modernes. La gestion automatisée de l’infrastructure fournit la scalabilité, la disponibilité et la sécurité.
- Azure SQL Database est un moteur de base de données PaaS complètement managé. SQL Database s’exécute toujours sur la dernière version stable de SQL Server et un système d’exploitation corrigé offrant une haute disponibilité. Les fonctionnalités de gestion de base de données PaaS intégrées incluent la mise à niveau, la mise à jour corrective, les sauvegardes et la surveillance. Vous pouvez vous concentrer sur l’administration et l’optimisation des bases de données critiques pour l’entreprise spécifiques d’un domaine.
- Azure Database pour PostgreSQL est une base de données complètement managée basée sur le moteur de base de données relationnelle PostgreSQL open source. L’option de déploiement Hyperscale (Citus) met à l’échelle les requêtes sur plusieurs machines en utilisant un partitionnement, pour les applications exigeant une mise à l’échelle et des performances supérieures.
- Azure Cosmos DB est une base de données NoSQL rapide entièrement managée avec des API ouvertes pour n’importe quelle échelle.
- Azure Site Recovery reflète en miroir les machines virtuelles Azure dans une région Azure secondaire pour un basculement et une récupération de données rapides en cas de défaillance du centre de données Azure.
- Azure Data Factory est un service ETL qui permet le pour la montée en puissance parallèle, ainsi que l’intégration et la transformation de données serverless. Il offre une interface utilisateur sans code pour une création intuitive et une supervision et une gestion dans une seule et même vue.
Détails du scénario
Il existe de nombreuses raisons de rechercher des alternatives aux applications mainframe basées sur COBOL qui sont toujours répandues :
- Les développeurs COBOL et CA-Gen/Natural/Telon/ASDO partent à la retraite et personne n’est formé pour les remplacer, ce qui se traduit par un pool de talents en constante diminution. Avec la raréfaction des talents, les coûts et les risques liés à l’utilisation de COBOL et d’autres langages hérités augmentent.
- Les applications n’ayant pas été conçues pour l’informatique moderne, leur intégration est difficile et leur flexibilité limitée.
- Le matériel et les logiciels mainframe IBM sont onéreux, et les frais de gestion des licences et de maintenance des applications et bases de données mainframe connexes augmentent.
La solution de refactorisation COBOL automatisée d’Advanced refactorise les applications COBOL, ainsi que celles écrites dans d’autres langages hérités, pour fournir des applications et des bases de données cloud qui ont les même fonctionnalités que leurs équivalents hérités. En plus de réduire les coûts, cette solution permet une intégration plus poussée et une personnalisation pour répondre aux besoins de l’entreprise. En outre, elle dévoile un tout nouveau monde de qualité et de scalabilité, du test automatisé à l’assurance qualité, ainsi que de la possibilité de tirer parti de déploiements conteneurisés et d’orchestration avec Docker et Kubernetes.
Les applications refactorisées :
- sont fonctionnellement équivalentes aux applications d’origine ;
- sont faciles à gérer (note A de SonarQube) et suivent les concepts et les paradigmes orientés objet ;
- sont aussi performantes, voire plus performantes, que les applications d’origine ;
- sont prêtes pour le cloud et livrées à l’aide d’une chaîne d’outils de DevOps standard et des meilleures pratiques.
Le processus de refactorisation comprend la normalisation du flux, la restructuration du code, l’extraction de la couche données, la remodélisation des données et l’empaquetage pour la reconstruction. Le processus identifie le code cloné et crée des objets de remplacement partagés, ce qui simplifie la maintenance et facilite la gestion. L’analyse des dépendances de données et de contrôles complexes localise et supprime le code mort.
Après que la solution d’Advanced a refactorisé les applications COBOL et les bases de données associées, les développeurs Java et C# peuvent utiliser les outils de DevOps et concepts CI/CD standard pour étendre la fonctionnalité de l’application. Le processus de refactorisation conserve la logique métier et optimise les performances. Les avantages supplémentaires incluent l’élasticité, la définition de service granulaire et l’intégration facile avec des services natifs Cloud.
La solution Automated COBOL Refactoring est disponible pour la plupart des dialectes et plateformes COBOL, dont z/OS, OpenVMS et VME.
Cas d’usage potentiels
La refactorisation avancée est avantageuse dans de nombreux scénarios, à savoir :
- Entreprises voulant :
- moderniser leur infrastructure et à échapper aux coûts exorbitants, aux limitations et à la rigidité associés aux mainframes ;
- éviter les risques associés aux insuffisances de compétences autour des systèmes et applications hérités, en les adaptant au cloud et au DevOps ;
- réduire les coûts opérationnels et les dépenses en capital.
- Organisations souhaitant migrer des charges de travail de mainframe vers le cloud sans réécritures manuelles coûteuses et faillibles.
- Organisations devant migrer des applications critiques, tout en préservant la continuité avec d’autres applications locales.
- Équipes qui recherchent la scalabilité horizontale et verticale qu’offre Azure.
- Entreprises qui privilégient des solutions offrant des options de récupération d’urgence.
Considérations
Incorporez les piliers suivants du Microsoft Azure Well-Architected Framework pour bénéficier d’un système hautement disponible et sécurisé :
Disponibilité
- L’architecture utilise Azure Site Recovery pour mettre en miroir les machines virtuelles Azure dans une région Azure secondaire pour un basculement et une récupération d’urgence rapides en cas de défaillance d’un centre de données Azure.
- La réplication du groupe de basculement automatique Azure gère la réplication et le basculement des bases de données vers une région secondaire.
Operations
La refactorisation accélère non seulement l’adoption du cloud, mais favorise également l’adoption des principes DevOps et de travail agiles. Vous bénéficiez d’une flexibilité totale en lien avec les options de déploiement en environnement de développement et de production.
Sécurité
Cette solution utilise un groupe de sécurité réseau Azure pour gérer le trafic entre les ressources Azure. Pour plus d’informations, consultez Groupes de sécurité réseau.
Private Link pour Azure SQL Database fournit une connexion directe privée, isolée au réseau principal Azure, des machines virtuelles Azure vers Azure SQL Database.
Azure Bastion optimise la sécurité de l’accès administrateur en minimisant les ports ouverts. Bastion fournit une connectivité RDP/SSH sécurisée et fluide à vos machines virtuelles de réseau virtuel, directement à partir du portail Azure via TLS.
Résilience
La résilience est intégrée dans cette solution par les équilibreurs de charge. En cas de défaillance d’un serveur de présentation ou de transaction, les autres serveurs qui se trouvent derrière les équilibreurs de charge peuvent exécuter les charges de travail conformément aux règles et aux sondes d’intégrité. Des groupes à haute disponibilité et un stockage géo-redondant sont vivement recommandés.
Optimisation des coûts
Azure évite les frais inutiles en identifiant le nombre correct de types de ressources, en analysant les dépenses au fil du temps et en effectuant une mise à l’échelle pour répondre aux besoins de l’entreprise sans dépasser le budget alloué.
- Azure optimise les coûts en s’exécutant sur des machines virtuelles. Vous pouvez désactiver les machines virtuelles utilisées, et générer un script de planification pour les modèles d’utilisation connus. Pour plus d’informations sur l’optimisation des coûts pour les instances de machine virtuelle, consultez la section Azure Well-Architected Framework.
- Les machines virtuelles dans cette architecture utilisent un stockage sur disques SSD Premium ou Ultra. Pour plus d’informations sur les options et tarifs des disques, consultez Tarification des disques managés.
- SQL Database optimise les coûts avec des ressources de calcul serverless et de stockage Hyperscale mises à l’échelle automatiquement. Pour plus d’informations sur les options et tarifs de SQL Database, consultez la section Tarification Azure SQL Database.
- Pour estimer le coût de votre implémentation de cette solution, utilisez la Calculatrice de prix.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Bhaskar Bandam | Senior TPM
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
- Pour plus d’informations, veuillez contacter legacy2azure@microsoft.com.
- PaaS de Modernisation (ModPaaS)
- Solution Automated COBOL Refactoring d’Advanced
- Étude de cas : modernisation vers le cloud en mode course contre la montre.