Infrastructure as Code
Programmez! DevCon #2
Manon Pernin
Consultante Cloud
Michel Hubert
CTO
Cellenza
▪ Les consultants Cellenza interviennent autour de 4 piliers :
Technologie Méthodologie Gouvernance
Conduite du changement
Développement
Patterns d’architecture
Best Practices (TDD,
BDD, …)
Craftmanship
Méthodes agiles
(SCRUM, XP, Kanban)
ALM
Intégration Continue
Mesure d’impact
Processus
Organisation DevOps
Communication, Formation, Coaching
Des experts reconnus
11
Azure
.NET
ALM
SQL Server
Windows Client
1 4
Des publications :
• Livres blancs (Cell’Insights) : http://www.cellenza.com/cellinsights
• Articles dans Programmez!
• Blog Cellenza : http://blog.cellenza.com
• Organisation de TechEvents
• Speakers lors de conférences Microsoft : TechDays, Azure Camp…
Architecture technique
DevOps
Une nouvelle norme
Question : Qu’est ce que DevOps?
“C’est la collaboration entre
Infrastructure et
developpement”
“Un job title”
“Des Release plus
petites et frequentes”
“C’est
l’automatisation”
DevOps
▪ Niveaux de maturité de
Collaboration
Collaboration
Coalition
Coordination
Coopération
▪ Une Collaboration entre Dev et Ops
DevOps
▪ Les outils
▪ DevOps vu par les Ops
Cycle de développement logiciel
Release Management Monitoring
DéploiementProvisionning
d’infrastructure
Configuration
d’application
Configuration du
système
TélémétrieSupervision
technique
Storyboarding Source Control
Management
Software DesignAgile Portfolio
Management
Build Tests Reporting et BIAnalyse de
code
Intégration
continue
Architecture technique
IaC
Infrastructure as Code
Infrastructure as Code
▪ Automatisation des processus
▪ Provisioning d’infrastructure (Compute, Network and Storage)
▪ Installation et configuration
▪ Versioning des scripts de provisioning et d’automatisation
▪ Evolution des infrastructures
▪ Réduire les erreurs liées aux interventions humaines
Infrastructure & Configuration as Code
• Optimistion du Déploiment
• Accélération du “Delivery”
• Taux de Déploiement
• MTTR
• Disponibilité
CODE
SELF SERVICE
WEBSITE
Bénéfices attendus
Shorten cycle times
and deliver value faster
Improve quality
and availability
Optimize resources
and eliminate waste
IaC : uniquement IaaS ?
PaaSIaaS
DevOps
Faisons un gâteau !
Architecture technique
Azure Resource Manager
Provisioning d’infrastructure
Scénario
➢ 1 site web
➢ 1 API
▪ Mise à jour des données
➢ 1 base de données
Déploiement des ressources Azure (IaaS
et PaaS) nécessaires pour:
• Environnements « on-demand » de façon rapide
• Diminution des coûts liés à l’infrastructure
• Gestion de la configuration
Besoins
Azure Resource Manager
▪Conteneurs de multiples
ressources similaires ou de
différents types
▪Toutes les ressources doivent
exister dans un seul et même
groupe de ressources
▪Groupes de ressources
peuvent couvrir des régions
▪ Resource Groups
▪ DevOps vu par les Ops
RESOURCE GROUP
Qu’est-ce ?
•
•
•
Pourquoi ?
•
•
•
Instantiation of repeatable config.
Configuration  Resource Group
Azure Resource Manager
▪ Templates de Déploiement
SQL - A Website
Virtual
Machines
SQL-A
Website
[SQL CONFIG] VM (2x)
DEPENDS ON SQLDEPENDS ON SQL
SQL CONFIG
Provisioning d’infrastructure
Démonstration
Architecture technique
Configuration Management
Powershell DSC
PowerShell DSC
➢ 2 modes :
▪ Push
▪ Pull
➢ DSC = Desired State Configuration
▪ Script déclaratif
▪ Configuration d’une VM (nœud)
➢ Installé avec PowerShell dès la version
4.0
➢ 3 modes de configuration:
▪ Apply Only
▪ Apply And Monitor
▪ Apply And Auto Correct
Configuration Management
Démonstration
Architecture technique
Industrialisation
Déploiement continu
Plus de gâteaux !
Usine logicielle
DEV
Infrastructure
BUILD
AGENT
IMAGE
REPOSITORY
SUBSCRIPTION
SCHEDULED BUILD
AZURE SUBSCRIPTION TEAM A
VM
Env #1
VM VM
Env #2
VM
AZURE SUBSCRIPTION TEAM B
VM
Env #1
VM VM
Env #2
VM
AZURE SUBSCRIPTION TEAM C
VM
Env #1
VM
VISUAL STUDIO TEAM SERVICES
Check-in
Image
Definition
Create
Golden
Infra
Created Updated
Golden Images
Distribute
Images
Industrialisation – Usine logicielle
Démonstration
Pour aller plus loin….
http://www.cellenza.com/cellinsights/

DevCon 2 ; Infra as Code avec Azure