Intégration des synthétiques d' Instana s dans le pipeline CI/CD

Alors que les équipes logicielles adoptent les pratiques de l' DevOps et déploient le code plus rapidement que jamais, il devient essentiel de garantir la stabilité et les performances des applications après leur déploiement.

C'est là qu'intervient la surveillance synthétique d' Instana, qui vous permet d'exécuter automatiquement des tests synthétiques dans le cadre de votre workflow CI/CD.

Pour vous assurer que vos environnements post-déploiement (staging ou pré-production) sont prêts, vous pouvez intégrer la surveillance synthétique d' Instana directement dans votre pipeline CI/CD, à l'aide de l' API synthétique d' Instana OnDemand.

Suivez les étapes suivantes pour intégrer de manière transparente la surveillance synthétique d' Instana dans un pipeline CI/CD déclenchant un test synthétique à l'aide des API d' Instana après le déploiement, en attendant le résultat et en répondant automatiquement — en approuvant ou en annulant le déploiement.

Pourquoi utiliser la surveillance synthétique d' Instana dans CI/CD?

Instana La surveillance synthétique vous permet de :

  • Détectez les problèmes avant qu'ils n'affectent les utilisateurs
  • Exécutez des tests synthétiques à la demande après le déploiement
  • Automatisez les commentaires dans votre pull request ou créez des pipelines
  • Bloquer ou activer les déploiements de production en fonction des performances et de la disponibilité

Outils utilisés

  • GitHub
  • Automatisation CI/CD (pipeline)
  • Instana Surveillance synthétique
  • Exemple d'application

Flux de travail d'intégration

Étape 1 : Le développeur envoie le code à GitHub

Le processus commence lorsqu'un développeur valide et transmet les modifications apportées au code au référentiel GitHub.

git push origin new-feature
 

Étape 2 : le pipeline CI/CD déclenche une compilation

Le pipeline CI/CD est configuré pour surveiller le référentiel GitHub. Lorsqu'il détecte de nouveaux changements, il déclenche automatiquement une compilation.

Build récupère le dernier code depuis GitHub,, le compile et exécute des tests unitaires ou d'intégration.

Étape 3 : Signaler l'état de la compilation

Le pipeline met à jour le statut de validation dans GitHub.

  • Si la compilation échoue :

    • Le déploiement en production est bloqué : le pipeline s'arrête jusqu'à ce que le problème soit résolu.
  • Si la compilation réussit :

    • Le pipeline passe à la phase de déploiement.

Étape 4 : Déployer l'application

Si la compilation réussit, le pipeline continue et déploie la mise à niveau de l'application dans un environnement de test ou de préproduction.

Étape 5 : Démarrer les tests synthétiques à la demande d' Instana

Le pipeline déclenche un nombre illimité de tests de surveillance Synthetic existants InstanaOnDemand, à l'aide de l'API Instana api/synthetics/settings/tests/ci-cdAPI ciblant l'environnement mis à jour.

Ces tests peuvent être utilisés pour simuler les interactions des utilisateurs et surveiller les performances, la latence et la disponibilité de l'application.

curl -s -X POST -H "Content-Type: application/json" -H "authorization: apiToken $INSTANA_API_TOKEN" \
  https://your-instance.instana.io/api/synthetics/settings/tests/ci-cd \
  -d '[ 
    {
      "testId":"<test-id>",
      "customization":{
        "locations":["<location-id>"],
        "configuration":{"timeout":"2m","retries":0}
      }
    }
  ]'
 

Exemple de réponse :

[
  {
    "testResultId": "4e6451ba-7e47-487c-813d-5b95c73f391b",
    "testId": "<test-id>",
    "locationId": "<location-id>"
  }
] 
 

Étape 6 : Instana rapporte les résultats synthétiques

Le pipeline peut surveiller la fin des tests d' OnDemand s à l'aide de l'API Instana api/synthetics/settings/tests/ci-cd API et de l'exemple testResultId de réponse ci-dessus.

curl -s -H "Content-Type: application/json" -H "authorization: apiToken $INSTANA_API_TOKEN" \
  https://your-instance.instana.io/api/synthetics/settings/tests/ci-cd/4e6451ba-7e47-487c-813d-5b95c73f391b
 

Exemple de réponse :

{
  "testResultId": "4e6451ba-7e47-487c-813d-5b95c73f391b",
  "locationId": "<location-id>",
  "locationLabel": "<location-label>",
  "testId": "<test-id>",
  "testLabel": "<test-label>",
  "testType": "<test-type>",
  "runType": "OnDemand",
  "completed": true,
  "customization": {"configuration":{"retries":0,"timeout":"2m"}}
}
 

Vous pouvez obtenir des détails sur les exécutions des tests d' OnDemand s (réussite ou échec) à l'aide de l'API Synthetic Playback api/synthetics/results/list API.

curl -s -H "Content-Type: application/json" -H "authorization: apiToken $INSTANA_API_TOKEN" \
  https://your-instance.instana.io/api/synthetics/results/list \
  -d '{
    "syntheticMetrics":["errors"],
    "tagFilterExpression":{
      "elements":[
        {"stringValue":"OnDemand","name":"synthetic.runType","operator":"EQUALS"},
        {"elements":[{"stringValue":"4e6451ba-7e47-487c-813d-5b95c73f391b","name":"id","operator":"EQUALS"}],"logicalOperator":"OR","type":"EXPRESSION"}
      ],
      "logicalOperator":"AND",
      "type":"EXPRESSION"
    },
    "pagination":{"page":1,"pageSize":5},
    "timeFrame":{"to":0,"windowSize":14400000}
  }'
 

Exemple de réponse :

{
  "items":
  [
    {
      "testResultCommonProperties": 
        {
          "id": "4e6451ba-7e47-487c-813d-5b95c73f391b",
          "testId": "<test-id>",
          "testName": "<test-label>",
          "locationId": "<location-id>",
          "locationDisplayLabel": "<location-label>",
          "errors": ["{timeStamp=1759283474221, errorType=Assertion, errorMessage=Response time 1443.66ms exceeded 200msn}"],
          "runType": "OnDemand"
        }
    }
  ], 
  "page": 1,
  "pageSize": 5,
  "totalHits": 1
}
 

Étape 7 : Signaler l'état du pipeline - revenir en arrière en cas d'échec

  • Si le test synthétique OnDemand échoue, le pipeline :

    • Annuler la mise à niveau de l'application
    • Échec de la compilation
  • Si le test synthétique OnDemand réussit, le pipeline :

    • Maintenir le déploiement des applications
    • Marquer la compilation comme réussie

Conclusion

En intégrant la surveillance synthétique d' Instana à votre pipeline CI/CD, vous bénéficiez des avantages suivants :

  • Améliorer la confiance dans la qualité du développement
  • Détectez les problèmes avant qu'ils n'affectent la production
  • Réduire les risques et les cycles de maintenance
  • Assurez-vous que votre application respecte les accords de niveau de service (SLA) en matière de disponibilité et de performances à chaque étape.

Envisagez d'intégrer la surveillance synthétique d' Instana dans votre prochain pipeline de publication. Cette approche proactive peut aider à identifier et à corriger les problèmes potentiels avant qu'ils ne se manifestent dans l'environnement de production.