Démarrer l'essai gratuit
Searching...
SoBrief
Français
EnglishEnglish
EspañolSpanish
简体中文Chinese
繁體中文Chinese (Traditional)
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Continuous Delivery

Continuous Delivery

par Jez Humble 2010 463 pages
4.20
3 000+ évaluations
Écouter
Essayez l'accès complet pendant 3 jours
Débloquez l'écoute et bien plus !
Continuer

Points clés

1. Livraison Continue : Automatiser le Processus de Mise en Production

Lorsqu’une bonne idée émerge, comment la livrer aux utilisateurs le plus rapidement possible ?

Des livraisons rapides et fiables. La Livraison Continue regroupe un ensemble de pratiques et de principes visant à réduire le délai entre la conception d’une idée et la mise à disposition d’un logiciel fonctionnel aux utilisateurs. Elle repose sur l’automatisation des processus de compilation, de test et de déploiement afin de permettre des livraisons fréquentes et à faible risque. Cette approche nécessite une collaboration étroite entre les équipes de développement, de test et d’exploitation.

Les avantages clés :

  • Mise sur le marché accélérée des nouvelles fonctionnalités
  • Qualité logicielle améliorée grâce aux tests automatisés
  • Risques réduits lors des déploiements
  • Meilleur retour d’expérience des utilisateurs

En adoptant la Livraison Continue, les organisations atteignent un état où la mise en production devient un événement routinier et prévisible, loin du stress habituel.

2. Le Pipeline de Déploiement : Un Cadre pour des Livraisons Fiables

Chaque modification apportée à votre logiciel suit un processus complexe avant d’être mise en production.

Visualiser le processus de livraison. Le pipeline de déploiement est un modèle conceptuel qui représente l’ensemble des étapes nécessaires pour passer du contrôle de version à la production. Il offre une visibilité sur chaque phase du processus, permettant aux équipes d’identifier les goulots d’étranglement et d’optimiser leur flux de travail.

Étapes typiques d’un pipeline de déploiement :

  1. Phase de commit : compilation du code, exécution des tests unitaires
  2. Tests d’acceptation automatisés
  3. Tests manuels (exploratoires, d’ergonomie, etc.)
  4. Tests de performance et de capacité
  5. Déploiement en production

Le pipeline garantit que seul un code de haute qualité, rigoureusement testé, atteint la production, limitant ainsi les risques de bugs critiques et renforçant la fiabilité globale du logiciel.

3. Automatisation de la Compilation et du Déploiement : Des Scripts pour la Cohérence

Le processus de compilation doit être automatisé jusqu’au point où une intervention humaine spécifique est nécessaire.

Éliminer les erreurs manuelles. Automatiser les processus de compilation et de déploiement est essentiel pour assurer la cohérence et la fiabilité des livraisons. En créant des scripts dédiés, les équipes suppriment les erreurs humaines et garantissent que chaque déploiement suit un protocole testé et identique.

Aspects clés de l’automatisation :

  • Contrôle de version pour tous les scripts et configurations
  • Paramétrage adapté aux environnements spécifiques
  • Scripts de déploiement idempotents (exécutables plusieurs fois sans risque)
  • Possibilité de retour arrière automatisé

Investir dans des scripts robustes se traduit par un gain de temps, moins d’erreurs et une confiance accrue dans le processus de livraison.

4. Phase de Commit : Un Retour Rapide sur la Qualité du Code

La phase de commit vérifie que le système fonctionne techniquement.

Contrôles qualité rapides. La phase de commit est la première étape du pipeline, déclenchée à chaque fois qu’un code est soumis au contrôle de version. Son objectif principal est de fournir un retour rapide sur la santé basique du code, détectant les erreurs simples avant qu’elles ne progressent dans le pipeline.

Activités typiques de la phase de commit :

  • Compilation (pour les langages compilés)
  • Tests unitaires
  • Analyse statique du code
  • Vérification du style de code

En maintenant cette phase rapide (idéalement moins de 5 minutes), les développeurs obtiennent un retour immédiat, leur permettant de corriger les problèmes tant que le contexte est encore frais.

5. Tests d’Acceptation Automatisés : Valider les Exigences Métier

Les tests d’acceptation sont une étape cruciale du pipeline : ils vont au-delà de l’intégration continue basique.

Garantir la valeur métier. Les tests d’acceptation automatisés vérifient que le logiciel répond aux exigences métier et apporte une réelle valeur aux utilisateurs. Ils s’exécutent sur un système entièrement intégré dans un environnement proche de la production, assurant que l’application fonctionne comme prévu du point de vue de l’utilisateur final.

Avantages des tests d’acceptation automatisés :

  • Validation des exigences métier
  • Détection précoce des problèmes d’intégration
  • Documentation vivante du comportement du système
  • Accélération et fréquence accrues des livraisons

Bien que leur création et maintenance demandent un effort, les bénéfices à long terme en termes de qualité et de confiance dans les livraisons surpassent largement les coûts.

6. Intégration Continue : Détecter les Problèmes Rapidement

« Continu » signifie plus souvent que vous ne le pensez.

Intégration fréquente. L’Intégration Continue (CI) consiste à fusionner régulièrement les modifications de code dans un dépôt partagé, souvent plusieurs fois par jour. Chaque intégration déclenche un processus automatisé de compilation et de test, permettant de détecter et corriger rapidement les problèmes d’intégration.

Principes clés de l’Intégration Continue :

  • Maintenir un dépôt source unique
  • Automatiser la compilation
  • Rendre la compilation auto-testée
  • Garder la compilation rapide
  • Faciliter l’accès à la dernière version exécutable pour tous

En intégrant fréquemment, les équipes évitent le « cauchemar de l’intégration » qui survient souvent lors de fusions massives après de longues périodes de développement isolé.

7. Gestion des Environnements et des Données : Cohérence Tout au Long du Pipeline

Il doit être possible de reproduire exactement n’importe lequel de mes environnements, y compris la version du système d’exploitation, son niveau de patch, la configuration réseau, la pile logicielle, les applications déployées et leur configuration.

Parité des environnements. Maintenir des environnements cohérents tout au long du pipeline de déploiement est essentiel pour garantir des livraisons fiables. Cela inclut non seulement le code applicatif, mais aussi le système d’exploitation, les middlewares, la configuration et les données entre développement, test et production.

Stratégies pour la gestion des environnements :

  • Utiliser des outils de gestion de configuration (Puppet, Chef, etc.)
  • Versionner toutes les configurations d’environnement
  • Automatiser la mise en place des environnements
  • Recourir à la virtualisation ou à la containerisation pour la cohérence

Assurer cette parité réduit les problèmes du type « ça marche sur ma machine » et renforce la confiance que ce qui fonctionne en test fonctionnera aussi en production.

8. Tester les Exigences Non Fonctionnelles : Au-Delà des Fonctionnalités

Les exigences non fonctionnelles telles que la disponibilité, la capacité, la sécurité et la maintenabilité sont tout aussi importantes et précieuses que les exigences fonctionnelles, et elles sont essentielles au bon fonctionnement du système.

Assurance qualité globale. Tester les exigences non fonctionnelles (NFR) est indispensable pour s’assurer qu’un système fonctionne correctement, offre de bonnes performances, s’adapte à la montée en charge, reste sécurisé et facile à maintenir. Ces aspects sont souvent négligés mais cruciaux pour le succès en production.

Exigences non fonctionnelles clés à tester :

  • Performance et réactivité
  • Scalabilité et capacité
  • Sécurité et protection des données
  • Fiabilité et disponibilité
  • Maintenabilité et qualité du code

En intégrant ces tests dans le pipeline, les équipes détectent tôt les problèmes potentiels et garantissent que le système répond à toutes ses exigences opérationnelles avant la mise en production.

9. Stratégies de Livraison : Minimiser les Risques en Production

La mise en production devrait être simple. Elle l’est lorsque chaque étape du processus a été testée des centaines de fois auparavant.

Livraisons sûres et fréquentes. Adopter des stratégies de livraison efficaces permet de déployer en production avec un risque et un temps d’indisponibilité minimaux. Ces stratégies reposent sur des changements incrémentaux, un retour rapide et la capacité à revenir rapidement en arrière en cas de problème.

Stratégies de livraison efficaces :

  • Déploiements blue-green : maintenir deux environnements de production et basculer le trafic entre eux
  • Releases canari : déployer progressivement les changements à un petit groupe d’utilisateurs
  • Bascule de fonctionnalités (feature toggles) : activer ou désactiver des fonctionnalités sans redéploiement
  • Retours arrière automatisés : revenir rapidement à un état stable en cas de problème

En mettant en œuvre ces stratégies et en pratiquant des livraisons fréquentes, les équipes transforment la mise en production d’un moment stressant en une opération routinière et maîtrisée.

Dernière mise à jour:

Report Issue

Résumé des avis

4.20 sur 5
Moyenne de 3 000+ évaluations de Goodreads et Amazon.

Continuous Delivery reçoit des critiques majoritairement positives, avec une note moyenne de 4,19 sur 5. Les lecteurs saluent sa couverture exhaustive des pratiques CI/CD, bien que certains le jugent répétitif et un peu daté. Ce livre est considéré comme un ouvrage incontournable pour les développeurs logiciels et les professionnels DevOps, offrant des éclairages précieux sur l’automatisation des processus de déploiement et l’amélioration de la qualité logicielle. Certains critiques soulignent sa longueur et un manque occasionnel d’exemples concrets. Malgré sa publication en 2010, de nombreux lecteurs estiment que ses principes fondamentaux restent pertinents et applicables aux pratiques modernes de développement logiciel.

Your rating:
4.58
212 évaluations
Want to read the full book?

FAQ

What's Continuous Delivery by Jez Humble about?

  • Focus on Automation: Continuous Delivery emphasizes automating the software delivery process to enable rapid, reliable, and low-risk releases.
  • Deployment Pipeline: Introduces the concept of a deployment pipeline, an automated process that takes software from version control to production.
  • Collaboration and Feedback: Highlights the importance of collaboration among developers, testers, and operations teams to improve software quality and reduce cycle times.
  • Risk Management: Discusses strategies for minimizing risks associated with deploying new software versions through automated testing and deployment.

Why should I read Continuous Delivery by Jez Humble?

  • Improve Release Processes: Offers insights into streamlining software release processes, making them more efficient and less stressful.
  • Learn Best Practices: Provides best practices for implementing continuous integration and deployment, essential for modern software development.
  • Stay Competitive: Equips readers with the knowledge to deliver software quickly and reliably, crucial for staying competitive in today's tech environment.
  • Comprehensive Framework: Presents a framework covering everything from version control to deployment strategies, valuable for software teams.

What are the key takeaways of Continuous Delivery by Jez Humble?

  • Automate Everything: Emphasizes automating the build, test, and deployment process to reduce human error and increase reliability.
  • Continuous Integration: Stresses the importance of continuous integration, where every change is automatically built and tested.
  • Feedback Loops: Advocates for fast feedback loops to identify and resolve issues quickly, involving all team members in the delivery process.
  • Incremental Changes: Encourages making small, incremental changes to keep the application in a releasable state and reduce the risk of bugs.

What is the deployment pipeline in Continuous Delivery by Jez Humble?

  • Automated Process: Describes the deployment pipeline as an automated process for getting software from version control into users' hands.
  • Stages of the Pipeline: Includes stages like commit, acceptance testing, and deployment to production-like environments, validating software readiness.
  • Visibility and Control: Provides visibility into the progress of changes, helping teams identify bottlenecks and improve collaboration.
  • Feedback Mechanism: Offers rapid feedback on the state of the application, allowing quick identification and resolution of issues.

How does Continuous Delivery by Jez Humble define continuous integration?

  • Frequent Integration: Defined as integrating code changes into a shared repository frequently, ideally multiple times a day.
  • Automated Testing: Every integration should trigger an automated build and comprehensive tests, providing immediate feedback on code quality.
  • Team Responsibility: Requires a commitment from the entire team to fix issues immediately, maintaining a high-quality codebase.
  • Facilitating Collaboration: Central to enabling collaboration among team members, ensuring a stable and releasable codebase.

What are some common release antipatterns mentioned in Continuous Delivery by Jez Humble?

  • Manual Deployments: Deploying software manually is error-prone and can lead to unpredictable outcomes; automation is recommended.
  • Late Testing: Deploying to production-like environments only after development can result in late issue discovery, making fixes harder.
  • Configuration Management Issues: Manual configuration management is problematic; automated processes ensure consistent configurations across environments.
  • Lack of Feedback: Delayed feedback loops can hinder the identification and resolution of issues, affecting software quality.

What are blue-green deployments as described in Continuous Delivery by Jez Humble?

  • Two Environments: Involves maintaining two identical production environments, blue and green, to minimize downtime during releases.
  • Deployment Strategy: New versions are deployed to the inactive environment while the active one serves users, allowing quick rollbacks.
  • Risk Reduction: Reduces risks associated with new releases by ensuring a seamless transition between environments.
  • User Impact: Minimizes user impact during deployments, providing a smoother experience.

What is canary releasing in the context of Continuous Delivery by Jez Humble?

  • Small Subset Rollout: New versions are rolled out to a small subset of users before a full deployment.
  • Real-World Testing: Allows monitoring of the new version under real-world conditions, gathering feedback before wider release.
  • Issue Identification: Helps identify issues without impacting the majority of users, reducing deployment risks.
  • Feedback Collection: Provides valuable insights into user experience and application performance.

How does Continuous Delivery by Jez Humble suggest managing infrastructure and environments?

  • Automated Provisioning: Emphasizes automated provisioning and configuration management to ensure consistent environments.
  • Tools and Consistency: Recommends tools like Puppet or Chef for managing infrastructure, catching configuration issues early.
  • Environment Reproduction: Ensures environments can be recreated easily, closely resembling production for accurate testing.
  • Risk Mitigation: Reduces risks associated with environment discrepancies, improving deployment success.

What are the best practices for automated testing in Continuous Delivery by Jez Humble?

  • Comprehensive Test Coverage: Stresses the importance of a comprehensive suite of automated tests, including unit, integration, and acceptance tests.
  • Fast Feedback Loops: Tests should run quickly, providing rapid feedback to developers and identifying issues early.
  • Continuous Testing: Advocates for continuous testing as part of the deployment pipeline, ensuring the application remains releasable.
  • Collaboration in Test Creation: Encourages collaboration among developers, testers, and users to write accurate automated acceptance tests.

How does Continuous Delivery by Jez Humble address the issue of legacy systems?

  • Incremental Refactoring: Suggests improving legacy systems through incremental refactoring rather than complete rewrites.
  • Branch by Abstraction: Introduces "branch by abstraction" to manage changes without disrupting current functionality.
  • Automated Testing: Emphasizes automated testing to ensure changes do not introduce new bugs, maintaining system integrity.
  • Risk Management: Provides strategies for managing risks associated with updating legacy systems.

How can I implement the practices from Continuous Delivery by Jez Humble in my organization?

  • Start Small: Begin with key practices like automating build and testing processes, expanding gradually.
  • Foster Collaboration: Encourage open communication and cross-functional teamwork to enhance the delivery process.
  • Measure and Adapt: Use metrics to track effectiveness, regularly reviewing and adapting processes for continuous improvement.
  • Cultural Shift: Promote a culture of shared responsibility and continuous learning among team members.

À propos de l'auteur

Jez Humble et Dave Farley sont des experts reconnus dans le domaine du développement logiciel et de la livraison continue. Jez Humble, consultant principal chez ThoughtWorks, a accompagné de nombreuses organisations dans la mise en place et l’amélioration de leurs processus de livraison. Intervenant régulier lors de conférences, il est également l’auteur de plusieurs ouvrages consacrés au DevOps et à la livraison continue. Dave Farley, développeur logiciel indépendant, cumule plus de 25 ans d’expérience dans la conception de systèmes de livraison logicielle. Forts de leur riche expérience pratique, les deux auteurs partagent dans cet ouvrage des analyses approfondies et des bonnes pratiques incontournables en matière de livraison continue. Leur collaboration a donné naissance à un ouvrage de référence, qui a profondément influencé de nombreuses organisations et professionnels dans l’adoption de méthodes de livraison performantes.

Follow
Écouter
Now playing
Continuous Delivery
0:00
-0:00
Now playing
Continuous Delivery
0:00
-0:00
1x
Queue
Home
Swipe
Library
Get App
Try Full Access for 3 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
Read unlimited summaries. Free users get 3 per month
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 26,000+ books. That's 12,000+ hours of audio!
Day 2: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 3: Your subscription begins
You'll be charged on Jun 6,
cancel anytime before.
Consume 2.8× More Books
2.8× more books Listening Reading
Our users love us
600,000+ readers
Trustpilot Rating
TrustPilot
4.6 Excellent
This site is a total game-changer. I've been flying through book summaries like never before. Highly, highly recommend.
— Dave G
Worth my money and time, and really well made. I've never seen this quality of summaries on other websites. Very helpful!
— Em
Highly recommended!! Fantastic service. Perfect for those that want a little more than a teaser but not all the intricate details of a full audio book.
— Greg M
Save 62%
Yearly
$119.88 $44.99/year/yr
$3.75/mo
Monthly
$9.99/mo
Start a 3-Day Free Trial
3 days free, then $44.99/year. Cancel anytime.
Unlock a world of fiction & nonfiction books
26,000+ books for the price of 2 books
Read any book in 10 minutes
Discover new books like Tinder
Request any book if it's not summarized
Read more books than anyone you know
#1 app for book lovers
Lifelike & immersive summaries
30-day money-back guarantee
Download summaries in EPUBs or PDFs
Cancel anytime in a few clicks
Scanner
Find a barcode to scan

We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel
Settings
General
Widget
Loading...
We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel