Quiz+Final Questions PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document contains a collection of questions related to software development, particularly in the context of DevOps practices and infrastructure. It includes multiple-choice questions and true/false statements regarding topics such as version control, deployment strategies, and infrastructure design.
Full Transcript
# Final ## Quiz 6 Parmi la liste suivante, identifiez les éléments qui doivent être archivé dans le système de gestion de versions partagé. [x] Scripts de configuration d'infrastructure. [x] Outils et artefacts de création d'environnement. [x] Fichiers de configuration du cloud. [x] Tests auto...
# Final ## Quiz 6 Parmi la liste suivante, identifiez les éléments qui doivent être archivé dans le système de gestion de versions partagé. [x] Scripts de configuration d'infrastructure. [x] Outils et artefacts de création d'environnement. [x] Fichiers de configuration du cloud. [x] Tests automatisés. [x] Fichiers de code. Dans les processus de développement traditionnel, la première fois que nous voyons comment notre application se comporte dans un environnement de production avec une charge réaliste et des données de production est souvent lors du déploiement. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les éléments qui sont considérés comme des avantages d'une infrastructure immuable ("Immutable infrastructure"). [x] Élimine les incohérences au niveau de la configuration. [x] Facilite la récupération rapide. [x] Permet de tirer avantage des capacités du cloud. [_] Permet à l'infrastructure de mieux répondre aux besoins des applications qui s'exécutent sur un serveur spécifique. [_] Permet la mise-à-jour individuelle des serveurs. Parmi la liste suivante, identifiez les éléments qui devraient faire partie de la notion de "développement terminé". [x] Code testé dans des environnements de type production. [_] Code validé par une groupe d'utilisateurs. [x] Code intégré et prêt à être déployé. [_] Code rendu disponible aux utilisateurs. [x] Code complété et fonctionnel. Dans un processus DevOps, nous utilisons idéalement les mêmes outils, tels que la surveillance, la journalisation et le déploiement, dans nos environnements de pré-production et en production. (x) Vrai (_) Faux Afin de créer un flux rapide et fiable de Dev à Ops, nous devons veiller à toujours utiliser des environnements de type production à toutes les étapes de la chaîne de valeur. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les éléments qui constituent des avantages liés à la création d'environnements sur demande. [x] Permet l'utilisation d'environnements de type production à toutes les étapes du flux de valeur. [_] Permet de garantir une livraison (aux utilisateurs) sans risque. [x] Permet la création automatisée des environnements à partir de scripts et d'informations de configuration stockés dans le contrôle de version. [x] Permet aux développeurs d'exécuter leur code sur des environnements de type production sur leur propre poste de travail. [_] Permet aux développeurs de tester/valider tous les aspects d'un logiciel sur leur propre poste de travail. Pour garantir la cohérence de nos environnements, chaque fois que nous apportons des modifications à la production (modifications de configuration, correctifs, mises à niveau, etc.), ces modifications doivent être répliquées partout dans nos environnements de production et de pré-production, ainsi que dans les environnements nouvellement créés. (x) Vrai (_) Faux Le but des systèmes de gestion de versions (version control) est de créer une source unique de vérité ("single source of thruth") pour l'ensemble du système. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les éléments qui font partie des fonctionalités fournies par les systèmes de gestion de versions. [_] Compilation du code. [_] Execution de tests automatisés. [x] Restauration de versions antérieures. [x] Enregistrement des modifications apportées au code. [x] Comparaison et fusion du code. L’intégration continue des applications dans des environnements de type production est l'une des principales causes des versions logicielles chaotiques, perturbantes et parfois catastrophiques. (_) Vrai (x) Faux Le travail de développement doit être considéré comme "terminé" que lorsque le code pourra être construit et déployé, et qu’il fonctionne comme prévu dans un environnement de production. (x) Vrai (_) Faux Même si on permet aux développeurs d'écrire, tester et exécuter leur code dans un environnement de production, la majeure partie du travail d'intégration (du code dans les environnements cibles) doit être effectué à la fin processus, avant la publication (release). (_) Vrai (x) Faux Parmi la liste suivante, identifiez les éléments qui sont considérés comme des avantages d'une infrastructure mutable ("mutable infrastructure"). [x] Permet à l'infrastructure de mieux répondre aux besoins des applications qui s'exécutent sur un serveur spécifique. [_] Permet de tirer avantage des capacités du cloud. [_] Facilite la récupération rapide. [x] Permet la mise-à-jour individuelle des serveurs. [_] Élimine les incohérences au niveau de la configuration. ## Quiz 7 Parmi la liste suivante, identifiez les affirmations qui sont vraies pour le modèle de publication basée sur l'environnement. [x] Le nouveau code est déployé dans un environnement non actif et la publication effectue le transfert du trafic vers cet environnement. [x] Le nouveau code est déployé dans un environnement non actif et la publication effectue le transfert du trafic vers cet environnement. [_] Requiert de modifier notre application afin de pouvoir sélectionner et exposer de manière sélective des fonctionnalités spécifiques de l'application en modifiant légèrement la configuration. [x] Ce sont des modèles extrêmement puissants, car ils nécessitent généralement peu ou pas de modification de nos applications. [_] Permet d'utiliser une technique appelée «lancement sombre», dans laquelle toutes les fonctionnalités doivent être lancées en production et testées avec le trafic de production avant notre publication. Un déploiement peut ou non être associé à la publication (release) d'une fonctionnalité (release) pour les clients. (x) Vrai (_) Faux Afin de maintenir notre pipeline de déploiement dans un état "vert", nous devons créer un cordon Andon virtuel, similaire à celui physique du système de production Toyota. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les patrons ("patterns") de publication basés sur les applications. [_] Système "Cluster Immune" [_] Déploiement bleu-vert ("blue-green deployment"). [x] Lancements sombres ("dark launches"). [x] Bascule de fonctionnalités. [_] Publication canarie ("Canary release"). Parmi la liste suivante, identifiez les étapes du processus de déploiement qui peuvent être automatisées. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Génération des fichiers de configuration à partir de modèles (templates) [x] Création d'images ou de conteneurs de machine virtuelle préconfigurés. [x] Configuration du middleware. [x] Redémarrage de serveurs, d'applications ou de services [x] Packaging du code. Parmi la liste suivante, identifiez les raisons pour lesquelles nous devons créer des processus automatisés de construction ("build") et de test qui peuvent être exécutés dans des environnements dédiés. [x] Permet de packager nos applications dans des conteneurs déployables (par exemple, Docker, Rkt, LXD, AMI). [x] Permet de garantir que nous comprenons toutes les dépendances requises pour générer, packager, exécuter et tester notre code. [x] Permet d'utiliser des systèmes de packaging spécifiques à une infrastructure, tels que les fichiers EAR et WAR pour Java, gems pour Ruby, etc. [x] Permet de garantir que notre processus de construction et de test peut fonctionner à tout moment. [x] Permet de créer un package pour notre application afin de permettre l'installation de code et de configurations dans divers environnements. À mesure que la taille des lots de déploiement augmente, le risque de résultats inattendus associés au changement, ainsi que la difficulté à les corriger diminuent. (ATTENTION: QUESTION TRÈS SIMILAIRE À UNE AUTRE) (_) Vrai (x) Faux Parmi la liste suivante, identifiez les élément qui sont associés à une stratégie de branchement optimisée pour la productivité individuelle. [_] Tout le monde travaille dans le même espace commun. [x] Chacun travaille de manière indépendante et personne ne peut perturber le travail de quelqu'un d'autre. [x] Chaque personne participant au projet travaille dans sa propre branche privée. [_] Chaque commit peut créer des problèmes dans l'ensemble du projet et interrompre tout progrès. [x] Le travail de chaque personne doit être minutieusement fusionné avec le travail de tous les autres, même la plus petite partie du système. L’effort requis pour réussir la fusion des branches diminu de manière exponentielle à mesure que le nombre de branches augmente. (_) Vrai (x) Faux Parmi la liste suivante, identifiez les opérations qui peuvent être effectuées en utilisant une bascule de fonctionnalités. [_] Permettre aux utilisateurs de customiser une fonctionnalité. [x] Contrôler les fonctionnalités visibles et disponibles pour des segments d'utilisateurs spécifiques. [x] Désactiver de manière sélective des fonctionnalités. [x] Déployer notre fonctionnalité en production mais la cacher derrière une bascule de fonctionnalités. [x] Activer de manière sélective des fonctionnalités. Parmi la liste suivante, identifiez les élément qui sont associés à une stratégie de branchement optimisée pour la productivité des équipes. [_] Le travail de chaque personne doit être minutieusement fusionné avec le travail de tous les autres, même la plus petite partie du système. [x] Tout le monde travaille dans le même espace commun. [_] Chaque personne participant au projet travaille dans sa propre branche privée. [_] Chacun travaille de manière indépendante et personne ne peut perturber le travail de quelqu'un d’autre. [x] Chaque commit peut créer des problèmes dans l’ensemble du projet et interrompre tout progrès. Le déploiement est associée à la publication (release) d'une fonctionnalité pour les clients. (_) Vrai (x) Faux À mesure que la taille des lots de déploiement augmente, le risque de résultats inattendus associés au changement, ainsi que la difficulté à les corriger augmentent aussi. (ATTENTION: QUESTION TRÈS SIMILAIRE À UNE AUTRE) (x) Vrai (_) Faux Parmi la liste suivante, identifiez les éléments qui sont considérés comme des avantages associés à un pipeline de déploiement. [_] Permet d'avoir un retour rapides des utilisateurs sur la valeur fournie par une nouvelle fonctionnalité. [_] Permet d'adapter rapidement les nouvelles fonctionnalités aux besoins des utilisateurs. [_] Permet de valider l'ensemble des exigences ("requirements") du système. [x] Permet de détecter les erreurs de construction, de test ou d'intégration dès l'introduction d'un changement, ce qui nous permet de les corriger immédiatement. [x] Garantit que tout le code archivé dans le contrôle de versions est automatiquement construit ("build") et testé dans un environnement de production. Sans tests automatisés, plus nous écrivons de code, plus nous avons besoin de temps et d'argent pour tester notre code. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les affirmations qui sont vraies pour le modèle de publication basée sur les applications. [_] Le nouveau code est déployé dans un environnement non actif et la publication effectue le transfert du trafic vers cet environnement. [x] Permet d'utiliser une technique appelée «lancement sombre», dans laquelle toutes les fonctionnalités doivent être lancées en production et testées avec le trafic de production avant notre publication. [_] Consiste à déployer dans plusieurs environnements, mais un seul environnement reçoit un trafic client actif. [_] Ce sont des modèles extrêmement puissants, car ils nécessitent généralement peu ou pas de modification de nos applications. [x] Requiert de modifier notre application afin de pouvoir sélectionner et exposer de manière sélective des fonctionnalités spécifiques de l’application en modifiant légèrement la configuration. Parmi la liste suivante, identifiez les patrons ("patterns") de publication basés sur l'environnement. [x] Système "Cluster Immune" [x] Publication canarie ("Canary release"). [_] Lancements sombres ("dark launches"). [_] Bascule de fonctionnalités. [x] Déploiement bleu-vert ("blue-green deployment"). Le pipeline de déploiement permet de valider que chaque modification a été intégrée avec succès dans un environnement de production. (x) Vrai (_) Faux Selon Gary Gruver (directeur de l’ingénierie de la division HP LaserJet Firmware), l'intégration continue est le premier moyen qui doit être mis en place pour améliorer le processus de développement. (_) Vrai (x) Faux Parmi la liste suivante, identifiez les étapes du processus de déploiement qui peuvent être automatisées. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Redémarrage de serveurs, d'applications ou de services [_] Résolution des conflits d'intégration de code [x] Configuration du middleware. [_] Revue de code [x] Création d'images ou de conteneurs de machine virtuelle préconfigurés. Selon Gary Gruver (directeur de l’ingénierie de la division HP LaserJet Firmware), sans les tests automatisés, l'intégration continue est le moyen le plus rapide d'obtenir un gros tas de déchets qui ne sont jamais compilés ou qui ne fonctionnent pas correctement. production. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les éléments qui font partis du pipeline de déploiement. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Livraison aux utilisateurs. [x] Analyse statique de code. [x] Analyse de la duplication et de la couverture de test. [x] Exécution de tests unitaires automatisés. [x] Revue du code. La publication (release) correspond au moment où nous mettons une fonctionnalité (ou un ensemble de fonctionnalités) à la disposition de tous nos clients ou d'un segment de clients. (x) Vrai (_) Faux En reportant les déploiements en production, nous diminuons les risques d'avoir un déploiement problématique. (_) Vrai (x) Faux ## Quiz 8 Parmi les énoncés suivants, identifiez ceux qui s'appliquent au "Strangler Application Pattern". (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Toute nouvelle fonctionnalité doit être implémentée dans un nouveau service basé sur la nouvelle architecture souhaitée, en appelant l'ancien système si nécessaire. [x] Utile pour la migration de parties d'une application monolithique ou services fortement couplés vers une application plus faiblement couplée. [_] La période de co-existence de la nouvelle et de l'ancienne architecture doit être la plus courte possible. [_] Le "Strangler Application Pattern" a pour objectif le re-développement des fonctionnalités existantes dans une nouvelle architecture ou en utilisant de nouvelles technologies. [x] Consiste à placer la fonctionnalité existante derrière un API, plutôt que de la détruire et la redévelopper. Parmi les énoncés suivants, identifiez ceux qui s'appliquent au "Strangler Application Pattern". (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Consiste à placer la fonctionnalité existante derrière une API, où elle reste inchangée. [_] La période de co-existence de la nouvelle et de l'ancienne architecture doit être la plus courte possible. [x] Lorsque nous implémentons le "Strangler Application Pattern", nous cherchons à accéder à tous les services via des API. [x] Consiste à implémenter toute nouvelle fonctionnalité en utilisant la nouvelle architecture souhaitée, et en appelant l'ancien système si nécessaire. [x] Peut être utilisé pour faire évoluer en toute sécurité une architecture d'entreprise. Pour que nous puissions voir tous les problèmes au fur et à mesure qu'ils surviennent, nous devons concevoir et développer nos applications et nos environnements de manière à ce qu'ils génèrent une télémétrie suffisante, ce qui nous permet de comprendre le comportement de notre système dans son ensemble. (x) Vrai (_) Faux Une utilisation courante des écarts-types consiste à inspecter périodiquement l'ensemble de données pour une métrique et générer une alerte la métrique de manière significative par rapport à la moyenne. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les énoncés qui sont associés à une architecture étroitement couplée. [x] Chaque fois que nous essayons de valider ("commit") du code dans le tronc ou de le publier en production, nous risquons de créer des échecs globaux. [_] Favorise la productivité et la sécurité. [_] Facilite les tests des services et la création de contrats et de Service Level Agreement (SLA) entre les équipes. [_] Permet aux petites équipes (2PT) de travailler sur des unités de développement plus petites et plus simples que chaque équipe peut déployer de manière indépendante, rapide et en toute sécurité. [x] Chaque petit changement nécessite des quantités énormes de communication et de coordination (sur des jours ou des semaines), ainsi que les approbations de tout groupe susceptible d'être affecté. Dans l'architecture de surveillance ("Monitoring Architecture") décrite par James Turnbull, la responsabilité du Routeur d'événements est le stockage des événements et des métriques. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les niveaux pour lesquelles nous avons besoin de métriques pour nous permettre de mieux anticiper les problèmes et prendre de meilleures décisions afin d'atteindre les objectifs de l'organisation. [x] Niveau commercial. [x] Niveau d'application. [x] Niveau d'infrastructure. [x] Niveau de logiciel client. [x] Niveau du pipeline de déploiement. Parmi la liste suivante, identifiez les énoncés qui sont considérés comme des avantages des monolithes. [x] Efficace en termes de ressources à petite échelle. [_] Permet l'exécution de tests et les déploiement indépendants [x] Faibles latences inter-processus. [x] Base de code unique, une unité de déploiement. [_] Permet d'optimiser la performance. En transformant les évènements de journaux en métriques, nous pouvons désormais y effectuer des opérations statistiques, telles que la détection des anomalies, afin de détecter les valeurs aberrantes et les écarts même plus tôt dans le cycle du problème. (x) Vrai (_) Faux L’utilisation d'API nous permet de modifier un service sans impacter les appelants, ce qui permet au système d'être couplé de manière plus souple. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les exemples de télémétrie reliée à la santé des applications. [_] Nombre de nouveaux utilisateurs. [x] Nombre de transactions. [_] Fréquence d'utilisation de certaines fonctionnalités. [_] Pourcentage d'utilisateurs actifs. [x] Utilisation de la mémoire. Une des conclusions du rapport "2015 State of DevOps Report" était que les entreprises les plus performantes ("high performers") étaient celles qui avaient réussi à mettre en place une architecture qui était demeurée stable durant les dix premières années de l'entreprise. (_) Vrai (x) Faux Dans l'architecture de surveillance ("Monitoring Architecture") décrite par James Turnbull, la responsabilité du Routeur d'événements est la collecte des données au niveau des couches logique, application et environnement. (_) Vrai (x) Faux Le but principal des infrastructures de télémétrie centralisée est de se concentrer sur la collecte de données au niveau de la couche d’application (_) Vrai (x) Faux Parmi la liste suivante, identifiez les énoncés qui sont associés à une architecture faiblement couplée. [_] Chaque fois que nous essayons de valider ("commit") du code dans le tronc ou de le publier en production, nous risquons de créer des échecs globaux. [x] Facilite les tests des services et la création de contrats et de Service Level Agreement (SLA) entre les équipes. [x] Favorise la productivité et la sécurité. [_] Chaque petit changement nécessite des quantités énormes de communication et de coordination (sur des jours ou des semaines), ainsi que les approbations de tout groupe susceptible d'être affecté. [x] Permet aux petites équipes (2PT) de travailler sur des unités de développement plus petites et plus simples que chaque équipe peut déployer de manière indépendante, rapide et en toute sécurité. Au niveau des applications, notre objectif est de nous assurer que nous générons la télémétrie non seulement autour de la santé des applications, mais également dans quelle mesure nous atteignons nos objectifs organisationnels. (x) Vrai (_) Faux L'une des techniques statistiques les plus simples que nous puissions utiliser pour analyser une métrique de production consiste à calculer sa moyenne et ses écarts-types. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les énoncés qui sont considérés comme des avantages des architectures basées sur les microservices. [x] Permet l'exécution de tests et les déploiement indépendants. [x] Permet d'optimiser la performance. [_] Faibles latences inter-processus. [x] Permet le développement d'une architecture modulaire. [_] Base de code unique, une unité de déploiement. Parmi la liste suivante, identifiez les exemples de télémétrie reliée aux objectifs organisationnels. [x] Fréquence d'utilisation de certaines fonctionnalités. [_] Nombre de transactions. [x] Pourcentage d'utilisateurs actifs. [x] Nombre de nouveaux utilisateurs. [_] Utilisation de la mémoire. L'utilisation de moyennes et d'écarts-types pour détecter la variance est extrêmement utile lorsque les données ont une distribution Gaussienne, mais aussi dans les cas où les données n’ont pas une distribution Gaussienne. (_) Vrai (x) Faux Lorsque nous implémentons le "Strangler Application Pattern", nous cherchons à accéder à tous les services via des API. (x) Vrai (_) Faux La télémétrie devrait être utilisé de manière uniforme (i.e. de la même manière) par tous les membres de notre chaîne de valeur. (_) Vrai (x) Faux Parmi la liste suivante d'énoncés portant sur la télémétrie, identifiez ceux qui sont vrais. [x] Chaque membre de notre chaîne de valeur utilisera la télémétrie de différentes manières. [x] La télémétrie nous permet d’utiliser la méthode scientifique pour formuler des hypothèses sur la cause d’un problème et ce qui est nécessaire pour le résoudre. [x] Idéalement, nous allons créer une télémétrie qui nous indique exactement quand quelque chose d’intérêt se produit, ainsi que où et comment. [x] Notre télémétrie devrait également convenir aux analyses manuelles et automatisées et devrait pouvoir être analysée sans disposer de l'application qui a produit les journaux. [x] En rendant la télémétrie rapide, facile à obtenir et suffisamment centralisée, tous les acteurs de la chaîne de valeur peuvent partager une vision commune de la réalité. ## Quiz 9 Les contrôles de changement traditionnels permettent de réduire les délais d'exécution, et d'accroître la force et de l'immédiateté du retour d'informations généré par le processus de déploiement. (_) Vrai (x) Faux Les tests A/B rapides et itératifs sont rendus possibles par la possibilité d'effectuer rapidement et facilement des déploiements de production à la demande. (x) Vrai (_) Faux Les observations de clients (en utilisant par exemple la méthode de recherche contextuelle ("contextual inquiry")) aboutissent presque toujours à un apprentissage important et à un vif désir d'améliorer la situation pour le client. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les énoncés qui sont associés à la recherche contextuelle ("contextual inquiry"). [x] L'une des techniques les plus puissantes en matière de conception d'interaction et d'expérience utilisateur (UX). [x] Permet de découvrir et comprendre des difficultés rencontrées par les utilisateurs lors de l’utilisation de l'application. [x] Permet à l'équipe produit d’observer l’utilisation de l'application par les utilisateurs dans leur dans environnement naturel, i.e. travaillant à leur poste de travail. [_] A comme objectif principal de permettre l'adaptation d'une application pour des contextes spécifiques d'utilisation. [_] Permet d'identifier et d'éliminer les problèmes d'utilisabilité dès la phase initiale de conception d'une nouvelle application. Même lorsque les développeurs écrivent et exécutent leur code dans des environnements de production au quotidien, les opérations peuvent toujours connaître des "releases" (en production) désastreuses, car c’est la première fois que nous voyons comment notre code se comporte lors d’un publication et dans de véritables conditions de production. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les énoncés qui sont associés aux test A/B. [_] Permet d'améliorer la robustesse et la disponibilité des applications. [x] Technique utilisée dans le cadre de campagnes de collecte de fonds, de marketing Internet et de la méthodologie Lean Startup. [x] Peut permettre d’établir une valeur monétaire à des améliorations de fonctionnalité ou de performance. [x] Technique mise au point dans le marketing par réponse directe ("direct response marketing"). [x] Dans la pratique de l'UX moderne, cette technique implique l'utilisation d'un site Web où les visiteurs sont sélectionnés de manière aléatoire pour recevoir l'une des deux versions d'une page, soit un contrôle (le «A»), soit un traitement (le «B»). Parmi la liste suivante, identifiez les énoncés qui sont associés au concept de "Pull Request" de GitHub. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Mécanisme qui permet aux parties intéressées de discuter des modifications. [_] Mécanisme qui permet d'automatiser le processus de revue. [_] Mécanisme qui permet d'automatiser les tests d'acceptation ("user acceptance test"). [x] Mécanisme qui permet aux parties intéressées d'examiner l'ensemble des modifications. [x] Mécanisme qui permet aux ingénieurs de faire part aux autres des modifications qu'ils ont placées dans un référentiel sur GitHub. Parmi la liste suivante, identifiez les énoncés qui sont associés à la programmation en binôme ("Pair programming"). [_] A pour objectif d'améliorer l'utilisabilité d'un produit. [x] Peut permettre de renforcer le développement piloté par les tests (TDD) en demandant à un ingénieur d’écrire le test automatisé et à l’autre ingénieur d’appliquer le code. [x] A été introduit premièrement au niveau Développement mais s'applique également au travail effectué par n'importe quel ingénieur dans notre chaîne de valeur [x] Consiste à jumeler deux ingénieurs qui travaillent ensemble sur le même poste de travail. [x] Méthode popularisée par Extreme Programming (XP) et Agile au début des années 2000 Des techniques telles que le développement fondé sur des hypothèses, la définition et la mesure de l'entonnoir d'acquisition de clients et les tests A/B nous permettent d'effectuer des expériences utilisateur en toute sécurité et facilement, nous permettant de libérer la créativité et l'innovation et de créer un apprentissage organisationnel. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les éléments qui peuvent être compris dans les instructions et exigences de lancement ("launch requirements"). (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [_] Nombre d'utilisateurs. [x] Nombre de défauts et sévérité. [x] Processus de déploiement. [x] Architecture système. [x] Type/fréquence des alertes de pagette. Parmi la liste suivante, identifiez les énoncés qui sont associés au concept de "Pull Request" de GitHub. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [_] Mécanisme qui permet d'automatiser les tests d'acceptation ("user acceptance test"). [x] Mécanisme qui permet aux parties intéressées de discuter des modifications. [_] Mécanisme qui permet d'automatiser le processus de revue. [x] Mécanisme qui permet aux ingénieurs de faire part aux autres des modifications qu'ils ont placées dans un référentiel sur GitHub. [_] Mécanisme qui permet d'automatiser l'analyse statique du code. La réaction la plus courante chez les développeurs après avoir participé à une observation client est la consternation, affirmant souvent à quel point «il était affreux de voir les nombreuses façons dont nous infligions des souffrances à nos clients». (x) Vrai (_) Faux Les déploiements en production sont l'une des principales causes des problèmes de production. (x) Vrai (_) Faux Les contrôles de changement traditionnels peuvent conduire à des résultats inattendus, tels que de longs délais d'exécution, et la réduction de la force et de l'immédiateté du retour d'informations généré par le processus de déploiement. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les éléments qui peuvent être compris dans les instructions et exigences de lancement ("launch requirements"). (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [_] Nombre d'utilisateurs. [_] Revenu associé au produit. [x] Type/fréquence des alertes de pagette. [x] Nombre de défauts et sévérité. [x] Processus de déploiement. Pour éviter la possibilité que des services problématiques et autogérés entrent en production et créent un risque organisationnel, nous pouvons définir des exigences de lancement ("launch requirements") qui doivent être satisfaites avant que les services puissent interagir avec de vrais clients et soient exposés à un vrai trafic de production. (x) Vrai (_) Faux En permettant aux développeurs de développer et exécuter leur code dans des environnements de production au quotidien, on élimine la possibilité de connaître des "releases" (en production) désastreuses. (_) Vrai (x) Faux L'une des croyances fondamentales du système de production Toyota est que «les gestionnaires sont ceux qui en savent généralement le plus sur la cause des problèmes et sur les solutions pour les résoudre». (_) Vrai (x) Faux Une fois que nous disposons de l'infrastructure nécessaire pour prendre en charge les versions et les tests A/B, nous devons nous assurer que les propriétaires de produit considèrent chaque fonctionnalité comme une hypothèse et utilisent nos versions de production comme des expériences avec de vrais utilisateurs pour prouver ou réfuter cette hypothèse. (x) Vrai (_) Faux L'une des croyances fondamentales du système de production Toyota est que «les personnes les plus proches d'un problème sont celles qui en savent généralement le plus». (x) Vrai (_) Faux La réaction la plus courante chez les développeurs après avoir participé à une observation client est la satisfaction du devoir accompli, affirmant souvent à quel point «il fait bon de voir les gains de productivité que procure notre application à nos clients dans un contexte réel». (_) Vrai (x) Faux # Quiz 10 Parmi le liste suivante, identifiez les artefacts que nous devrions mettre dans un référentiel de code source partagé. [x] Outils de surveillance et d'analyse. [x] Normes de configuration pour nos bibliothèques, infrastructures et environnements (recettes Chef, manifestes de puppet, etc.). [x] Normes et outils de test. [x] Outils de pipeline de déploiement. [x] Outils de déploiement. Pour Jesse Newland (ingénieur système chez GitHub), le résultat le plus important de l'utilisation de Hubot, l'application logicielle développée par GitHub pour interagir avec l'équipe des opérations dans leurs salles de discussion, est l'intégration plus rapide d'ingénieurs débutants. (_) Vrai (x) Faux L'une des conditions préalables à une culture d'apprentissage est que, lorsqu'un accident survient (ce qui va certainement arriver), la réaction à cet accident est considérée comme "juste". (x) Vrai (_) Faux Parmi la liste suivante, identifiez les pratiques efficaces qui contribuent à créer une culture juste basée sur l'apprentissage. [x] L'introduction contrôlée d'échecs. [_] L'utilisation de tests automatisés. [_] L'utilisation de revue par les paires. [_] L'utilisation de Pull-Request. [x] L'utilisation de post-mortem sans-reproche. Parmi la liste suivante, identifiez les éléments qui doivent faire partis d'une réunion post-mortem sans reproche. [x] Construire une chronologie des événements qui ont menés aux échecs. [x] Proposer des contre-mesures pour empêcher qu'un accident similaire ne se reproduise et assurer que ces contre-mesures sont enregistrées avec une date cible et un propriétaire pour suivi. [x] Rassembler les détails de plusieurs points de vue sur les échecs, en veillant à ne pas punir les gens qui font des erreurs. [x] Permettre à tous les ingénieurs d'améliorer la sécurité en leur permettant de rendre compte en détail de leurs contributions aux défaillances. [x] Permettre et encourager les auteurs d'erreurs à devenir des experts qui éduquent le reste de l'organisation sur la façon de ne pas les commettre à l'avenir. Nous pouvons aider davantage à enseigner des compétences dans notre travail quotidien en effectuant conjointement des révisions de code qui incluent les deux parties (Développement et Opérations) afin que nous apprenions par la pratique, ainsi qu'en faisant en sorte que Développement et Opérations travaillent ensemble pour résoudre les petits problèmes. (x) Vrai (_) Faux Parmi le liste suivante, identifiez les éléments qui constituent des avantages de l'automatisation de certaines opérations dans les salles de discussion. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Permet aux ingénieurs, lors de leur premier jour de travail, de voir à quoi ressemble le travail quotidien et comment il est exécuté. [_] Permet de réduire la taille des lots de travail. [x] Le fait de voir les autres s'entraider, incite les gens à demander de l'aide. [x] Permet à tout le monde de voir ce qui se passe. [x] Permet d'activer et d'accumuler un apprentissage organisationnel rapide. Parmi le liste suivante, identifiez les actions qui peuvent être effectuées par Hubot, l'application logicielle développée par GitHub pour interagir avec l'équipe des opérations dans leurs salles de discussion. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Retour en mode maître pour les services frontaux de production. [x] Extraction des journaux de test de fumée. [x] Mise en production de déploiements de code. [x] Désactivation des alertes. [x] Vérification de l'état des services. En 2015, Google a restructuré ses infrastructures de développement logiciel pour créer un référentiel de code source distinct pour chacun des ses produits principaux, y compris les Google Search, Google Maps, Google Docs, Google+, Google Calendar, Gmail et YouTube. (_) Vrai (x) Faux Parmi la liste suivante, identifiez les éléments qui font partis des objectifs des blitz dʼamélioration. [x] Améliorer notre travail quotidien. [_] Faciliter l'intégration de nouveaux employés. [_] Adapter rapidement les nouvelles fonctionnalités aux besoins des utilisateurs. [_] Observer l'utilisation des applications par les utilisateurs dans leur environnement naturel. [x] Expérimenter et innover pour tester de nouvelles technologies. Parmi la liste suivante, identifiez les parties prenantes qui doivent être présentes lors d'une réunion post-mortem. [x] Les personnes qui ont répondu au problème. [x] Les personnes qui ont identifié le problème. [x] Les personnes qui ont diagnostiqué le problème. [x] Les personnes impliquées dans les décisions qui ont pu contribuer au problème. [x] Les personnes touchées par le problème. Parmi le liste suivante, identifiez les éléments qui constituent des avantages de l'automatisation de certaines opérations dans les salles de discussion. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Permet d'enregistrer et rendre publiques toutes les communications. [x] Permet aux ingénieurs, lors de leur premier jour de travail, de voir à quoi ressemble le travail quotidien et comment il est exécuté. [x] Permet d'activer et d'accumuler un apprentissage organisationnel rapide. [x] Le fait de voir les autres s'entraider, incite les gens à demander de l'aide. [x] Permet à tout le monde de voir ce qui se passe. Les organisations qui apprennent considèrent les échecs, les accidents et les erreurs comme une opportunité d'apprentissage et non comme une punition. (x) Vrai (_) Faux Parmi la liste suivant, identifiez les informations que l'outil "Morgue" de Etsy permet d'enregistrer facilement. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Les journaux de discussion IRC pertinents. [x] Si le problème était dû à un incident programmé ou non programmé. [x] Le propriétaire du post mortem. [x] Les liens vers les messages des forums clients. [x] Les tickets JIRA pertinents pour les actions correctives et leurs dates d'échéance. Parmi la liste suivante, identifiez les éléments qui font partis des objectifs des blitz d’amélioration. [x] Expérimenter et innover pour tester de nouvelles technologies. [_] Adapter rapidement les nouvelles fonctionnalités aux besoins des utilisateurs. [_] Faciliter l'intégration de nouveaux employés. [x] Améliorer notre travail quotidien. [_] Observer l’utilisation des applications par les utilisateurs dans leur environnement naturel. En 2015, Google disposait d'un seul référentiel de code source partagé contenant plus d'un milliard de fichiers et plus de deux milliards de lignes de code. Ce référentielle est utilisé par chacun des 25 000 ingénieurs et couvre toutes les propriétés de Google, y compris les recherches Google, Google Maps, Google Documents, Google+, Google Agenda, Gmail et YouTube. (x) Vrai (_) Faux Parmi le liste suivante, identifiez les actions qui peuvent être effectuées par Hubot, l'application logicielle développée par GitHub pour interagir avec l'équipe des opérations dans leurs salles de discussion. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [_] Revue du code. [x] Mise en production de déploiements de code. [x] Vérification de lʼétat des services. [_] Déclenchement du pipeline d'intégration. [x] Désactivation des alertes. Pour Jesse Newland (ingénieur système chez GitHub), le résultat le plus important de l'utilisation de Hubot, l'application logicielle développée par GitHub pour interagir avec l'équipe des opérations dans leurs salles de discussion, est que le travail d'Ops est devenu plus humain. (x) Vrai (_) Faux Lʼune des conditions préalables à une culture dʼapprentissage est que, lorsquʼun accident survient (ce qui va certainement arriver), on identifie la personne responsable de l'accident et on prend les mesures nécessaires pour empêcher la personne de reproduire ce type d'accident. (_) Vrai (x) Faux Parmi la liste suivant, identifiez les informations que l'outil "Morgue" de Etsy permet d'enregistrer facilement. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Les journaux de discussion IRC pertinents. [x] Les tickets JIRA pertinents pour les actions correctives et leurs dates d'échéance. [_] La personne qui a commis l'erreur qui a conduit au problème. [x] Le propriétaire du post mortem. [x] Les liens vers les messages des forums clients. Une culture d'apprentissage dynamique crée des conditions permettant à chacun non seulement d'apprendre, mais aussi d'enseigner. (x) Vrai (_) Faux Pour Jesse Newland (ingénieur système chez GitHub), le résultat le plus important de l'utilisation de Hubot, l'application logicielle développée par GitHub pour interagir avec l'équipe des opérations dans leurs salles de discussion, est l'amélioration de la productivité de tous les ingénieurs. (_) Vrai (x) Faux Pour aider à construire une organisation apprenante, nous devrions encourager nos ingénieurs (de Dev et Ops) à assister à des conférences, présenter à des conférences et, si nécessaire, à créer et organiser des conférences internes ou externes. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les contre-mesures qui peuvent être mises en place suite à une réunion post-mortem sans reproche pour éviter que des erreurs ne se reproduisent. [x] Ajout de nouveaux tests automatisés pour détecter les conditions dangereuses dans notre pipeline de déploiement. [x] Identification de catégories de modifications nécessitant une évaluation supplémentaire par les pairs. [x] Ajout de télémétrie de production. [x] Répétition de cette catégorie d’échec dans le cadre d’exercices réguliers. [_] Ajout de niveaux d'approbation supplémentaires. L’une des conditions préalables à une culture d’apprentissage est que, lorsqu’un accident survient (ce qui va certainement arriver), la réaction à cet accident est considérée comme "juste". (x) Vrai (_) Faux Parmi la liste suivante, identifiez les facteurs qui ont permis à Netflix de rester insensible à la panne massive d’AWS en avril 2011. [_] Le service de diffusion vidéo en ligne de Netflix s’exécutait sur une application J2EE monolithique hébergée dans l’un de leurs centres de données. [x] L’équipe Netflix a utilisé Chaos Monkey pour s’assurer qu’elle avait atteint ses objectifs de résilience opérationnelle, en injectant constamment des défaillances dans ses environnements de pré-production et de production. [_] Netflix étant l’un des plus gros clients d’Amazon Web Services, un traitement spécial leur a permis de continuer à fonctionner. [x] Le système de Netflix est basé sur une architecture faiblement couplé, dans laquelle chaque composant a des délais d'attente ("timeout") agressifs afin de garantir que les défaillances de composants ne fassent pas tomber tout le système. [x] Chaque fonctionnalité et chaque composant des services de Netflix ont été conçus pour se dégrader en douceur ("gracefully degrade"). ## Final (uniques) Parmi la liste suivante, identifiez les éléments qui font partis du pipeline de déploiement. (ATTENTION: CHOIX QUASI-SIMILAIRES À UNE AUTRE QUESTION) [x] Analyse statique de code. [x] Analyse de la duplication et de la couverture de test. [x] Exécution de tests unitaires automatisés. [x] Revue du code. [x] Exécution de tests d'intégration automatisés. En se basant sur les trois voies de DevOps ("the three ways of DevOps"), associez l'énoncé suivant à la voie correspondante. Permettre un flux de travail rapide de gauche à droite, du développement aux opérations, jusqu'au client. (x) First way: Flux (_) Third way: Apprentissage et expérimentation continus (_) Second way: rétroaction (_) Aucune En se basant sur les trois voies de DevOps ("the three ways of DevOps"), associez l'énoncé suivant à la voie correspondante. Permettre un flux de retour rapide et constant de droite à gauche à toutes les étapes de notre flux de valeur. (_) First way: Flux (_) Third way: Apprentissage et expérimentation continus (_) Aucune (x) Second way: rétroaction En se basant sur les trois voies de DevOps ("the three ways of DevOps"), associez l'énoncé suivant à la voie correspondante. En voyant les problèmes au fur et à mesure qu'ils surviennent et en les résolvant jusqu'à la mise en place de contre-mesures efficaces, nous raccourcissons et amplifions continuellement nos boucles de rétroaction. (_) First way : Flux (x) Second way : Rétroaction (_) Third way : Apprentissage et expérimentation continus (_) Aucune Le pipeline de déploiement permet de valider chaque changement qui est intégré avec succès dans un environnement de production. (x) Vrai (_) Faux Parmi la liste suivante, identifiez les énoncés qui sont associés au transfert de service ("handback"). [x] Permet de garantir que les opérations disposent de la capacité suffisante pour travailler sur des travaux d'amélioration et des projets préventifs. [_] Permet d'améliorer l'utilisabilité des services et des applications. [x] Mécanisme servant de soupape d'échappement de pression, garantissant que nous ne mettons jamais les Opérations dans une situation où elles sont prises au piège de la gestion d'un service fragile. [x] Mécanisme de transtert de service qui permet aux Operations de rendre la responsabilité du soutien (en production) d'une application ou d'un service à Développement. [_] Permet de simplifier le processus de publication d'un nouveau service (ou d'une nouvelle application).