Étapes parallèles dans les pipelines de mise en production Azure DevOps
Les étapes parallèles d'un pipeline de mise en production sont désormais traitées simultanément et affichées dans l'interface utilisateur de pipeline DevOps en temps réel. Les conditions de pré-déploiement du système de base et les portails de mise en production vous permettent de créer des demandes de changement qui incluent des informations concernant les étapes parallèles.
Prise en charge des étapes parallèles du système de base pour Azure DevOps
Les organisations utilisent des étapes parallèles pour automatiser et accélérer les processus de mise en production de tâches pouvant être exécutées en parallèle. Par exemple, un pipeline de mise en production intègre plusieurs outils de test et de qualité logicielle, et dispose de tâches configurées pour s'exécuter en parallèle. Le fait de ne pas exécuter chaque tâche de manière séquentielle accélère considérablement l'exécution du pipeline de mise en production.
ServiceNow DevOps prend en charge le traitement des étapes parallèles dans les pipelines de mise en production et affiche les étapes dans une vue parallèle dans l'interface utilisateur de pipeline DevOps. L'interface utilisateur de pipeline DevOps réplique en effet l'interface utilisateur graphique Azure DevOps en temps réel.
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
// Your build steps here
}
}
stage('Test') {
parallel {
stage('Unit Tests') {
steps {
echo 'Running unit tests...'
// Your unit test steps here
}
}
stage('Integration Tests') {
steps {
echo 'Running integration tests...'
// Your integration test steps here
}
}
stage('Additional Tests') {
steps {
script {
parallel(
'Nested Stage 1': {
echo 'Running nested parallel stage 1...'
// Your nested parallel stage 1 steps here
},
'Nested Stage 2': {
echo 'Running nested parallel stage 2...'
// Your nested parallel stage 2 steps here
}
)
}
}
}
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
snDevOpsChange changeRequestDetails: '{ "attributes": {"chg_model": "e55d0bfec343101035ae3f52c1d3ae49","standard_change_template"="563504cc47410200e90d87e8dee490e2"},"autoCloseChange": false}',changeStepTimeOut: 18000, pollingInterval: 60
// Your deploy steps here
}
}
}
}
Portail de mise en production ServiceNow® DevOps dans les conditions de pré-déploiement pour créer des demandes de changement
- Validations
- Éléments de travail
- Résumés de tests
- Résumé de la qualité logicielle
- Versions de l'artefact
Une fois que l'exécution de pipeline a terminé le traitement des étapes parallèles précédant l'étape de déploiement en production, une demande de changement est automatiquement créée et mappée sur l'étape de déploiement en production dans la vue Exécutions de pipeline. Le traitement de l'étape de production se termine une fois la demande de changement approuvée.
Dans la vue Exécution de pipeline du pipeline concerné, cliquez sur le lien connexe Interface utilisateur de pipeline pour afficher l'état en temps réel du pipeline tel qu'il apparaît dans Azure DevOps. Les détails de l'artefact associé, qui proviennent du pipeline de version, des résultats des tests et des résultats du résumé de la qualité logicielle, s'affichent sur l'interface utilisateur de pipeline.
Séquence de création de changements pour les tâches parallèles
Vous recevez les informations de tâche d'Azure dans ServiceNow :
- à l'achèvement d'une étape ;
- lors de l'exécution de l'étape enregistrer-changement.
Azure fournit des informations sur les tâches de manière séquentielle en fonction du délai de mise en file d'attente des tâches, même si les tâches peuvent s'exécuter en parallèle. Par conséquent, si l'étape enregistrer-changement s'exécute alors qu'une tâche parallèle précédemment mise en file d'attente reste inachevée, le système suppose que la tâche parallèle est une tâche en amont, obligeant ainsi le processus de création du changement à attendre qu'elle se termine. Toutefois, les notifications d'achèvement d'étape ne sont pas reçues tant que toutes les tâches, y compris la tâche enregistrer-changement, ne sont pas terminées.
Cela crée une impasse, dans laquelle le processus de changement dans ServiceNow attend que la tâche parallèle se termine, tandis que la tâche parallèle attend la notification d'achèvement de l'étape, qui à son tour attend la fin de la tâche enregistrer-changement.
Suite à cette impasse, au moment où le changement est créé, la tâche de pipeline Azure a déjà échoué, ce qui entraîne l'erreur 500 dans l'API d'événement. La réexécution de la tâche résout le problème, car les tâches parallèles précédemment mises en file d'attente sont marquées comme terminées.
Considérations sur la mise à niveau
- La colonne Exécution en amont de la table Exécutions de tâches ne s'affiche pas pour les nouvelles installations. Les personnalisations que vous avez effectuées à l'aide de la colonne Exécution en amont avant la mise à niveau ne sont pas affectées.
- Si les étapes sont exécutées en parallèle, une demande de changement ne doit pas être la première tâche d'une étape.
- Après la mise à niveau, les nouvelles exécutions de pipeline de mise en production traitent simultanément les étapes parallèles et affichent les étapes parallèles ainsi que les détails associés dans l'interface utilisateur de pipeline. Les pipelines de mise en production Azure DevOps déjà exécutés et stockés dans ServiceNow DevOps avant la mise à niveau ne sont pas affectés et continuent d'afficher des étapes parallèles (qui sont déjà exécutées et conservées) dans ServiceNow DevOps, en série.
- Si le portail de mise en production ServiceNow DevOps du pré-déploiement est activé dans plusieurs étapes de démarrage au sein d'un pipeline de mise en production avec plusieurs étapes de démarrage, plusieurs exécutions de pipeline peuvent avoir lieu.