60

Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Embed Size (px)

Citation preview

Page 1: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques
Page 2: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Pierre ChesnéTechnology Solution [email protected]

Frederi [email protected]

Page 3: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Modélisation, déploiement et gestion

des infrastructures Cloud : outils et bonnes

pratiques

Page 4: 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

Page 5: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Rappel sur le modèle ARM

N° 5

Page 6: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

• 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

Page 7: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 8: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 9: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Rappel sur le modèle ARMDéploiement d’une VM (« Storage »)

N° 9

• Microsoft.Storage/storageAccounts

 

Storage Resource Provider

Page 10: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 11: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 12: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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)

Page 13: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

DémonstrationDéploiement de VM

avec le portail

N° 13

Page 14: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Command-Line Interface (CLI)

N° 14

Page 15: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 16: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Command-Line Interface (CLI)

Exemple

N° 16

Page 17: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Azure PowerShell

N° 17

Page 18: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 19: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Azure PowerShellExemple

N° 19

Page 20: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

JSON

N° 20

Page 21: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

• 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

Page 22: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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 ]}

Page 23: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

• 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

Page 24: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Modèle « Azure Template »« Infrastructure as code »

N° 24

Page 25: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Powershell :

CLI :

Modèle « Azure Template »

N° 25

Page 26: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Modèle « Azure Template »

N° 26

Template Deployement

Page 27: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

N° 27

Page 28: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

N° 28

Page 29: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Exemple de configuration JSON

N° 29

Page 30: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

PowerShell DSC / Automation

N° 30

Page 31: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

• 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)

Page 32: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

PowerShell DSC

Compilation

Appliqué à :

Fichier MOF de configuration

Nœuds

Scripts de configuration

Page 33: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 34: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Mode PushDéploiement en PowerShell

Module xPSDesiredStateConfiguration à installer sur son poste

Page 35: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Mode Push

N° 35

Déploiement en PowerShell

Page 36: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 37: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Mode Push

N° 37

Déploiement avec fichier de configuration JSON

Page 38: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 39: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

• 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

Page 40: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

DémonstartionPowerShell DSC /

Automation

N° 40

Page 41: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

03/05/2023

Déploiement automatisé sur Azure avec ARM & Chef

Frédéri Mandin

Page 42: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 43: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Agenda

L’architecture à déployer

Architecture Chef générale

Le processus de déploiement

Demo

Les bonus Chef

Les autres outils

Page 44: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Architecture cible

Page 45: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Architecture Chef

Page 46: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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)

Page 47: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Powershell script

Script powershell

Page 48: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

ARM

Page 49: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Les recettes Chef

Page 50: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Les recettes

Page 51: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Un environnement

Page 52: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Une node

Page 53: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Tout est prêt, on fait cuire

Page 54: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques
Page 55: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

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

Page 56: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

Outils disponibles

Page 57: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

123, rue Jules Guesde92300 Levallois-Perret

+33 6 79 12 15 83

VOS INTERLOCUTEURS

Frédéri Mandin

[email protected]

@CloudInTheAlps

Page 58: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

N° 60

Page 59: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

@microsoftfrance @Technet_France @msdev_fr

N° 61

Page 60: Modélisation, déploiement et gestion des infrastructures Cloud : outils et bonnes pratiques

N° 62