modélisation, déploiement et gestion des infrastructures cloud : outils et bonnes pratiques
TRANSCRIPT
Pierre ChesnéTechnology Solution [email protected]
Frederi [email protected]
Modélisation, déploiement et gestion
des infrastructures Cloud : outils et bonnes
pratiques
• Rappel sur le modèle ARM (Azure Resource Manager)• Déploiement d’infrastructure
– CLI– PowerShell– JSON
• Installation d’applications– PowerShell DSC– Automation DSC Configuration– Solutions tiers
Agenda
N° 4
Rappel sur le modèle ARM
N° 5
• 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 ARMTerminologie
N° 6
Rappel sur le modèle ARMDé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
Rappel sur le modèle ARMDé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 NetworkSubnet
NetworkInteface
PublicIPAddress
LoadBalancer
NetworkSecurityGroup
Rappel sur le modèle ARMDéploiement d’une VM (« Storage »)
N° 9
• Microsoft.Storage/storageAccounts
Storage Resource Provider
Rappel sur le modèle ARMDéploiement d’une VM (Compute)
N° 10
• Microsoft.Compute/availabilitySets• Microsoft.Compute/virtualMachines• Microsoft.Compute/virtualMachines/
extensions• Microsoft.Compute/
virtualMachineScaleSets
Compute Rresource Provider
Rappel sur le modèle ARMDéploiement d’une simple VM (Exemple)
N° 11
TCP 3389
Resource Group
SRP
CRP
NRP
Public IP address (PIP)*.westeurope.cloudapp.azure.com
Nic
VnetSub-Front Sub-
Back
Source /protocol/ port rangeDestination /port rangeAllow/Deny
NSGPrivate IP
Rappel sur le modèle ARMDé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)
DémonstrationDéploiement de VM
avec le portail
N° 13
Command-Line Interface (CLI)
N° 14
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
Command-Line Interface (CLI)
Exemple
N° 16
Azure PowerShell
N° 17
Azure PowerShell est un ensemble de modules fournissant des « cmdlet » pour gérer vos environnements Azure
Installation :Windows Management Framework 5.0 (https://msdn.microsoft.com/en-us/powershell/wmf/5.0/requirements)Install-Module AzureRM (Installation NuGet provider version ‘2.8.5.201’)
Vérification :Get-Module –ListAvailable
Azure PowerShell
C:\Program Files\WindowsPowerShell\Modules
Azure PowerShellExemple
N° 19
JSON
N° 20
• 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
JSONRappels
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 ]}
• 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
Modèle « Azure Template »« Infrastructure as code »
N° 24
Powershell :
CLI :
Modèle « Azure Template »
N° 25
Modèle « Azure Template »
N° 26
Template Deployement
N° 27
N° 28
Exemple de configuration JSON
N° 29
PowerShell DSC / Automation
N° 30
• 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 configurations 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 DSCDesired State Configuration (rappel)
PowerShell DSC
Compilation
Appliqué à :
Fichier MOF de configuration
Nœuds
Scripts de configuration
Mode Push
Configuration Staging Area
(Contient lesdonné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écutionLa 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
Mode PushDéploiement en PowerShell
Module xPSDesiredStateConfiguration à installer sur son poste
Mode Push
N° 35
Déploiement en PowerShell
Mode Push
N° 36
Déploiement avec fichier de configuration JSON
À « zipper » et copier dans le repositoryEx: https://moncompte.blob.core.windows.net/confdsc/FourthCoffeeV6.ps1.zip
Mode Push
N° 37
Déploiement avec fichier de configuration JSON
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écutionLa 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
• 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 DSCMode Pull
DémonstartionPowerShell DSC /
Automation
N° 40
03/05/2023
Déploiement automatisé sur Azure avec ARM & Chef
Frédéri Mandin
EdifiXio3 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
Agenda
L’architecture à déployer
Architecture Chef générale
Le processus de déploiement
Demo
Les bonus Chef
Les autres outils
Architecture cible
Architecture Chef
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)
Powershell script
Script powershell
ARM
Les recettes Chef
Les recettes
Un environnement
Une node
Tout est prêt, on fait cuire
Bonus ChefMaintien 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
Outils disponibles
123, rue Jules Guesde92300 Levallois-Perret
+33 6 79 12 15 83
VOS INTERLOCUTEURS
Frédéri Mandin
@CloudInTheAlps
N° 60
@microsoftfrance @Technet_France @msdev_fr
N° 61
N° 62