Qu’est-ce que DevOps

Quels sont les avantages DevOps? 

  • La qualité et l’efficacité: un meilleur code et des processus mieux définis
  • Amélioration du temps de déploiement: optimisation du temps de développement et une meilleure anticipation
  • Meilleure communication entre les développeurs et les métiers
  • Des versions de plus petite taille fournies très rapidement et très fréquemment
  • Moins de risques et moins de retours arrière
  • Réduction des coûts à long terme

Mais au fait, c’est quoi DevOps?

Le terme DevOps est une combinaison des mots « Development » et « Operations ».

On pourrait qualifier DevOps d’une « philosophie »  (ça reste pour les geeks…) qui vise à mettre en œuvre un changement de mentalité et une meilleure collaboration entre le développement et les opérations

C’est une approche qui automatise et optimise les processus entre les équipes de développement logiciel et les équipes informatiques opérationnelles afin de créer, de tester et de mettre en production des logiciels plus rapidement et de manière plus fiable. Traditionnellement isolées, DevOps consiste à éliminer les barrières entre les équipes de développement et les équipes informatiques opérationnelles. Dans un modèle DevOps, les équipes de développement et d’exploitation collaborent tout au long du cycle de vie des applications logicielles, du développement et des tests au déploiement et à l’exploitation. 

Comment fonctionne l’approche DevOps ?

DevOps est une méthode visant à améliorer le travail tout au long du cycle de vie du développement logiciel. Le processus DevOps ressemble à une « boucle sans fin » qui part de la planification du logiciel, passe par les phases de code, de build, de test et de release, puis revient à la planification en passant par le déploiement, l’exploitation, la surveillance continue et le feedback. Dans l’idéal, DevOps signifie qu’une équipe de développeurs écrit des logiciels qui répondent parfaitement aux besoins des utilisateurs, sont déployés sans perte de temps et s’exécutent de manière optimale dès leur première utilisation.

Une pratique DevOps de base consiste à effectuer des mises à jour très fréquentes, mais de petite taille.

Pour éviter les temps d’attente, les équipes informatiques utilisent des pipelines dits d’intégration continue ou de livraison continue (Continuous Integration/Continuous Delivery, CI/CD) pour déplacer le code d’une étape de développement et de livraison à une autre. Un pipeline CI/CD comprend une série d’étapes qui doivent être exécutées pour livrer une nouvelle version du logiciel. Il s’agit d’une pratique qui se concentre sur l’amélioration de la mise à disposition du logiciel.

Dans le cadre du projet Needeat nous avons repris la plateforme et développé les applications en react native, le front admin en reactjs et le backend en nodejs.

 

Les principales méthodes et principes DevOps

Les anciennes méthodes de développement logiciel agiles continuent d’avoir une grande influence sur les pratiques et les outils DevOps. De nombreuses méthodes DevOps, y compris Scrum et Kanban, intègrent des éléments de la programmation agile, qui se caractérise par une plus grande réactivité à l’évolution des besoins, en effectuant des stand-ups quotidiens et en intégrant le feedback continu des clients. La méthode Agile prescrit également des cycles de développement logiciel plus courts au lieu des longues méthodes de développement traditionnelles en cascade.

 

Scrum

Scrum définit la manière dont les membres d’une équipe doivent collaborer pour accélérer les projets de développement et d’assurance qualité. Les pratiques Scrum incluent des flux de travail importants et des termes spécifiques (sprints, créneaux horaires, réunion Scrum quotidienne) ainsi que certains rôles (Scrum Master, Product Owner).

 

Kanban

Kanban est né des gains d’efficacité réalisés dans l’usine Toyota. Kanban stipule que l’état des projets logiciels en cours doit être suivi sur une carte Kanban. Le nombre de travaux parallèles, le Work in Progress (WiP), est limité. De cette manière, les délais d’exécution sont plus courts et les problèmes – notamment les goulots d’étranglement – sont rapidement mis en évidence.

 

 

[wpforms id="9980" title="false"]
<div class="wpforms-container wpforms-container-full" id="wpforms-9980"><form id="wpforms-form-9980" class="wpforms-validate wpforms-form wpforms-ajax-form" data-formid="9980" method="post" enctype="multipart/form-data" action="/quest-ce-que-devops/" data-token="2fc59a98beec225aaa51eed87ffc9410"><noscript class="wpforms-error-noscript">Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.</noscript><div class="wpforms-field-container"><div id="wpforms-9980-field_3-container" class="wpforms-field wpforms-field-layout" data-field-id="3"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-9980-field_3">Layout</label><div class="wpforms-field-layout-columns wpforms-field-layout-preset-50-50"><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_0-container" class="wpforms-field wpforms-field-name" data-field-id="0"><label class="wpforms-field-label" for="wpforms-9980-field_0">Résumé / Pitch du projet <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-9980-field_0" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][0]" required></div><div id="wpforms-9980-field_16-container" class="wpforms-field wpforms-field-radio wpforms-conditional-trigger" data-field-id="16"><label class="wpforms-field-label" for="wpforms-9980-field_16">J&#039;ai une description détaillée du projet</label><ul id="wpforms-9980-field_16"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_16_1" name="wpforms[fields][16]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_16_2" name="wpforms[fields][16]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_2">Non</label></li></ul></div><div id="wpforms-9980-field_18-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="18" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_18">Vous avez des technos en tête ?</label><ul id="wpforms-9980-field_18"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_18_1" name="wpforms[fields][18][]" value="fullstackJS / python" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_1">fullstackJS / python</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_18_2" name="wpforms[fields][18][]" value="nocode bubble" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_2">nocode bubble</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_18_3" name="wpforms[fields][18][]" value="autre" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_3">autre</label></li></ul></div><div id="wpforms-9980-field_19-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="19" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_19">Type de projet</label><ul id="wpforms-9980-field_19"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_19_1" name="wpforms[fields][19][]" value="Applications web / mobiles" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_1">Applications web / mobiles</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_19_2" name="wpforms[fields][19][]" value="Projet data, IA " ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_2">Projet data, IA </label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_19_3" name="wpforms[fields][19][]" value="Site vitrine / e-commerce" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_3">Site vitrine / e-commerce</label></li></ul></div><div id="wpforms-9980-field_12-container" class="wpforms-field wpforms-field-textarea wpforms-conditional-field wpforms-conditional-show" data-field-id="12" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_12">Description détaillée de votre projet </label><textarea id="wpforms-9980-field_12" class="wpforms-field-medium" name="wpforms[fields][12]" ></textarea></div></div><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_1-container" class="wpforms-field wpforms-field-email wpforms-one-third" data-field-id="1"><label class="wpforms-field-label" for="wpforms-9980-field_1">Votre e-mail <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-9980-field_1" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][1]" required></div><div id="wpforms-9980-field_17-container" class="wpforms-field wpforms-field-radio" data-field-id="17"><label class="wpforms-field-label" for="wpforms-9980-field_17">Signer un accord de confidentialité ?</label><ul id="wpforms-9980-field_17"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_17_1" name="wpforms[fields][17]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_17_2" name="wpforms[fields][17]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_2">Non</label></li></ul></div></div></div></div></div><div class="wpforms-submit-container"><input type="hidden" name="wpforms[id]" value="9980"><input type="hidden" name="wpforms[author]" value="1"><input type="hidden" name="wpforms[post_id]" value="9680"><button type="submit" name="wpforms[submit]" id="wpforms-submit-9980" class="wpforms-submit" data-alt-text="Envoi..." data-submit-text="Envoyer" aria-live="assertive" value="wpforms-submit">Envoyer</button><img src="https://www.netdevices.fr/wp-content/plugins/wpforms/assets/images/submit-spin.svg" class="wpforms-submit-spinner" style="display: none;" width="26" height="26" alt="Chargement en cours"></div></form></div> <!-- .wpforms-container -->