Exploration pratique du développement du projet CICD | Équipe technique logistique de Jingdong

Cet article présente la compréhension de l'auteur du CICD et de plusieurs scénarios de mise en œuvre du CICD dans des projets, et résume les nœuds clés de chaque pratique de scénario, les avantages qu'il apporte et l'application pratique de projets spécifiques. Les lecteurs peuvent apprendre des scénarios décrits dans cet article, ou apprendre des méthodes pratiques mentionnées dans l'article, pour réaliser le CICD dans le projet et fournir un soutien spécifique pour le déploiement d'intégration continue du projet.

 

1. Introduction

Basés sur les plateformes Bamboo, EOS et SonarQube de l'entreprise, l'intégration et le déploiement continus CICD sont réalisés dans le projet. Présentez la scène du développement de CICD, l'application pratique dans le projet et la planification de suivi.

2 Concepts de base du CICD

CICD est l'abréviation de Intégration Continue et Déploiement Continu. Il fait référence à l'exécution automatique d'une série de scripts dans le processus de développement afin de réduire la probabilité d'introduire des bogues dans le développement et de minimiser l'intervention manuelle dans le processus d'élaboration d'un nouveau code, du développement au déploiement.

CICD Core : intégration continue, déploiement continu, livraison continue.

CI : Intégration Continue, ce qui signifie intégration continue.

Après avoir poussé le code vers l'entrepôt distant, une série de tests, de construction et d'autres processus sont effectués avant que cette soumission ne soit fusionnée dans la branche principale.
Supposons qu'un code d'application soit stocké dans l'entrepôt et que le développement soit poussé plusieurs fois par jour. Pour chaque poussée, vous pouvez créer une série de scripts pour des tests automatiques afin de réduire la probabilité d'introduire des erreurs dans l'application. Il peut être appliqué sur plusieurs branches, y compris la branche de développement.
Dans le processus d'intégration continue, nous attachons une grande importance aux résultats de la vérification automatisée des tests pour garantir la qualité de toutes les soumissions après la fusion de la ligne principale et pour avertir d'éventuels problèmes.

CD : Continuity Delivery, ce qui signifie livraison continue.

Cela signifie que le code vérifié peut être automatiquement transmis à l'entrepôt une fois le CI terminé.
L’objectif de la livraison continue est d’avoir une base de code prête à être déployée en production.

CD : Déploiement continu, ce qui signifie déploiement continu.

Il fait référence à une étape supplémentaire basée sur l'intégration continue et fait référence au déploiement du code de la branche par défaut de l'entrepôt du référentiel push dans un environnement spécifique.
Fournissez rapidement des produits de haute qualité grâce à des boucles automatisées de création, de test et de déploiement. Dans une certaine mesure, cela représente le degré d'ingénierie d'une équipe de développement. Toute modification qui réussit tous les flux de travail existants rencontrera directement les clients. Ce n'est que lorsqu'une modification ne parvient pas à intégrer le flux de travail qu'elle peut empêcher son déploiement sur la gamme de produits.

3 scénarios de développement de CICD

3.1 Compiler et déployer

Réaliser le processus de compilation-déploiement automatique après la soumission du code, en remplaçant l'opération manuelle de déploiement de construction sur j-one

contenu:

  • Construction automatique, déploiement automatique, notification des résultats du déploiement de construction après la soumission du code ;

revenu:

  • Supprimez le temps d'attente dans l'opération de déploiement manuel une fois la construction du code sur Jone terminée ;

3.2 Tests unitaires

Effectuer des tests unitaires basés sur Junit

contenu:

  • Pour le code back-end, écrire des scripts de tests unitaires basés sur Junit, effectuer des tests unitaires et obtenir des rapports de tests unitaires et des rapports de couverture de code jacoco ;

revenu:

  • Améliorer la couverture des tests et améliorer la qualité du code ;
  • Réduisez les bugs et localisez rapidement les bugs ;
  • Refactoring avec un support limité ;

3.3 Analyse des codes

Implémenter la détection de la qualité du code basée sur SonarQube

Implémenter la détection de la qualité du code basée sur EOS

contenu:

  • Réaliser une détection par balayage de code basée sur SonarQube ou la plateforme d'entreprise EOS ;
  • La soumission du code déclenche automatiquement l'analyse du code et génère enfin des rapports et des notifications de résultats ;
  • Les résultats de l'analyse sont inclus dans la qualité du projet, et les problèmes sont enregistrés et suivis jusqu'à ce qu'ils soient résolus en boucle fermée.

revenu:

  • Riches moyens de détection de la qualité du code ;
  • Tests automatisés à plusieurs niveaux pour améliorer la qualité du code ;
  • Déclenchez automatiquement l'exécution des tests, réduisez le temps d'attente des tests, améliorez l'efficacité et réalisez sans surveillance ;

3.4 Tests automatisés

Réalisez des tests automatisés basés sur Python, EasyOne, DeepTest, Jmeter.

contenu:

  • Implémenter la détection de la qualité du code basée sur SonarQube ;
  • Réaliser les tests automatisés de chaque lien de l'ensemble du lien ;
  • La soumission du code déclenche automatiquement l'exécution des tests, la génération de rapports et la notification des rapports ;

revenu:

  • Tests automatisés à plusieurs niveaux pour améliorer la qualité du code ;
  • Déclenchez automatiquement l'exécution des tests, réduisez le temps d'attente des tests, améliorez l'efficacité et réalisez sans surveillance ;

3.5 Exploration des tests de liaison complète

Combinez les scénarios individuels ci-dessus pour former un scénario de test de lien complet ;
la soumission du code déclenche le fonctionnement automatique du lien, ainsi que la génération de rapports et l'envoi d'e-mails.

4 Pratique du projet

Combinaison avec la plateforme interne de l'entreprise pour réaliser du CICD dans des projets réels.

4.1 Plateforme interne de l'entreprise

Bamboo
Bamboo est un ensemble de solutions de pipeline CI/CD développées par JD.com, couvrant le cycle de vie complet du développement logiciel.

EOS
EOS est un système d'analyse de code développé indépendamment par Technology and Data Center. En scannant et en analysant les codes, il localise les segments de code irréguliers dans le projet et donne des suggestions de modification. Il peut superviser et restreindre efficacement les développeurs pour unifier leurs habitudes de codage et réduire les problèmes. Causé par un codage irrégulier.Les erreurs de bas niveau qui en résultent peuvent améliorer la lisibilité du code et améliorer l'efficacité du travail d'équipe.

4.2 Application pratique du projet

1) Compiler-déployer

Construisez un pipeline sur Bamboo pour la branche de déploiement de build à haute fréquence sur Jone afin d'obtenir :
soumission de code - appeler la build de Jone - appeler le déploiement de Jone - notification des résultats

Plusieurs façons de déclencher la compilation et la construction :

  • Exécution manuelle ;
  • La soumission du code déclenche l'exécution ;
  • La tâche de synchronisation déclenche l'exécution ;
  • Cascadez d'autres pipelines pour déclencher l'exécution ;

Situation de l'application :

  • Tous les tests et couvertures du groupe ont déployé des pipelines pertinents ;
  • Aider les testeurs à déployer des pipelines de build automatiques dans le projet testé, avec un total de 364 appels.

2) Tests unitaires

Effectuer des tests unitaires pour le projet back-end pour obtenir :
soumission de code-maven build-get rapport de test unitaire-notification des résultats

Effet d'application :

  • Cela simplifie grandement le processus d'obtention du rapport de test unitaire, grâce à un processus simple, vous pouvez effectuer le test unitaire pour le projet, exécuter le test unitaire et obtenir les résultats des tests unitaires ;
  • Soutenir plus de 8 projets pour déployer un pipeline de tests uniques, taux d'amélioration effectif du système d'autorité JDL-CRM : 20 %

3) Tests automatisés

Une fois le projet déployé, effectuer des tests de régression automatisés avant la mise en ligne du projet pour obtenir :
tests automatisés - rapport de test - notification des résultats des tests

Actuellement basé sur le langage Python et s'appuyant sur le module tiers Py, il réalise des scripts, s'intègre à la plateforme Bamboo, exécute le pipeline et obtient des rapports.

Effet d'application :

  • Responsable du test de régression automatique UAT avant la mise en ligne dans le projet de vente et de service ;

4) Numérisation de codes

Sur la base des plates-formes SonarQube et EOS construites par l'entreprise, l'analyse du code est effectuée pour réaliser :
soumission du code-analyse du code-analyse du rapport-problème ligne d'enregistrement manuelle cloud

5 Planification du suivi

Les données de processus CICD sont combinées avec des données de performances de qualité.
Réalisez des tests automatisés pour davantage de projets basés sur DeepTest et intégrez-les à la plateforme BamBoo.
Application de l'analyse de code dans les projets.

Auteur : JD Logistique Chen Wei

Source : JD Cloud Developer Community Réimprimé de Yuanqishuo Tech, veuillez indiquer la source

Le premier IDE du pays prenant en charge le développement multi-environnements——CEC-IDE Microsoft a intégré Python dans Excel et Oncle Gui a participé à la formulation du cadre. Les programmeurs chinois ont refusé d'écrire des programmes de jeu et se sont fait arracher 14 dents, avec 88 % de dégâts corporels. . Podman Desktop, une police open source imitant Song, dépasse les 500 000 téléchargements. Ignore automatiquement les publicités à l'écran d'ouverture. L'application cesse de se mettre à jour indéfiniment. "Li Tiao Tiao" Xiaomi a déposée sur le nom de domaine du site Web mios.cn
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/4090830/blog/10102774
conseillé
Classement