DEVOPS - Module - 9 - Infrastructure Et Automatisation - LAB 7
DEVOPS - Module - 9 - Infrastructure Et Automatisation - LAB 7
Infrastructures
Module 9: Automatisation des
Infrastructures
Outils d'automatisation Expliquer les outils d'automatisation qui accélèrent le développement et le déploiement du
code.
L'infrastructure comme code Expliquer les bénéfices du stockage de l'infrastructure en tant que code.
Automatisation des tests Expliquer comment les outils d'automatisation permettent de tester les déploiements
d'applications.
Simulation de réseau Décrire l'utilisation de l'environnement de test de simulation d'un réseau Cisco VIRL.
7.4.8 de prototypage Utiliser Ansible pour automatiser l'installation d'un serveur Web Recommandation
Coûts financiers
• Les pannes et les violations sont le plus souvent causées lorsque les systèmes sont mal configurés.
Cela est souvent dû à une erreur humaine lors de modifications manuelles. Selon une statistique
souvent citée par Gartner (à partir de 2014), le coût moyen d'une panne informatique est supérieur
à 5 600 USD par minute, soit plus de 300 000 USD par heure. Le coût d'une atteinte à la sécurité
peut être encore plus élevé.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 8
Infrastructure et automatisation
Risques dans les environnements déployés et gérés
manuellement.
Risques de dépendance
• L'écosystème logiciel d'aujourd'hui est décentralisé. Les développeurs n'ont plus besoin de créer et
de gérer des solutions monolithiques et complètes. Au lieu de cela, ils se spécialisent en
construisant des composants individuels en fonction de leurs besoins et de leurs intérêts. Les
développeurs peuvent combiner les autres composants, l'infrastructure et les services nécessaires
pour mettre en place des solutions complètes et les exploiter efficacement à grande échelle.
Cet écosystème introduit de nouvelles exigences et de nouveaux risques:
• Les composants doivent être en mesure de travailler avec de nombreux autres composants dans de
nombreuses situations différentes.
• Les développeurs de composants peuvent abandonner la prise en charge des fonctionnalités
obsolètes et des intégrations rarement rencontrées. Cela perturbe les processus qui dépendent de
ces fonctionnalités.
• Les configurations d'applications dépendantes ont tendance à se verrouiller dans des piles de
déploiement fragiles et de plus en plus insécurisées.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 9
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation ?
L'automatisation de l'infrastructure peut offrir de nombreux avantages. Ceux-ci sont résumés comme la
vitesse et la capacité de travailler à grande échelle, avec un risque réduit.
L'automatisation est un composant clé de :
• Self-service
• Scale on demand
• Observability
• Automated problem mitigation
Les structures libre-service automatisées permettent aux utilisateurs de demander une infrastructure à la
demande, notamment:
Composants d'infrastructure standard tels que les instances de base de données et les terminaux VPN
Serveurs Web renforcés et autres instances d'application, ainsi que les réseaux isolés et l'accès Internet
sécurisé qui les rendent utiles, sécuritaires et résistants aux erreurs
Plateformes d'analyse telles que Apache Hadoop, Elastic Stack, InfluxData et Splunk
• Les applications et les plateformes doivent pouvoir évoluer vers le haut et vers le bas en fonction
des besoins de trafic et de charge de travail et utiliser une capacité hétérogène.
• Un exemple est la mise à l'échelle du cloud privé au cloud public et la mise en forme appropriée du
trafic.
• Les plates-formes cloud peuvent fournir la possibilité de mettre à l'échelle automatiquement (mise
à l'échelle automatique) des machines virtuelles, des conteneurs ou des charges de travail sur une
infrastructure sans serveur.
• Un système observable permet aux utilisateurs d'inférer l'état interne d'un système complexe à
partir de ses sorties.
• L'observabilité (abrégée en o11y) peut être obtenue grâce à la surveillance des plateformes et des
applications.
• L'observabilité peut également être obtenue grâce à des tests proactifs de production pour les
modes de défaillance et les problèmes de performance. Mais, dans une opération dynamique qui
inclut la mise à l'échelle automatique et d'autres comportements d'application, la complexité
augmente et les entités deviennent éphémères.
• Un rapport récent du fournisseur de framework d'observabilité DataDog, indique que la durée de
vie moyenne d'un conteneur sous orchestration n'est que de 12 heures; les microservices et les
fonctions ne peuvent fonctionner que pendant quelques secondes. Les entités éphémères
observables et les tests en production ne sont possibles qu'avec l'automatisation.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 13
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation?
• Automated problem mitigation:
Certains fabricants de logiciels et experts en observabilité recommandent ce que l'on appelle Chaos Engineering. Cette
philosophie repose sur l'affirmation selon laquelle la défaillance est normale: au fur et à mesure que les applications
évoluent, certaines pièces échouent toujours. Pour cette raison, les applications et les plates-formes doivent être conçues
pour:
Minimiser les effets des problèmes : Reconnaître rapidement les problèmes et acheminer le trafic vers d'autres capacités,
en veillant à ce que les utilisateurs finaux ne soient pas gravement touchés et à ce que le personnel des opérations de
garde ne soit pas inutilement paginé.
l'auto-guérison : Allouez les ressources en fonction de la stratégie et redéployez automatiquement les composants
défectueux selon les besoins pour rétablir l'état sain de l'application dans les conditions actuelles.
Suivre les événements : Souvenez-vous de tout ce qui a mené à l'incident, afin que les corrections puissent être planifiées
et que des post-mortems puissent être effectués.
Certains défenseurs de Chaos Engineering préconisent même l'utilisation d'outils d'automatisation pour provoquer des
défaillances contrôlées (ou aléatoires) dans les systèmes de production. Cela met continuellement au défi Dev et Ops
d'anticiper les problèmes et de renforcer la résilience et la capacité d'auto-guérison. Les projets open source tels que Chaos
Monkey et les plateformes «Failure-as-a-Service» comme Gremlin sont spécialement conçus pour briser les choses, à la
fois au hasard et de manière beaucoup plus contrôlée et empirique. Une discipline © 2020émergente est
Cisco et/ou ses filiales. appelée
Tous droits "test d'injection
réservés. Informations
confidentielles de Cisco 14
d'échec"
Infrastructure et automatisation
Solutions d'automatisation
Il existe plusieurs cas d'utilisation pour l'automatisation du réseau. Selon le modèle opérationnel à suivre, il
existe des choix pour contrôler par programme les configurations et l'infrastructure réseau.
Run : Activer des politiques et Fly: Déployer des applications,
Walk: Automatisation en lecture
fournir un libre-service dans des configurations réseau et
seule
plusieurs domaines bien plus encore via CI/CD
• Grâce aux outils • Avec ces scénarios • Pour des automatismes plus
d'automatisation, vous pouvez d'automatisation de l'étape complexes et des exemples
collecter des informations sur Exécuter, les utilisateurs programmables, le stage Fly
la configuration du réseau. peuvent provisionner leurs de DevNet Automation
• On peut utiliser un scénario de propres mises à jour réseau en Exchange est utilisé.
lecture pour auditer les toute sécurité. • Ici, les besoins peuvent être
configurations et effectuer • Les workflows d'intégration gérés en surveillant et en
l'étape naturelle suivante, qui peuvent être automatisés, les gérant de manière proactive
consiste à remettre la configurations réseau les utilisateurs et les appareils,
configuration en conformité. quotidiennes peuvent être tout en obtenant des
• Dans Automation Exchange, gérées et les scénarios informations sur les données
ce changement est classé quotidiens peuvent être de télémétrie.
comme une progression de vol imprégnés.
à pied. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 15
Infrastructure et automatisation
un argument pour l'automatisation : Infrastructure définie par
logiciel
L'infrastructure définie par logiciel est également connue sous le nom de Cloud Computing. Il permet aux
développeurs et aux opérateurs d'utiliser le logiciel pour réquisitionner, configurer, déployer et gérer des
ressources de calcul, de stockage et des réseaux virtualisés.
calculer.
Infrastructure et automatisation
un argument pour l'automatisation : Applications distribuées et
dynamiques.
Les architectures d'application «monolithiques» mono-serveur, bien que conceptuellement simples, ne
répondent pas très bien à ces besoins. Un serveur est un point de défaillance unique, limite les
performances et la capacité et dispose d'une capacité de mise à niveau limitée. La duplication d'un seul
serveur peut augmenter la capacité des applications très simples, mais ne fonctionne pas pour les
applications nécessitant une cohérence des données sur toutes les instances. Et il ne protégera pas les
données utilisateur en cas de défaillance sur le serveur sur lequel résident leurs données.
Pour ces raisons et pour d'autres, les architectures d'applications modernes sont de plus en plus
distribuées. Ils sont construits à partir de composants petits et relativement légers que l'on appelle
parfois des microservices. Ces composants peuvent être isolés dans des conteneurs, connectés via
des services de découverte et de messagerie (dont la connectivité réseau abstraite) et soutenus par des
bases de données résilientes et évolutives (qui conservent l'état).
Bash
• Le Bash est un shell Unix par défaut sur la plupart des distributions Linux et sur macOS. L'utilisation de
commandes dans un script Bash est similaire à celle qu’on utilise directement à partir de la ligne de
commande.
• Bash peut être utilisé pour l'accès par script à l'interface de ligne de commande AWS, vous pouvez utiliser
les fonctionnalités intégrées et les bibliothèques de langages plus sophistiqués pour analyser des jeux de
données complexes retournés (tels que JSON), gérer de nombreuses opérations parallèles, traiter des
erreurs, gérer les réponses asynchrones aux commandes, etc.
Une telle automatisation procédurale peut être très puissante. Mais cela ne reste simple que si vous êtes au courant de la
façon dont les utilitaires système et d'autres interfaces fonctionnent. Vous devez connaître obligatoirement l'état du système
cible.
Si vous faites un petit script pour installer et configurer un logiciel sur un système cible distant, il peut fonctionner
correctement la première fois. Exécutez-le une deuxième fois cependant; et votre script simple pourrait faire un désordre. Il
peut lancer une erreur et s'arrêter quand il trouve l'application déjà installée, ou pire, ignorer une telle erreur, et continuer à
apporter des modifications redondantes dans les fichiers de configuration. Pour rendre ce script plus sûr, plus facile à
utiliser, plus flexible et réutilisable, vous devez le rendre plus intelligent et plus élaboré.
Déterminez si votre application cible est déjà installée dans une version appropriée et essayez de l'installer uniquement si
elle n'est pas présente.
Déterminez s'il a fait une copie de chaque fichier de configuration avant de le modifier, et utilisez des éditeurs pour apporter
des modifications précises. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 25
Scripts d'automatisation de base
Objectif Automatisation par procédures
Les procédures sont développées afin qu‘elles accomplissent certaines des tâches suivantes:
Découvrez, inventoriez et compilez des informations sur les systèmes cibles, et assurez-vous que les scripts le font
correctement.
Effectuez des sauvegardes et des modifications de fichiers de configuration, et redémarrez les services dans des
formulaires réutilisables, tels que des scripts secondaires contenant des paramètres, des bibliothèques de fonctions et
d'autres informations.
Pour vous assurer que les scripts sont efficaces et réutilisables, vous devez:
Créer une hiérarchie de code qui divise les tâches de manière logique et efficace.
Créer des scripts de haut niveau pour des déploiements entiers et des scripts de niveau inférieur pour les phases de
déploiement.
Séparer les données spécifiques au déploiement du code, ce qui rend le code aussi générique et réutilisable que possible.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 26
Scripts d'automatisation de base
Automatisation par procédures
Exemple de script procédural simple
Le type du 3 ieme script a tendance à être dangereux si l'état de démarrage n'est pas complètement connu et contrôlé.
L'application des mêmes modifications à un système correctement configuré peut même le casser.
le but des scripts d’automatisation est d'atteindre l'état souhaité dans un système, quelles que soient les conditions de
démarrage. Des scripts procéduraux et des outils de configuration déclarative soigneusement rédigés examinent les
cibles avant d'effectuer des tâches sur elles, en effectuant uniquement les tâches nécessaires pour l'obtention de
l'état souhaité.
Cette qualité des scripts est appelée idempotency. Les principes fondamentaux de idempotency:
Assurez-vous que le changement que vous souhaitez apporter n'a pas déjà été fait - Également connu sous le
nom de "Tout d'abord, ne faites pas de mal (First, do no harm)". Ne rien faire est presque toujours un meilleur choix
que de faire quelque chose de faux et peut-être irrécupérable.
Accéder à un état dont le fonctionnement a été vérifié avant d'apporter des modifications. Par exemple, vous
devrez peut-être supprimer et purger les versions antérieures des applications avant d'installer des versions
ultérieures. Dans les environnements de production infra-as-code, ce principe devient la base de l'immuabilité.
L'immuabilité est l'idée que les changements ne sont jamais faits sur les systèmes en direct. Au lieu de cela, modifiez
l'automatisation et utilisez-la pour créer des composants flambant neufs, dont le fonctionnement a été vérifié.
Test d'idempotency:
Tous les composants d'une procédure doivent être idempotent – seulement si tous les composants d'une
procédure sont idempotents que la procédure dans son ensemble peut l’être. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 28
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 29
Scripts d'automatisation de base
Automatisation du cloud
Les infrastructures de cloud computing IaaS (Infrastructure-as-a-Service) sont une cible typique de
l'automatisation. L'automatisation du cloud vous permet de provisionner des hôtes virtualisés, de configurer des
réseaux virtuels et d'autres services de connectivité, de réquisition, puis de déployer des applications sur cette
infrastructure.
Les fournisseurs de cloud et les communautés open source fournissent souvent des sous-systèmes spécialisés
pour les outils de déploiement populaires. Ces sous-systèmes extraient un inventaire complet des ressources
d'un framework cloud et le maintiennent à jour en temps réel pendant que l'automatisation apporte des
modifications, ce qui vous permet d'écrire plus facilement l'automatisation pour gérer ces ressources.
Vous pouvez également gérer les ressources cloud à l'aide de scripts écrits en Bash, Python ou dans d'autres
langues. De tels scripts sont aidés par de nombreux outils qui simplifient l'accès aux cibles d'automatisation.
Notamment:
Les CLI et les kits de développement logiciel (SDK) qui enveloppent des API REST et d'autres interfaces du
matériel, des entités d'infrastructure virtuelle, des plans de contrôle d'ordre supérieur et des API de cloud. Cela
rend leurs fonctionnalités accessibles depuis les shells (scripts Bash) et dans les programmes Python.
Les outils de ligne de commande et les analyseurs intégrés de Python peuvent analyser les sorties JSON et
YAML renvoyées par les CLI et les SDK dans des formats simples pour une manipulation facile.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 30
Scripts d'automatisation de base
Automatisation du cloud - Cloud CLI et SDK
Les IaaS et d'autres types de cloud d'infrastructure fournissent également des CLI et des SDK qui permettent
une connexion facile à leurs interfaces sous-jacentes, généralement basées sur REST. Nous présentons dans
cette sections les solutions de CiscoUCS – Vmware – OpenStack
Configuration vs Provisioning
Chef et Ansible sont basés sur un style Terraform, CloudFormation et Puppet sont tous basés
procédural ou impératif dans lequel sur un style plus déclaratif dans lequel on ne spécifie
vous écrivez du code qui spécifie un que l'état final souhaité, et l'outil lui-même est chargé de
déterminer comment atteindre cet état
processus complet étape par étape sur
Pour l'approche déclarative, le code représente toujours
la façon d'atteindre l'état final souhaité. le dernier état de votre infrastructure. Il explique les
ressources actuellement déployées et comment elles
sont configurées. Pas besoin de s'inquiéter de
l'historique de l’infrastructure.
Chef et Puppet nécessitent un serveur maître pour stocker l'état de notre infrastructure et distribuer les mises
à jour. Chaque fois que vous devez installer une mise à jour, un client est utilisé pour envoyer des
commandes au serveur maître, puis le serveur maître transmet les mises à jour à tous les autres serveurs. Le
serveur maître agit comme un endroit centralisé pour gérer l'infrastructure.
Ansible, CloudFormation et Terraform sont tous sans master par défaut. Bien que certains d'entre eux
puissent s'appuyer sur un serveur maître, il fait déjà partie de l'infrastructure .
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 43
Outils d'automatisation
Concepts de base
Agent vs Agentless
Chef et Puppet nécessitent que vous installiez un logiciel agent (par exemple, Chef Client, Puppet Agent) sur
chaque serveur que vous souhaitez configurer.
Ansible, CloudFormation et Terraform ne nécessitent pas l'installation d'agents supplémentaires.
L'agent s'exécute généralement en arrière-plan sur chaque serveur et est responsable de l'installation des
dernières mises à jour.
Maintenance : Gardez le logiciel de l'agent synchronisé avec le serveur maître et mis à jour.
Sécurité : l'agent doit être authentifié auprès du serveur maître, ce qui augmente les failles exploitées par les
attaquants.
Comme dans Terraform, vous émettez simplement des commandes et les agents du fournisseur de cloud les
exécutent pour vous sur tous vos serveurs. Avec Ansible, vos serveurs doivent exécuter le démon SSH, qui
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
est de toute façon courant sur la plupart des serveurs. confidentielles de Cisco 44
Outils d'automatisation
Concepts de base
Large Community vs Small Community
La communauté joue un rôle important lors de la sélection d'une technologie, car elle détermine le nombre de
personnes qui contribuent au projet, le nombre de plug-ins, d'intégrations et d'extensions disponibles, la
facilité avec laquelle il est possible de trouver de l'aide en ligne (par exemple, des articles de blog), et à quel
point il est facile d'engager quelqu'un pour vous aider (par exemple, un employé, un consultant ou une
société d'assistance).
• Exécutez des commandes shell sur un serveur distant, ou effectuez des transactions avec un routeur
distant, ou une autre entité réseau, via son interface REST.
• Injectez des scripts Python dans les cibles et supprimez-les après leur exécution.
• Installez Python sur les machines cibles si nécessaire.
• Les plugins permettent à Ansible de collecter des faits et d'effectuer des opérations sur une infrastructure qui
ne peut pas exécuter Python localement.
• Partie 4: Utiliser Ansible pour installer Apache sur des serveurs Web
• Partie 5: Ajouter des options à votre playbook ansible pour les serveurs Web Apache
• Les produits Chef sont partiellement sous licence, mais sont gratuits pour un usage
personnel (dans le cas de Chef Infra Server, pour moins de 25 nœuds gérés).
• Les produits et solutions de Chef permettent la création, le test, l'organisation, le stockage
du référentiel et l'exécution sur des cibles distantes, soit à partir d'une station de travail Chef
autonome, soit indirectement à partir d'un serveur Chef Infra central.
Il s'agit d'une introduction de haut niveau à trois trousses d'outils DevOps modernes. Vous devriez
maintenant être prêt à :
• Déployez et intégrez des versions gratuites des principaux composants d'Ansible, Puppet et/ou Chef sur
une gamme de supports, des machines virtuelles de bureau aux machines virtuelles basées sur le cloud
sur Azure, AWS ou d'autres plates-formes IaaS.
• Découvrez le langage déclaratif, le style de construction et d'organisation de chaque plate-forme sous
forme de code, et obtenez une idée de la portée de sa bibliothèque de ressources, de plugins et
d'intégrations.
• Apprenez à automatiser certaines des tâches informatiques courantes que vous pouvez effectuer au
travail ou à résoudre les problèmes de déploiement et de gestion du cycle de vie que vous définissez
vous-même, dans votre laboratoire à domicile.
• Des exercices pratiques et des travaux vous donneront une idée complète de la façon dont chaque plate-
forme aborde les thèmes de configuration et vous aideront à surmonter les défis informatiques quotidiens.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 63
9.4 Infrastructure en tant
que code
• Le déploiement bleu/vert est une méthode permettant de réduire ou d'éliminer les temps d'arrêt dans les environnements
de production.
• Il est également nécessaire de développer la capacité de rediriger rapidement le trafic d'applications vers l'un ou l'autre.
• Le test Canari est similaire au déploiement roulant bleu/vert, mais un peu plus délicat.
• La migration entre les anciens et les nouveaux déploiements est effectuée client par client (voire utilisateur par utilisateur).
Remarque : Certains praticiens de DevOps font la différence entre les stratégies bleu/vert et rouge/noir. Ils
disent qu'en bleu/vert, le trafic est progressivement migré d'un environnement à l'autre, de sorte qu'il
touche les deux systèmes pendant un certain temps ; alors qu'en rouge/noir, le trafic est coupé à la fois.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 68
9.5 Automatisation des tests
Cisco a réalisé d'énormes progrès dans le développement de réseaux définis par logiciel (SDN) et de middleware qui
permettent aux ingénieurs d'aborder un réseau physique en tant qu'entité programmable unique. Dans le cas de Cisco, cela
inclut :
• L'API REST et les kits SDK permettent l'intégration avec des outils d'automatisation comme Ansible, Puppet et Chef
• Python Automated Test System (PyATS) est une solution de test et de validation de périphériques réseau basée sur
Python.
• PYATS est né comme base Python de bas niveau pour le système de test dans son ensemble.
• Son système de bibliothèque de niveau supérieur, Génie, fournit les API et les bibliothèques nécessaires qui pilotent et
interagissent avec les périphériques réseau, et effectuent les tests réels.
• Une CLI permet d'interroger rapidement les réseaux en direct, d'extraire les faits et d'automatiser
l'exécution des scripts de test et d'autres analyses médico-légales.
• PYATS fournit une énorme bibliothèque d'interfaces à Cisco et à d'autres infrastructures via une gamme
d'interfaces.
• PyATS peut consommer, analyser et implémenter des topologies décrites dans JSON, en tant que modèles
YANG et à partir d'autres sources.
• PYATS peut également être intégré avec des outils d'automatisation pour la construction, le
provisionnement et le démontage.
Environnements virtuels
L'outil PyATS est mieux installé pour un travail personnel dans un environnement virtuel Python (venv).
• Un venv est un environnement copié à partir de votre environnement de base, mais gardé séparé de
celui-ci.
• Cela vous permet d'éviter d'installer des logiciels susceptibles de modifier définitivement l'état de votre
système.
• Des environnements virtuels existent dans les dossiers de votre système de fichiers. Lorsqu'ils sont
créés, ils peuvent être activés, configurés à volonté et les composants qui y sont installés peuvent être
mis à jour ou modifiés sans que les modifications soient reflétées dans la configuration de votre hôte.
• La possibilité de créer des environnements virtuels est native à Python 3, mais Ubuntu 18.04 peut
nécessiter l'installation d'un paquet python3-venv séparément.
• Venv crée le répertoire de travail et la structure de dossier spécifiés contenant des fonctions et des
artefacts décrivant la configuration de cet environnement.À ce stade, vous pouvez cd au monprojet et
activer le venv.
Installation de PYATS
• Installez les PYATS à partir du référentiel public de paquets Pip (PyPI).
• Cloner le repo des exemples de scripts PyATS, géré par Cisco DevNet, qui contient des exemples de
fichiers.
Remarque : Vous pouvez voir des erreurs « Échec de la construction de la roue
pour...<wheelname> » lors de l'installation de PYATS. Vous pouvez ignorer ces erreurs en toute
sécurité car pip a un plan de sauvegarde pour ces échecs et les dépendances sont installées malgré
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
les erreurs signalées. confidentielles de Cisco 74
Automatisation des tests
Exemple pyATS (suite)
Syntaxe du cas de test PyATS
• La syntaxe de déclaration de test pour PyATS est inspirée par les frameworks de test d'unité Python comme pytest.
• Il prend en charge les instructions de test de base, telles que l'affirmation qu'une variable a une valeur donnée, et ajoute
à cela la possibilité de fournir explicitement des résultats.
• Un script PyATS est un fichier Python où les tests PyATS sont déclarés.
• Un testbed peut être un seul fichier YAML ou peut être assemblé par programme à partir de YAML et Python.
• Le fichier de testbed est une entrée essentielle pour le reste de la bibliothèque et de l'écosystème PyATS car il fournit
des informations à l'infrastructure pour charger le bon ensemble d'API de bibliothèque pour chaque périphérique, et
comment communiquer efficacement avec eux.
• Les fichiers de testbed réels pour les topologies volumineuses peuvent être longs, profondément imbriqués et
complexes.
• Le Cloud Computing permet aux développeurs et aux opérateurs d'utiliser des logiciels pour demander, configurer, déployer
et gérer des ressources de calcul, de stockage et de réseau virtualisés et virtualisés.
• Pour que l'automatisation complète soit vraiment efficace, elle nécessite des changements dans la culture
organisationnelle, y compris la réduction des divisions historiques entre le développement (développement) et les
opérations (opérations).
• Devops/SRE ont de nombreux principes de base et meilleures pratiques : l'accent est mis sur l'automatisation, l'idée que
les défaillances sont normales et un remaniement de la disponibilité en termes de ce qu'une entreprise peut tolérer.
• L'automatisation du cloud vous permet de provisionner des hôtes virtualisés, de configurer des réseaux virtuels et d'autres
services de connectivité, de réquisition, puis de déployer des applications sur cette infrastructure.
• Trois des outils d'automatisation les plus populaires sont Ansible, Puppet et Chef.
• L'immuabilité se réfère à la maintenance des systèmes entièrement sous forme de code, n'effectuant aucune opération
manuelle sur eux.