DevOps Flashcards
1
Q
Introduction
A
- Pendant longtemps, le développement et les opérations ont été des départements isolés.
- Les développeurs écrivent du code ;
- les administrateurs système sont responsables de son déploiement et de son intégration.
- Etant donné que la communication entre ces deux silos était limitée, les spécialistes
travaillaient séparément au sein d’un même projet. - Cette approche est acceptable pour le développement en cascade. Mais, avec l’approche Agile, ce modèle en silos n’est pas approprié.
- Le fait que les itérations sont courtes et les releases sont fréquents (exp. toutes les deux semaines) nécessite une nouvelle approche et même un nouveau rôle au sein de l’équipe de développement.
- Aujourd’hui, DevOps est l’une des approches de développement logiciel les plus utilisées.
- elle est utilisée par Facebook, Netflix, Amazon, Microsoft et de nombreuses autres entreprises leaders du secteur.
- elles ont adopté l’approche DevOps dans le but d’améliorer les performances, la réussite commerciale et la compétitivité.
2
Q
Qu’est-ce que c’est DevOps ?
A
- DevOps signifie développement et opérations.
- une méthodologie de développement logiciel
qui combine le développement logiciel ( Dev )
avec les opérations informatiques ( Ops )
participant ensemble à la globalité du cycle de
vie. - une pratique qui vise à fusionner le
développement, l’assurance qualité et les
opérations (déploiement et intégration) dans
un processus unique et continu. - Cette méthodologie est une extension
naturelle des approches Agile et de livraison
continue.
3
Q
Activités composant le flux DevOps.
A
- Plan : gestion des tâches, plannification
- Code : développement du code et revue du code, outils de gestion du code source, intégration du code
- Build : outils d’intégration continue, outils de contrôle de version, état du build
- Test : outils de test continu qui fournissent un rapport sur les erreurs et les performances
- Package : artefacts de déploiement, test de pré-déploiement de l’application
- Release : gestion des changements, approbations des releases, automatisation des releases
- Operate : installation de l’infrastructure, modifications de
l’infrastructure (évolutivité), configuration et gestion de
l’infrastructure, outils d’infrastructure, planification de la capacité,
gestion de la capacité et des ressources, contrôle de sécurité,
déploiement de services, garantir une disponibilité élevée, gestion
des journaux/sauvegardes, restaurations de données, gestion de la base de données - Monitor : suivi des performances du service, suivi des logs, suivi de
l’expérience de l’utilisateur final, gestion des incidents
4
Q
Les objectifs du DevOps
A
- C’est une méthodologies qui assure :
- Un développement plus rapide
- Des résultats d’assurance qualité plus rapide
- Un déploiement plus rapide
- Des itérations incrémentales et des rétroactions continues
- Une communication forte et continue entre les parties prenantes
- les utilisateurs finaux et les clients, les propriétaires de produits, les développeurs, l’assurance qualité, etc.
- Une mise en production plus rapide
5
Q
Les avantages du DevOps
A
- Stabilisation de l’environnement
- Renforce la cohérence, augmente le temps de disponibilité
- Cycle de développement plus court
- Gérer les exigences et le référentiel de code
- Augmentation la fréquence des releases
- Construction continue, déploiements sur demande
- Nombre d’erreurs réduit
- Processus contrôlé, tests automatisés
- Métriques pour le processus
- Suivre la durée de chaque étape, ainsi que les statistiques sur les erreurs et les exceptions
6
Q
- Trois avantages couvrant les aspects technique, financier et culturel du
développement.
A
- Une vitesse de mise en production et une qualité plus élevées des versions du produit.
- DevOps accélère la mise en production du produit en introduisant une livraison continue, en encourageant un feedback plus rapide du client et en permettant aux développeurs de corriger les bogues plus rapidement.
- l’équipe peut ainsi se concentrer sur la qualité du produit et automatiser un certain nombre de processus.
- Une réactivité plus rapide aux besoins des clients.
- une équipe peut réagir plus rapidement aux demandes de changement des clients, en ajoutant de nouvelles fonctionnalités et en mettant à jour les fonctionnalités existantes.
- les délais de mise sur le marché diminuent et la fréquence de livraison augmente.
- Meilleur environnement de travail.
- Les principes et les pratiques DevOps conduisent à une meilleure communication entre les membres de l’équipe, ainsi qu’à une productivité et une agilité accrues.
- Les équipes qui pratiquent DevOps sont considérées comme plus productives et polyvalentes.
- Les membres d’une équipe DevOps, aussi bien ceux qui développent que ceux qui sont en opération, agissent ensemble de concert.
7
Q
- Ces avantages ne viennent qu’avec la compréhension que DevOps
n’est pas simplement un ensemble d’actions, mais plutôt une
philosophie qui favorise la communication au sein d’une équipe
interfonctionnelle. - DevOps ne nécessite pas de changements techniques substantiels car
l’objectif principal est de modifier la façon dont les gens travaillent. - Le succès dépend du respect des principes DevOps.
- En 2010, Damon Edwards et John Willis ont proposé le modèle CAMS pour
présenter les principes clés de DevOps. - CAMS est un acronyme qui signifie :
- En 2010, Damon Edwards et John Willis ont proposé le modèle CAMS pour
A
Culture, Automation, Measurement, et
Sharing.
8
Q
Principes DevOps
* Culture
A
- DevOps est essentiellement une culture et l’état d’esprit qui forgent des liens de collaboration solides entre les équipes de développement logiciel et d’exploitation
de l’infrastructure (opération). - Cette culture repose sur les piliers suivants.
* Collaboration et communication constantes.
* Ce sont les éléments constitutifs de DevOps depuis sa création.
* Les deux équipes doivent travailler de manière cohérente avec une bonne compréhension des besoins et des attentes de tous les membres.
* Changements progressifs.
* La mise en œuvre de déploiements progressifs permet aux équipes de livraison de proposer fréquemment des versions du produit aux utilisateurs tout en ayant la possibilité de rapidement effectuer des mises à jour et revenir en arrière en cas de problème.
* Responsabilité partagée de bout en bout.
* Lorsque chaque membre d’une équipe vise un objectif commun et est également responsable d’un projet du début à la fin, ils travaillent de manière cohérente et cherchent des moyens de faciliter les tâches des autres membres.
* Résolution rapide des problèmes.
* DevOps exige que les tâches soient effectuées le plus tôt possible dans le cycle de vie du projet. Ainsi, en cas de problèmes, ils seront traités plus rapidement.
9
Q
Principes DevOps
* Automatisation des processus
A
- Automatiser autant de processus de développement, de test, de configuration et de déploiement que
possible est la règle d’or du DevOps. - Il permet aux spécialistes de se débarrasser du travail répétitif chronophage et de se concentrer sur d’autres
activités importantes qui ne peuvent pas être automatisées par leur nature.
10
Q
Principes DevOps
* Mesure des KPI (Key Performance Indicators)
A
- La prise de décision doit être guidée essentiellement par des informations factuelles.
- Pour obtenir des performances optimales, il est nécessaire de suivre l’avancement des activités composant le flux DevOps.
- Mesurer diverses métriques permet de comprendre ce qui fonctionne bien et ce qui peut être amélioré.
- Fréquence de déploiement, taux d’échec des changements, Temps moyen de récupération (MTTR), Délai de mise en production, volume des changements, Taux d’erreurs non identifiées, nombre de billets ouvert par le clients, etc.
11
Q
Principes DevOps
* Partage (Sharing)
A
- DevOps souligne l’importance de la collaboration.
- Il est crucial de partager les retours d’expérience, les bonnes pratiques et les connaissances entre les équipes car cela favorise la transparence, crée une intelligence collective et élimine les contraintes.
* Vous ne voulez pas mettre tout le processus de développement en pause simplement parce que la seule personne qui sait
gérer certaines tâches est partie en vacances ou a démissionné.
12
Q
Modèle et pratiques DevOps
A
DevOps nécessite un cycle de livraison qui comprend la planification, le
développement, les tests, le déploiement, la publication et la surveillance
avec une coopération active entre les différents membres d’une équipe.
13
Q
Modèle et pratiques DevOps
* Les pratiques de base qui constituent le DevOps :
A
- Planification agile
- Développement continu
- Tests automatisés continus
- Intégration et livraison continues (CI/CD)
- Livraison continue
- Contrôle continu - Monitoring
14
Q
- Planification agile
A
- Contrairement aux approches traditionnelles de gestion de projet, la planification Agile organise le travail en courtes itérations (par exemple des sprints) pour augmenter le nombre de versions.
- Cela signifie que l’équipe ne peut définir que des objectifs de haut niveau, tout en
faisant une planification détaillée pour quelques itérations à l’avance. - Cela permet une flexibilité et la possibilité de changement, une fois qu’un incrément de produit est rendu accessible et testé.
15
Q
- Développement continu
A
- Le concept «continu» englobe le développement logiciel itératif, ce qui signifie que tout le travail de développement est divisé en petites portions pour un meilleur produit et une livraison plus rapide.
- Les développeurs font des commits le code par petits morceaux plusieurs fois par jour pour qu’il soit facilement testé.