L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. ·...
Transcript of L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. ·...
![Page 1: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/1.jpg)
Automatiser ses déploiements dans Azure avec Terraform
Maxime Coquerel - MVP Azure
![Page 2: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/2.jpg)
Disclaimer
“Tous les posts de cette présentation ne reflètent que mon opinion et non celle de mes employeurs et clients.“
![Page 3: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/3.jpg)
Remerciements
Merci à l’équipe Global Azure BootCamp ainsi qu’à la communauté Azure Québec!
Communauté Azure Québec
![Page 4: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/4.jpg)
# Speaker
Maxime Coquerel
Cloud Solution Architect
Email : [email protected]
Blog : zigmax.net (Since 2012)
Github : https://github.com/zigmax
Twitter : @zig_max
Open Source Contributor (Kubernetes / VSCode).
![Page 5: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/5.jpg)
![Page 6: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/6.jpg)
![Page 7: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/7.jpg)
Infrastructure as a Code
![Page 8: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/8.jpg)
Définition - Infrastructure as Code (IAC)
Infrastructure as Code (IaC) est le concept de gérer et provisionner des
machines / services au sein d'un centre de données uniquement à l'aide de
fichiers de définition plutôt qu'une configuration manuelle, à travers des
interfaces interactives ou physiquement.
Source: Wikipedia
![Page 9: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/9.jpg)
Principaux enjeux
● Impossible de répliquer un environnement existant (On a une demo la semaine prochaine mais on n’a pas l’environnement ... )
● Fragile … (Tout le monde a peur de faire un changement pendant les vacances de nos Ops)
● Pas de versionning des changements (Mais hier cela fonctionnait … ? Des heures pour retrouver la modification ...)
● Peu voir pas de documentation des infrastructures (Mais il a voulu faire quoi ici …. ???)
![Page 10: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/10.jpg)
Pourquoi IAC ?
![Page 11: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/11.jpg)
Principaux avantages IAC
● Consistance○ Standardise le déploiement (Toujours le même comportement)
● Rapidité○ Facilite et accélère vos déploiements
○
● Réutilisable○ Déploiement répétable sans fin …
○
● Extensible○ Code modulaire (développement sous formes de modules)
![Page 12: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/12.jpg)
État de l’art des solutions IAC pour Azure
Solutions Microsoft :
● ARM Templates● PowerShell● Azure CLI
Solutions tierces :
● Ansible (Module Azure)● HashiCorp Terraform
![Page 13: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/13.jpg)
HashiCorp
Founded : 2012 - Mitchell Hashimoto Armon Dadgar
![Page 14: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/14.jpg)
HashiCorp Terraform
● Open Source
● Mozilla Public Licence 2.0
● Créé par la compagnie HashiCorp (également auteur des produits : vagrant, consul, packer et vault)
● Lancé en 2014
● Développé en Go
![Page 15: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/15.jpg)
Terraform Providers
![Page 16: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/16.jpg)
Terraform - Process
![Page 17: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/17.jpg)
Flux de travail
![Page 18: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/18.jpg)
Exemple de code Terraform
![Page 19: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/19.jpg)
Extension VSCode | Terraform
![Page 20: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/20.jpg)
Documentation Terraform
![Page 21: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/21.jpg)
Config Mgmt vs Orchestration
![Page 22: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/22.jpg)
Terraform & Ansible
![Page 23: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/23.jpg)
Déployer un cluster AKS avec Terraform - Demo
![Page 24: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/24.jpg)
Retours d’expériences-
(Lesson Learned)
![Page 25: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/25.jpg)
Conclusion / Recommandations
> Sélectionner un projet pilote “simple” pour commencer
> Avant de se lancer dans du code, avoir une architecture et un plan de projet viable ...
> Impliquer vos développeurs dans l’écriture du code relatif à l’infrastructure
> Déployer votre code IAC via un outil de CI / CD (Azure DevOps par exemple)
> Have fun :) !
![Page 26: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/26.jpg)
Livres
![Page 27: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/27.jpg)
Ressources Techniques
Microsoft Learn - https://docs.microsoft.com/fr-fr/learn/
Microsoft Virtual Academy (FR) - https://stanislas.io/2016/04/26/41/
Microsoft Technical Community Content https://github.com/Microsoft/TechnicalCommunityContent
Terraform Azure Provider - https://www.terraform.io/docs/providers/azurerm/index.html
Maxime Blog - http://zigmax.net
Microsoft Ignite 2018 - https://myignite.techcommunity.microsoft.com/
![Page 28: L'infrastructure pour tous ! - déploiements dans Azure avec Terraform … · 2019. 5. 10. · Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines](https://reader036.fdocument.pub/reader036/viewer/2022081518/60a1634ebbfc10318c0191af/html5/thumbnails/28.jpg)
Questions / Talks