Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Génération
Au cours de la phase de développement d'une DevOps stratégie, vous construisez l'infrastructure technique et vous favorisez un changement culturel en faveur de la collaboration, de l'automatisation et de l'amélioration continue. Cette phase charnière implique l'orchestration pratique des outils et des pipelines. Il englobe les éléments suivants :
-
Configuration de chaînes d' DevOps outils
-
Établissement de connexions
-
Création de pipelines qui guident le développement du code tout au long du déploiement d'applications
Cela inclut non seulement l'aspect technique de la création de logiciels, mais également l'évolution de la culture du développement vers la collaboration, l'automatisation et l'amélioration continue. En respectant les principes d'intégration continue et de livraison continue (CI/CD), la phase de construction vise à rationaliser le processus de développement et de déploiement, à améliorer la qualité des logiciels et à accélérer le déploiement d'applications mainframe modernisées sur. AWS
Le schéma suivant représente les différentes étapes d'un pipeline de déploiement. Chaque étape contient les étapes requises et recommandées à mettre en œuvre dans le cadre d'un processus de déploiement de la charge de travail d'un mainframe modernisé.

Les étapes du pipeline de déploiement de la charge de travail du mainframe modernisé sont les suivantes :
-
Étape source : les étapes requises sont la configuration, les manifestes de dépendance, les actifs statiques, la source de l'infrastructure, la source de test et la source de l'application. L'étape recommandée est la source de base de données.
-
Étape de construction — Les étapes requises sont les artefacts du package, les tests de sécurité statiques des applications, la détection des secrets, la qualité du code, les tests unitaires et le code de construction. Les étapes recommandées sont la nomenclature logicielle et l'analyse de la composition logicielle.
-
Phase de test (bêta) — Les étapes requises sont les tests d'acceptation et les tests d'intégration. Les étapes recommandées sont le déploiement du logiciel, le déploiement de la base de données et l'environnement de lancement.
-
Étape de test (gamma) — Les étapes requises sont le test synthétique, la surveillance et la journalisation, le déploiement du logiciel et l'environnement de lancement. Les étapes recommandées sont les tests dynamiques de sécurité des applications (DAST), les tests de résilience, les tests de performance et le déploiement d'une base de données.
-
Étape de production — Les étapes requises sont les tests synthétiques et le déploiement progressif. Les étapes recommandées sont le déploiement de la base de données et l'approbation manuelle.
Intégration continue
L'intégration continue (CI) est une pratique de développement logiciel dans laquelle les développeurs apportent régulièrement de petites modifications au code et les intègrent dans une branche publiable du référentiel de code. Le code nouvellement intégré est créé, testé et validé de manière autonome de manière cohérente et reproductible. La CI permet aux développeurs de recevoir rapidement des commentaires, d'identifier les problèmes potentiels dès les premières étapes du cycle de développement et de les résoudre avant qu'ils n'augmentent en complexité et en coûts.
L'intégration continue peut considérablement accélérer et rationaliser le processus de modernisation du mainframe sur AWS. Les principes du CI s'appliquent aux domaines suivants :
-
Intégration fréquente du code — Dans un pipeline CI, les modifications de code sont intégrées fréquemment dans un référentiel partagé, souvent plusieurs fois par jour. Cela favorise la collaboration et garantit que l'ensemble de l'équipe de développement travaille avec le maximum de base de up-to-date code. CI peut également aider à gérer les modifications de code et à suivre l'historique des modifications. Des outils basés sur Git tels que AWS CodeCommit GitLab, et GitHub peuvent aider à intégrer fréquemment du code et à collaborer. Le code de ces référentiels git peut être resynchronisé avec le mainframe via des connecteurs tels que le connecteur Git pour OpenText
Changeman ZMF. -
Tests automatisés — CI encourage la création de suites de tests automatisés pour les applications mainframe. Cela garantit que le code est refactorisé pour le cloud, il reste fonctionnel et exempt d'erreurs. Les tests automatisés peuvent inclure des tests unitaires et des tests d'intégration. Les applications mainframe peuvent être testées unitaires à l'aide de frameworks tels que ZUnit
. -
Détection précoce des problèmes — En exécutant des tests automatisés et des outils d'analyse de code statique chaque fois que le code est validé, les systèmes CI détectent et signalent rapidement tout problème. Cela permet aux équipes de développement de résoudre les problèmes dès le début du cycle de développement, réduisant ainsi le risque de revers majeurs lors de la migration. Des outils tels que Veracode peuvent contribuer à la détection précoce des problèmes SonarQube et à la qualité du code, à la fois pour le code COBOL du mainframe et pour le code Java modernisé.
-
Feedback rapide — Les systèmes CI fournissent des informations rapides aux développeurs sur la qualité de leur code, ce qui peut conduire à une amélioration continue du processus de modernisation.
Livraison continue
La livraison continue (CD) a lieu après l'intégration continue (CI). Dans CD, les modifications de code qui passent avec succès la validation du build sont automatiquement déployées dans d'autres environnements, y compris la production, avec une intervention humaine minimale. Le CD permet de garantir que les nouvelles fonctionnalités, les correctifs et les améliorations sont déployés de manière rapide et fiable. CD réduit les délais et améliore l'efficacité globale du processus de déploiement. Lorsque vous automatisez le processus de livraison à l'aide d'un CD, le système gère le processus long et sujet aux erreurs que représente le déploiement des modifications dans différents environnements, tandis que les équipes se concentrent sur le développement et le perfectionnement du code.
CD facilite la transition des applications mainframe modernisées en AWS automatisant le processus de déploiement. Les principes du CD s'appliquent aux domaines suivants :
-
Déploiements automatisés : pour réduire les interventions manuelles et le risque d'erreurs humaines lors du processus de migration, CD automatise le déploiement des modifications de code dans les environnements cibles. Des outils tels que AWS CodeDeploy Jenkins et IBM Urban CodeDeploy peuvent contribuer au déploiement progressif d'artefacts dans différents environnements (par exemple, Dev, Test, Prod).
-
Déploiement continu — La différence entre la livraison continue et le déploiement continu réside dans la présence d'une approbation manuelle pour la mise en production. Dans le cadre d'un déploiement continu, la production se fait automatiquement sans approbation explicite.
-
Boucle de rétroaction rapide : les déploiements automatisés fournissent des informations rapides pour savoir si les modifications de code sont prêtes à être déployées. Cette boucle de rétroaction garantit que seul le code soigneusement testé et validé est déployé.
-
Cycles de publication fréquents : en utilisant le CD, votre entreprise peut publier de nouvelles fonctionnalités, des améliorations et du code modernisé plus fréquemment. Cette agilité aide les entreprises à s'adapter à l'évolution des exigences et à rester compétitives.
-
Capacités de restauration — Les pipelines de CD doivent inclure des mécanismes de restauration. En cas de problèmes ou de comportements inattendus dans l' AWS environnement, les équipes peuvent utiliser les mécanismes pour revenir à une version précédente d'une application.
-
Infrastructure en tant que code — Le CD peut être combiné à des outils d'infrastructure en tant que code (IaC) tels que AWS CloudFormation HashiCorp Terraform pour définir et approvisionner l'infrastructure de manière cohérente. Un provisionnement cohérent permet de garantir que l' AWS environnement correspond à la configuration requise.