SlideShare une entreprise Scribd logo
1  sur  14
Édition Française
#gab_fr
Global AZURE
Tester avant de
déployer :
comment tester ses
déploiements ARM
avec ARM-TTK
Olivier Miossec
Agenda
 Les déploiements ARM
 Les possibilités de tests
 ARM-TTK
 Test cases
 Scénarios pour l’intégration continue
Live demo https://github.com/omiossec/arm-ttk-demo
Les déploiements ARM
 Les Templates ARM sont des documents « JSON » permettant de décrire l’état souhaité de
vos ressources Azure (aka.ms/justLearnARM).
 Tout comme Terraform, les templates ARM permettent de faire de « l’Infrastructure As
Code ».
 Dès lors que l’on parle de code, il est souhaitable d’adopter les mêmes pratiques utiliser
pour les applications :
 S’assurer que le code est fonctionnel
 Valider que le code respect les bonnes pratiques
 Vérifier que le code ne présente pas de problèmes de sécurités
 S’assurer que le code corresponde a ce qui a été demandé
Les méthodes de tests
 Les tests sont faits en général avec le cmdlet :
Test-AzResourceGroupDeployment
 Mais il y a plusieurs limitations :
 Peu d’information, indique seulement si le template est capable d’être déployer
 Nécessite une connexion à Azure et un groupe de ressources
 Ne répond pas à tous les besoins (best practices, sécurités, …)
Azure Resource Manager Template Toolkit (arm-ttk)
 Annoncé à la MS Ignite 2019 (brk3223)
 Toujours en preview, disponible sur GitHub https://github.com/Azure/arm-ttk
 Module PowerShell compatible PS Core (donc sur Windows/Linux/Mac)
 Il n’est pas disponible (encore) sur la PowerShell Gallery
 Son premier but n’est pas de faire une analyse de syntaxe (pas un outil de test unitaire)
mais d’évaluer la prise en compte des bonnes pratiques.
 Le module n’utilise pas de connexion à Azure.
 Il analyse les fichiers json d’un chemin d’un dossier (si il existe un azdeploy.json) ou d’un
template à partir de testcases
Les testcases
adminUsername Should Not Be A Literal
apiVersions Should Be Recent
artifacts parameter
DeploymentTemplate Schema Is Correct
IDs Should Be Derived From ResourceIDs
Location Should Not Be Hardcoded
ManagedIdentityExtension must not be used
Min And Max Value Are Numbers
Outputs Must Not Contain Secrets
Parameters Must Be Referenced
Parameters Property Must Exist
providers apiVersions Is Not Permitted
ResourceIds should not contain
Resources Should Have Location
Secure String Parameters Cannot Have Default
Template Should Not Contain Blanks
Variables Must Be Referenced
Virtual Machines Should Not Be Preview
VM Images Should Use Latest Version
VM Size Should Be A Parameter
Utilisation du module
 Il est possible de limiter les tests en utilisant –Test
 Il est aussi possible de passer des paramètres avec –TestParameter (collection)
 Il est possible d’écrire ces propres tests
 Première étape, créer un fichier .test.ps1, le nom du fichier doit correspondre au nom du
test en remplacent les espaces par un – ou un _
 Seconde étape, avoir un paramètre pour récupérer l’objet à tester
param(
[PSObject]$TemplateObject
)
Intégration CI/CD
 Puisque ARM-TTK est un module PowerShell il est facile de l’intégrer dans une chaine
d’intégration et de déploiement.
 Le but est que chaque Pull Request/Push déclenche un test permettant à l’équipe de
rapidement détecter les problèmes.
 Deux Options
 GitHub Actions
 Azure DevOps
GitHub Actions
 Nous avons besoin:
 D’un dossier où déposer un DockerFile, la definition du workflow et un script
pour tester le/les templates avec ARM-TTK
 Un fichier fichier workflow dans le dossier .github/workflows
GitHub Actions
 Nous avons besoin:
 Il est nécessaire d’ajouter l’extension Run ARM TTK Tests de Sam Cogan
(https://marketplace.visualstudio.com/items?itemName=Sam-
Cogan.ARMTTKExtension)
 Un fichier yaml pour decrire le Pipeline
Conclusions
 ARM-TTK n’est pas complet et toujours en preview.
 Il est modulaire et permet de s’intéresser à la qualité des templates
 Cela permet aux équipes de se concentrer sur les déploiements et d’avoir un gain
qualitatif.
 Beaucoup de nouvelle fonctionnalité sur ARM devraient apparaitre dans le courant
de l’année
Avec le support des
communautés
francophones AZUG FR,
MUG Wallonie (Belgique),
MUG Lyon,
MUG Rennes,
MUG Strasbourg, et CMD
Microsoft France
Sans oublier toute la régie
et les organisateurs

Contenu connexe

Tendances

Les tests behat par la pratique
Les tests behat par la pratiqueLes tests behat par la pratique
Les tests behat par la pratiqueGuilhem Bourgoin
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en pythongburet
 
Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017Logilab
 
Tests ihm automatises avec selenium
Tests ihm automatises avec seleniumTests ihm automatises avec selenium
Tests ihm automatises avec seleniumsojavawest
 
les Tests unitaires
les Tests unitairesles Tests unitaires
les Tests unitairesISIG
 
DevoxxFR 2013 - Arquillian
DevoxxFR 2013 - ArquillianDevoxxFR 2013 - Arquillian
DevoxxFR 2013 - ArquillianAlexis Hassler
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
Presentation of framework Angular
Presentation of framework AngularPresentation of framework Angular
Presentation of framework AngularLhouceine OUHAMZA
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches SeleniumGreenIvory
 

Tendances (17)

Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
Les tests behat par la pratique
Les tests behat par la pratiqueLes tests behat par la pratique
Les tests behat par la pratique
 
J Unit
J UnitJ Unit
J Unit
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en python
 
Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017
 
Jprofiler
JprofilerJprofiler
Jprofiler
 
Tests ihm automatises avec selenium
Tests ihm automatises avec seleniumTests ihm automatises avec selenium
Tests ihm automatises avec selenium
 
Selenium
SeleniumSelenium
Selenium
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
les Tests unitaires
les Tests unitairesles Tests unitaires
les Tests unitaires
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
DevoxxFR 2013 - Arquillian
DevoxxFR 2013 - ArquillianDevoxxFR 2013 - Arquillian
DevoxxFR 2013 - Arquillian
 
Hibernate jpa
Hibernate jpaHibernate jpa
Hibernate jpa
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
Presentation of framework Angular
Presentation of framework AngularPresentation of framework Angular
Presentation of framework Angular
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches Selenium
 

Similaire à Tester avant de déployer ; comment tester ses déploiements ARM.

Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Martin Latrille
 
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft AzureTIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft AzureThe Incredible Automation Day
 
Azure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancé
Azure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancéAzure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancé
Azure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancéManon PERNIN
 
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Cellenza
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logicielUSTHB & DELTALOG
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !Paris Salesforce Developer Group
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...PimpMySharePoint
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebChristophe Rochefolle
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO Technology
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes PratiquesEmmanuel Hugonnet
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4Emmanuel Hugonnet
 
Rédaction de tests unitaires avec fakes
Rédaction de tests unitaires avec fakesRédaction de tests unitaires avec fakes
Rédaction de tests unitaires avec fakesMSDEVMTL
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 

Similaire à Tester avant de déployer ; comment tester ses déploiements ARM. (20)

Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft AzureTIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
 
Azure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancé
Azure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancéAzure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancé
Azure Logic Apps - Bonnes pratiques et industrialisation pour un départ lancé
 
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
 
Rédaction de tests unitaires avec fakes
Rédaction de tests unitaires avec fakesRédaction de tests unitaires avec fakes
Rédaction de tests unitaires avec fakes
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 

Plus de AZUG FR

I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)AZUG FR
 
Packer, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzurePacker, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzureAZUG FR
 
Dev & run d'un site marchant dans Azure
Dev & run d'un site marchant dans AzureDev & run d'un site marchant dans Azure
Dev & run d'un site marchant dans AzureAZUG FR
 
Azure DNS Privé
Azure DNS PrivéAzure DNS Privé
Azure DNS PrivéAZUG FR
 
Meetup AZUG FR @ IdeaStudio - 5 Février 2019
Meetup AZUG FR @ IdeaStudio - 5 Février 2019Meetup AZUG FR @ IdeaStudio - 5 Février 2019
Meetup AZUG FR @ IdeaStudio - 5 Février 2019AZUG FR
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsAZUG FR
 
Ignite 2018 - Nouveautés governance et management (Manon Pernin)
Ignite 2018 - Nouveautés governance et management (Manon Pernin)Ignite 2018 - Nouveautés governance et management (Manon Pernin)
Ignite 2018 - Nouveautés governance et management (Manon Pernin)AZUG FR
 
Ignite 2018 - Nouveauté stockage (Didier Esteves)
Ignite 2018 - Nouveauté stockage (Didier Esteves)Ignite 2018 - Nouveauté stockage (Didier Esteves)
Ignite 2018 - Nouveauté stockage (Didier Esteves)AZUG FR
 
Ignite 2018 - Coups de coeur (Benoit Sautiere)
Ignite 2018 - Coups de coeur (Benoit Sautiere)Ignite 2018 - Coups de coeur (Benoit Sautiere)
Ignite 2018 - Coups de coeur (Benoit Sautiere)AZUG FR
 
Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)
Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)
Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)AZUG FR
 
GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...
GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...
GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...AZUG FR
 
GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data! par Guillaume...
GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data!  par Guillaume...GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data!  par Guillaume...
GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data! par Guillaume...AZUG FR
 
GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...
GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...
GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...AZUG FR
 
Meetup AZUG FR Dec 2017 @ Arolla
Meetup AZUG FR Dec 2017 @ ArollaMeetup AZUG FR Dec 2017 @ Arolla
Meetup AZUG FR Dec 2017 @ ArollaAZUG FR
 
Meetup AZUG FR Oct 2017 @ Cellenza
Meetup AZUG FR Oct 2017 @ CellenzaMeetup AZUG FR Oct 2017 @ Cellenza
Meetup AZUG FR Oct 2017 @ CellenzaAZUG FR
 
Analysez vos textes avec Cognitive Services
Analysez vos textes avec Cognitive ServicesAnalysez vos textes avec Cognitive Services
Analysez vos textes avec Cognitive ServicesAZUG FR
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...AZUG FR
 
Gab17 lyon - Blockchain as a service dans Azure by Igor Leontiev
Gab17 lyon - Blockchain as a service dans Azure by Igor LeontievGab17 lyon - Blockchain as a service dans Azure by Igor Leontiev
Gab17 lyon - Blockchain as a service dans Azure by Igor LeontievAZUG FR
 
GAB 2017 PARIS - IoT Azure - Aymeric Weinbach
GAB 2017 PARIS - IoT Azure - Aymeric WeinbachGAB 2017 PARIS - IoT Azure - Aymeric Weinbach
GAB 2017 PARIS - IoT Azure - Aymeric WeinbachAZUG FR
 
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...AZUG FR
 

Plus de AZUG FR (20)

I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)
 
Packer, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzurePacker, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec Azure
 
Dev & run d'un site marchant dans Azure
Dev & run d'un site marchant dans AzureDev & run d'un site marchant dans Azure
Dev & run d'un site marchant dans Azure
 
Azure DNS Privé
Azure DNS PrivéAzure DNS Privé
Azure DNS Privé
 
Meetup AZUG FR @ IdeaStudio - 5 Février 2019
Meetup AZUG FR @ IdeaStudio - 5 Février 2019Meetup AZUG FR @ IdeaStudio - 5 Février 2019
Meetup AZUG FR @ IdeaStudio - 5 Février 2019
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 
Ignite 2018 - Nouveautés governance et management (Manon Pernin)
Ignite 2018 - Nouveautés governance et management (Manon Pernin)Ignite 2018 - Nouveautés governance et management (Manon Pernin)
Ignite 2018 - Nouveautés governance et management (Manon Pernin)
 
Ignite 2018 - Nouveauté stockage (Didier Esteves)
Ignite 2018 - Nouveauté stockage (Didier Esteves)Ignite 2018 - Nouveauté stockage (Didier Esteves)
Ignite 2018 - Nouveauté stockage (Didier Esteves)
 
Ignite 2018 - Coups de coeur (Benoit Sautiere)
Ignite 2018 - Coups de coeur (Benoit Sautiere)Ignite 2018 - Coups de coeur (Benoit Sautiere)
Ignite 2018 - Coups de coeur (Benoit Sautiere)
 
Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)
Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)
Ignite 2018 - nouveautés sécurité et réseau (Laurent Yin)
 
GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...
GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...
GAB 2018 PARIS - Enrichir vos applications avec Azure AI services par Houssem...
 
GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data! par Guillaume...
GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data!  par Guillaume...GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data!  par Guillaume...
GAB 2018 PARIS - Mettez un peu de CI/CD dans vos projets data! par Guillaume...
 
GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...
GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...
GAB 2018 PARIS - Gouvernance Azure, comment éviter les écueils par Benoît Sau...
 
Meetup AZUG FR Dec 2017 @ Arolla
Meetup AZUG FR Dec 2017 @ ArollaMeetup AZUG FR Dec 2017 @ Arolla
Meetup AZUG FR Dec 2017 @ Arolla
 
Meetup AZUG FR Oct 2017 @ Cellenza
Meetup AZUG FR Oct 2017 @ CellenzaMeetup AZUG FR Oct 2017 @ Cellenza
Meetup AZUG FR Oct 2017 @ Cellenza
 
Analysez vos textes avec Cognitive Services
Analysez vos textes avec Cognitive ServicesAnalysez vos textes avec Cognitive Services
Analysez vos textes avec Cognitive Services
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
 
Gab17 lyon - Blockchain as a service dans Azure by Igor Leontiev
Gab17 lyon - Blockchain as a service dans Azure by Igor LeontievGab17 lyon - Blockchain as a service dans Azure by Igor Leontiev
Gab17 lyon - Blockchain as a service dans Azure by Igor Leontiev
 
GAB 2017 PARIS - IoT Azure - Aymeric Weinbach
GAB 2017 PARIS - IoT Azure - Aymeric WeinbachGAB 2017 PARIS - IoT Azure - Aymeric Weinbach
GAB 2017 PARIS - IoT Azure - Aymeric Weinbach
 
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
 

Tester avant de déployer ; comment tester ses déploiements ARM.

  • 2. Tester avant de déployer : comment tester ses déploiements ARM avec ARM-TTK Olivier Miossec
  • 3.
  • 4. Agenda  Les déploiements ARM  Les possibilités de tests  ARM-TTK  Test cases  Scénarios pour l’intégration continue Live demo https://github.com/omiossec/arm-ttk-demo
  • 5. Les déploiements ARM  Les Templates ARM sont des documents « JSON » permettant de décrire l’état souhaité de vos ressources Azure (aka.ms/justLearnARM).  Tout comme Terraform, les templates ARM permettent de faire de « l’Infrastructure As Code ».  Dès lors que l’on parle de code, il est souhaitable d’adopter les mêmes pratiques utiliser pour les applications :  S’assurer que le code est fonctionnel  Valider que le code respect les bonnes pratiques  Vérifier que le code ne présente pas de problèmes de sécurités  S’assurer que le code corresponde a ce qui a été demandé
  • 6. Les méthodes de tests  Les tests sont faits en général avec le cmdlet : Test-AzResourceGroupDeployment  Mais il y a plusieurs limitations :  Peu d’information, indique seulement si le template est capable d’être déployer  Nécessite une connexion à Azure et un groupe de ressources  Ne répond pas à tous les besoins (best practices, sécurités, …)
  • 7. Azure Resource Manager Template Toolkit (arm-ttk)  Annoncé à la MS Ignite 2019 (brk3223)  Toujours en preview, disponible sur GitHub https://github.com/Azure/arm-ttk  Module PowerShell compatible PS Core (donc sur Windows/Linux/Mac)  Il n’est pas disponible (encore) sur la PowerShell Gallery  Son premier but n’est pas de faire une analyse de syntaxe (pas un outil de test unitaire) mais d’évaluer la prise en compte des bonnes pratiques.  Le module n’utilise pas de connexion à Azure.  Il analyse les fichiers json d’un chemin d’un dossier (si il existe un azdeploy.json) ou d’un template à partir de testcases
  • 8. Les testcases adminUsername Should Not Be A Literal apiVersions Should Be Recent artifacts parameter DeploymentTemplate Schema Is Correct IDs Should Be Derived From ResourceIDs Location Should Not Be Hardcoded ManagedIdentityExtension must not be used Min And Max Value Are Numbers Outputs Must Not Contain Secrets Parameters Must Be Referenced Parameters Property Must Exist providers apiVersions Is Not Permitted ResourceIds should not contain Resources Should Have Location Secure String Parameters Cannot Have Default Template Should Not Contain Blanks Variables Must Be Referenced Virtual Machines Should Not Be Preview VM Images Should Use Latest Version VM Size Should Be A Parameter
  • 9. Utilisation du module  Il est possible de limiter les tests en utilisant –Test  Il est aussi possible de passer des paramètres avec –TestParameter (collection)  Il est possible d’écrire ces propres tests  Première étape, créer un fichier .test.ps1, le nom du fichier doit correspondre au nom du test en remplacent les espaces par un – ou un _  Seconde étape, avoir un paramètre pour récupérer l’objet à tester param( [PSObject]$TemplateObject )
  • 10. Intégration CI/CD  Puisque ARM-TTK est un module PowerShell il est facile de l’intégrer dans une chaine d’intégration et de déploiement.  Le but est que chaque Pull Request/Push déclenche un test permettant à l’équipe de rapidement détecter les problèmes.  Deux Options  GitHub Actions  Azure DevOps
  • 11. GitHub Actions  Nous avons besoin:  D’un dossier où déposer un DockerFile, la definition du workflow et un script pour tester le/les templates avec ARM-TTK  Un fichier fichier workflow dans le dossier .github/workflows
  • 12. GitHub Actions  Nous avons besoin:  Il est nécessaire d’ajouter l’extension Run ARM TTK Tests de Sam Cogan (https://marketplace.visualstudio.com/items?itemName=Sam- Cogan.ARMTTKExtension)  Un fichier yaml pour decrire le Pipeline
  • 13. Conclusions  ARM-TTK n’est pas complet et toujours en preview.  Il est modulaire et permet de s’intéresser à la qualité des templates  Cela permet aux équipes de se concentrer sur les déploiements et d’avoir un gain qualitatif.  Beaucoup de nouvelle fonctionnalité sur ARM devraient apparaitre dans le courant de l’année
  • 14. Avec le support des communautés francophones AZUG FR, MUG Wallonie (Belgique), MUG Lyon, MUG Rennes, MUG Strasbourg, et CMD Microsoft France Sans oublier toute la régie et les organisateurs

Notes de l'éditeur

  1. DEMO 1
  2. demo2
  3. Demo3 et demo4
  4. Demo
  5. Demo