"Fini l'artisanat, place à l'industrialisation !
Dans cette session, nous aborderons les différentes méthodes de déploiement d’applications dans Azure.
Nous ferons un rappel sur le nouveau modèle ARM (IaaS v2) et les « Resource Manager providers ».
Puis nous passerons aux différentes méthodes de déploiement : de la plus simple jusqu’aux plus élaborées comme par exemple, PowerShell, CLI, Custom Script, fichiers de configuration JSON, installation post-installation d’applications, solutions tierces. "
6. • Ressources :
VM; Réseau; Network Security Group; Stockage; Load Balancer; IP ; Nic; Groupe de disponibilité; ……
• Groupe de ressource :
Conteneur réunissant les ressources associées ( ex : Une application ; …)
• Fournisseur de ressources :
Service qui fournit les ressources à déployer ( ex : Microsoft.Compute; Microsoft.Storage; Microsoft.Web)
• Modèle Resource Manager :
Fichier JSON (JavaScript Objet Notation) qui définit une ou plusieurs ressources à déployer vers un groupe de
ressources
• Syntaxe déclarative :
Permet de déclarer « Voici ce que je souhaite créer » sans avoir à écrire la séquence de commandes de
programmation pour le créer.
Rappel sur le modèle ARM
Terminologie
N° 6
7. Rappel sur le modèle ARM
Déploiement d’une VM (« Resource group »)
N° 7
Resource Group
(PS) New-AzureRmResourceGroup `
-Name $RG `
-Location $Location
(CLI) azure group create
--name $RGName
--location $Location
• L’appartenance à un groupe de
ressources est exclusive
• Les ressources peuvent être
multi-régions
• Contrôle d’accès (Role-Based
Access Control), audit
8. Rappel sur le modèle ARM
Déploiement d’une VM (« Network »)
N° 8
• Microsoft.Network/virtualNetworks
• Microsoft.Network/networkInterfaces
• Microsoft.Network/loadBalancers
• Microsoft.Network/networkSecurityGroups
• Microsoft.Network/publicIPAddresses
• Microsoft.Network/routeTables
Network Resource Provider
Virtual Network
Subnet
NetworkInteface
PublicIPAddress
LoadBalancer
NetworkSecurityGroup
9. Rappel sur le modèle ARM
Déploiement d’une VM (« Storage »)
N° 9
• Microsoft.Storage/storageAccounts
Storage Resource Provider
10. Rappel sur le modèle ARM
Déploiement d’une VM (Compute)
N° 10
• Microsoft.Compute/availabilitySets
• Microsoft.Compute/virtualMachines
• Microsoft.Compute/virtualMachines/extensions
• Microsoft.Compute/virtualMachineScaleSets
Compute Rresource Provider
11. Rappel sur le modèle ARM
Déploiement d’une simple VM (Exemple)
N° 11
TCP 3389
Resource Group
SRP
CRP
NRP
Public IP address (PIP)
*.westeurope.cloudapp.azure.com
Nic
Vnet
Sub-Front Sub-Back
Source /protocol/ port
range
Destination /port range
Allow/Deny
NSG
Private IP
12. Rappel sur le modèle ARM
Déploiement avec un LB (Exemple)
Resource Group
SRP CRP NRP
Public IP address
*.westeurope.cloudapp.azure.com
Nic
Vnet
Sub-1
Private IP
Private IP
BackEnd Pool
Sonde
(TCP ou Url)
Règles :
• TCP/UDP ->BackEnd Poll
(Ex: TCP 443)
Inbound Nat Rules :
• Exposition TCP/UDP N° port
• Redirection sur cible (VM)
TCP/UDP N° port
(ex: TCP 5001 -> TCP 22
TCP 5002 -> TCP 22)
15. Azure CLI: Installation
« Command-Line Interface »
Les CLI Microsoft Azure offre un ensemble de commandes
multiplateforme open source pour l’utilisation de la plateforme
Microsoft Azure.
Windows installer : http://go.microsoft.com/?linkid=9828653&clcid=0x409
OS X installer : http://go.microsoft.com/fwlink/?linkid=252249&clcid=0x409
Linux installer : http://go.microsoft.com/fwlink/?linkid=253472&clcid=0x409
L’installation des CLI utilise Node.js et NPM (Node Package Manager).
Possibiliter d’une installation dans un “container in a Docker”.
https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-install/
Source code:
https://github.com/azure/azure-xplat-cli
21. • Format léger d’échange de données
• http://json.org/json-fr.html
• Standard de l’industrie
• Format texte complètement indépendant de tout language
• Déclaratif
• Facile à lire ou à écrire pour des humains (les IT sont
obligés d’installer Visual Studio)
• Schéma JSON
• Schéma de modèle de déploiement (Deployment Template)
• Schéma de modèle de Resource Provider
JSON
Rappels
22. Azure resource Manager template
N° 22
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
Paramètres nécessaires à donner pour le déploiement ( Ex: User; Pwd; Images
…..)
},
"variables": {
Variable avec des valeurs (Ex: Stockage, Network , Nic , LB …..)
},
"resources": [
Resource à déployer ou à mettre à jour en s’appuyant sur les paramètres/variables
]
}
23. • Référencés sur Azure.com
• https://azure.microsoft.com/en-us/documentation/templates/
• Possibilité de déployer
• Dépôt sur Github
• https://github.com/Azure/azure-quickstart-templates
• Possibilité de déployer
• http://armviz.io
• Contributions de Microsoft ou de la communauté
• Visual Studio Community 2015 (gratuit )
• Portail Azure
• Possibilité de générer les fichiers de configuration ( JSON, SH, PS …) à partir
d’une ressource déjà déployée
• Possibilité de charger une configuration depuis Github
• Possibilité de passer par « Template deployment »
• Possibilité de passer par « Template » (preview)
Bien démarrer avec les « Azure templates »
Plusieurs possibilités
N° 23
31. • DSC est une plateforme de gestion de Windows PowerShell qui permet de
déployer et gérer les données de configuration des services logiciels, et de
gérer l’environnement dans lequel ces services s’exécutent.
• DSC vous permet également de mettre à jour et de gérer des
existantes.
• DSC est une plateforme déclarative employée pour la configuration, le
déploiement et la gestion des systèmes.
• Application des configurations:
• Mode « Push »
• Mode « Pull »
• DSC s’appuie sur 3 composants
• Scripts PowerShell déclaratifs qui définissent et configurent des instances de ressources.
• Modules ( find-module; Install-Module; get-dscresource; powershellgallery.com …)
• Gestionnaire de configuration local (ou « LCM »)
• L’agent « Microsoft.Powershell.DSC »
PowerShell DSC
Desired State Configuration (rappel)
33. Mode Push
Configuration
Staging Area
(Contient les
données DSC)Langages et
outils tiers
Définition
(peut inclure du code
classique ou déclaratif)
Staging
• Configuration déclarative
utilisant des instances MOF
standard DMTF
• Configuration calculée pour
chaque noeud
PowerShell
Exécution
La configuration déclarative est
appliquée via des providers
Parser and
Dispatcher
Imperative
ProvidersAvantages de PowerShell :
• Syntaxe declarative
• Intellisense par rapport au schéma
• Validation du schéma (early-binding)
Les providers (ressources)
implémentent les changements
Local
Configuration
Store
34. Mode Push
Déploiement en PowerShell
Module xPSDesiredStateConfiguration à installer sur son poste
36. Mode Push
N° 36
Déploiement avec fichier de
configuration JSON
À « zipper » et copier dans le repository
Ex: https://moncompte.blob.core.windows.net/confdsc/FourthCoffeeV6.ps1.zip
38. Mode Pull
Pull Server
(Contient les
données DSC et les
modules)Langages et
outils tiers
Définition
(peut inclure du code
classique ou déclaratif)
Staging
• Configuration déclarative
utilisant des instances MOF
standard DMTF
• Configuration calculée pour
chaque noeud
PowerShell
Exécution
La configuration déclarative est
appliquée via des providers
Parser and
Dispatcher
Imperative
ProvidersAvantages de PowerShell :
• Syntaxe declarative
• Intellisense par rapport au schéma
• Validation du schéma (early-binding)
Les providers (ressources)
implémentent les changements
Local
Configuration
Store
39. • Console de gestion de
configuration
• Azure Automation DSC
s'appuie sur les concepts
de base introduits dans
PowerShell DSC. (même
fichier de configuration)
• Les serveurs cibles peuvent
être dans Azure ou sur site
• Environnement Windows
ou Linux
Azure Automation DSC
Mode Pull
42. EdifiXio
3 core activities
• Consulting
• Managed Services
• System integration
Focus on Public Clouds
Missions
• Deliver the Digital Solutions which represent an actual competitiveness or productivity
challenge
• Deliver an industrial robustness combined with a unique agility and creativity.
Microsoft
Azure
46. Processus de déploiement
Azure Resource Manager
• Pour les composants Azure
– Storage account
– VMs
– Azure Database
– Load Balancer
– NSG
– Redis Cache
Chef
• Pour les composants dans les VMs
– Pour les middleware TomCat dans les VMs et leur configuration
– Pour l’application elle-même (package .war)
– Pour les scripts BD
– Application des policy de sécurité et moyens d’accès (SSHd et clés)
55. Bonus Chef
Maintien des configurations
• Exécution régulière préventive des recettes
– Au reboot
– De manière planifiée
Restauration d’un état attendu
Exécution corrective des recettes
Mise à jour d’un composant dans la VM
Mode idempotent