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

Post on 16-Apr-2017

132 views 0 download

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

Pierre ChesnéTechnology Solution Professionalpierrc@microsoft.com

Frederi MandinP-Sellerfrederi.mandin@edifixio.com

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

frederi.mandin@edifixio.com

@CloudInTheAlps

N° 60

@microsoftfrance @Technet_France @msdev_fr

N° 61

N° 62