In Développement et le DevOps Dernière mise à jourated:
Partager sur:
Cloudways propose un hébergement cloud géré aux entreprises de toutes tailles pour héberger un site Web ou des applications Web complexes.

Entendu CI / CD mais vous ne savez pas ce que c'est?

Ideally, les ingénieurs logiciels sont embauchés pour écrire du code qui doit être envoyé dans un environnement de production afin que l'entreprise qui a besoin du produit puisse l'utiliser. Pour satisfaire l’entreprise (souvent appelée utilisateurs/clients), il est essentiel que les produits soient exempts de bugs.

L'approche typique suivie par les ingénieurs logiciels est de travailler dans des succursales et des crate une pull request qui a été mise à jouratec'est la branche principale avec la nouvelle mise à jourate cela a été fait. Nous avons adopté la pratique d'écrire des tests afin de garantir que les nouvelles modifications n'introduisent pas de bogues. Lorsque les développeurs travaillent sur une fonctionnalité, dans la plupart des cas, ils ne créent souvent pas de fonctionnalités.ate une pull request jusqu'à ce qu'ils aient complètement terminé avec la fonctionnalité. Ce qui se passe lorsqu’ils sont prêts, c’est cela ;

  • Ils passent beaucoup de temps à essayer de mettre leur base de code à niveau.ate avec les changements survenus dans le secteur de la production pendant qu'ils travaillaient.
  • Ce faisant, ils doivent résoudre une série de conflits de fusion.
  • Il est également possible qu'ils rompent la branche de production, ce qui affecte ceux qui quittent la branche avant que le problème ne soit vu et résolu.

Si vous avez déjà été dans cette situation, vous conviendrez que cela peut être pénible – personne n'aime volontairement dépenser son argent. workday comme ça.

Quelle est la solution?

Intégration continue

Hautrevent les scénarios que je stated ci-dessus ; les équipes d'ingénierie peuvent adopter la pratique appelée intégration continue – comme son nom l'indique, cela implique l'intégration continue des modifications de code apportées par les développeurs dans la branche/le référentiel partagé. Le code à intégrerated doit subir un test vérifié pour s'assurer qu'il ne casse pas l'application. Ce n'est que lorsque le test réussit qu'il est intégréated

Pour comprendre cela, imaginons un scénario réel où se trouve une équipe de 10 développeurs. Ces développeurs créentate une succursaleally dans lequel ils écrivent du code pour la mise en œuvre de certaines fonctionnalités. Au lieu d'envoyer des demandes d'extraction lorsqu'ils ont entièrement terminé avec la fonctionnalité, ils choisissent d'envoyer des demandes d'extraction car ils apportent peu de modifications. Un exemple d'un tel changement sera le creation d'un nouveau modal, en supposant que le développeur travaille sur une fonctionnalité qui permet aux utilisateurs de gérer des tâches individuelles dans l'application. Au lieu d'attendre que la fonctionnalité de tâche soit terminée, pour adhérer à un modèle d'intégration continue, le développeur pousse ce petit changement (par rapport à ce sur quoi il travaille) et créeatesa pull request pour fusionner avec le code.

Avant que ce nouveau changement soit intégréated, une série de tests doivent être exécutés.

Les équipes d'ingénierie logicielle utilisent des outils tels que Travis CI créerate ces intégrations processes et tests. Avec des outils comme ceux-ci, les tests sont automatiquesated, de sorte qu'il s'exécute dès qu'une pull request est soumise à la branche cible sélectionnée lors de la configuration.

Les résultats des tests sont générauxated, et le développeur qui a crééated les demandes d'extraction peuvent voir les résultats et apporter les modifications nécessaires. Les avantages de s'en tenir à ce modèle d'intégration de code le moins possible et d'avoir un test vérifié à exécuter sont :

  • Il devient possible pour l'équipe impliquée de savoir ce qui a causé la construction process ou le test échoue. Cela réduit la possibilité d’envoyer un bug en production.
  • Si l'équipe est automatiqueates le process, ils auront le luxe de pouvoir se concentrer sur leur vie productive.

La chose importante à noter dans cette pratique est qu’elle encourage l’équipe à pousser fréquemment le code vers la branche principale. Faire cela sera inefficace si les autres membres de l'équipe ne tirent pas de la branche principale pour mettre à jourate leur référentiel local.

Types de tests

En rédaction des tests qui feront partie de l'intégration process, en voici quelques-uns qui peuvent être implémentés dans le process:

  • Intégration - il combine des unités individuelles du logiciel et les teste en tant que groupe.
  • Unité - il teste des unités individuelles ou des composants du logiciel comme des méthodes ou des fonctions.
  • UI - affirme que le logiciel fonctionne bien du point de vue de l'utilisateur.
  • Acceptation - teste que le logiciel répond aux exigences de l'entreprise.

Il est important de noter que vous n'avez pas besoin de tester tous ces éléments, car une poignée d'entre eux peuvent déjà être couverts dans le code écrit par le développeur.

Outils d'intégration continue

Sans entrer dans les détails, voici des outils que vous pouvez commencer à utiliser dans vos projets actuels ou nouveaux;

  • Travis CI - connu dans le monde open-source et vous promet de tester votre code de manière transparente en quelques minutes.
  • Cercle CI – vous offre puissance, flexibilité et contrôle pour automatiserate votre pipeline du contrôle au déploiement.
  • Jenkins - fournit des centaines de plugins pour prendre en charge la création, le déploiement et l'automatisation de tout projet.

Si vous êtes nouveau sur Jenkins, je vous suggère de prendre ceci Cours Udemy pour apprendre CI avec Java et .NET.

Déploiement continu

À quoi cela servira-t-il si la fonctionnalité que vous créez se trouve dans le référentiel pendant des semaines ou des mois avant d'être déployée dans l'environnement de production. Autant les équipes d'ingénierie peuvent travailler à l'intégration de petits changements dans la branche principale au fur et à mesure, elles peuvent également pousser ces changements dans l'environnement de production dès que possible.

L'objectif lors de la pratique du déploiement continu est de transmettre les modifications apportées aux utilisateurs dès que les développeurs intègrentate ces changements dans la branche principale.

Comme dans le cas de l'intégration continue, lors du recours au déploiement continu, l'automatisationated des tests et contrôles sont mis en place pour s'assurer que les nouveaux intégrésated les changements sont vérifiés. Le déploiement n'a lieu que lorsque ces tests réussissent.

Pour qu'une équipe puisse bénéficier de la pratique du déploiement continu, elle doit disposer des éléments suivants:

  • AutomateLes tests d sont l’épine dorsale essentielle de toutes les pratiques d’ingénierie continue. Dans le cas d'un déploiement continu, le code à déployer doit répondre à la norme que l'équipe a mise en place pour ce qu'elle a l'intention de proposer aux utilisateurs finaux. Idéeally, si un nouveau changement est inférieur au seuil, le test devrait échouer et ne pas être intégréated. Sinon, cela devient intégréated.
  • Malgré l'automatismeated tests consécutifs, il est possible que certains bugs se glissent dans l'environnement de production. Pour cela, il est nécessaire que l'équipe soit capable d'annuler une modification effectuée – annuler un déploiement. Ceci devrait revert le code de production tel qu'il était avant la nouvelle modification.
  • Monitordes systèmes de gestion sont nécessaires pour suivre les changements qui ont été poussés vers l'environnement de production. C'est ainsi que l'équipe peut être en mesure de suivre les bugs que les utilisateurs rencontrent lors de l'utilisation des modifications déployées.

Les outils mentionnés pour l'intégration continue vous offrent également la fonctionnalité de mise en place d'un système de déploiement continu. Il y en a beaucoup que vous pouvez aussi lire sur.

Conclusion

La productivité d'une équipe de développement est essentielle au succès de l'entreprise. Pour s'assurer qu'ils sont productive, des pratiques qui encouragent cela doivent être adoptées. L'intégration et le déploiement continus sont des exemples de telles pratiques.

Grâce à l'intégration continue, les équipes peuvent diffuser quotidiennement autant de code que possible. Une fois cela réalisé, il devient facile de déployer les modifications nouvellement ajoutées auprès de l'utilisateur dès que possible. Le déploiement de ces changements permet d'obtenir des retours des utilisateurs. Au final, l'entreprise sera capable d'innoverate sur la base des commentaires reçus, ce qui est gagnant-gagnant pour tout le monde.

Vous pouvez également apprendre à faire évoluer et optimiser CI/CD.

Si vous êtes un développeur et que vous souhaitez apprendre CI / CD, jetez un œil à ceci parcours brillant.

Partager sur:
  • Kingsley Silas
    Auteur

Merci à nos commanditaires

Plus de bonnes lectures sur le développement

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.

    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.

    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.

    Essayez Intruder