VM Insights : Surveiller les performances et dépendances des VMs Azure

Surveiller ses environnements Azure est très important. Pour cela nous connaissons bien la solution Azure Monitor qui nous permet justement de surveiller et analyser nos environnements Azure. Azurer Monitor nous permet également d’être alerté si un incident survient sur notre plateforme.

              L’une des nouvelles fonctionnalités d’Azure Monitor est VM Insights. Elle nous permet de visualiser les performances et les dépendances de nos machines virtuelles. VM Insights se base sur les logs de VMS récupérés par les collecteurs de données Log Analytics.

              Voici les points qui seront traités :

  • Comment activer VM Insights : depuis le Portail et en PowerShell
  • Comment embarquer les VMs dans la solution : depuis le Portail et en PowerShell
  • Gérer les alertes en PowerShell

A l’issue de cet article vous saurez comment activer la solution et y embarquer les VMs automatiquement avec un script PowerShell complet et expliqué.

Activation de VM insights :

Il existe différentes méthodes pour activer VM Insights parmi lesquelles :

Directement sur le portail Azure

  • En ajoutant la solution au niveau d’un Log Analytics Workspace
    • En activant la solution depuis la machine virtuelle : dans le volet Monitoring de la VM > Insights > Enable / Activer.

L’activation de VM Insights directement depuis la VM, permet, en même temps d’activer la fonctionnalité VM Insights et d’embarquer la VM dans la solution. Une fois la fonctionnalité activée nous avons une visualisation des dépendances et performances de notre machine virtuelle comme représenté sur les Dashboards ci-dessous :

Visualisation des performances : Indicateur sur l’utilisation de la CPU, sur les espaces disques, les IOPS ou encore l’utilisation de la mémoire.

Visualisation des dépendances : nous permet notamment de voir avec quels environnements échange la VM et sur quels ports ou encore quels processus sont lancés sur la VM.

En ligne de commande

              Comme expliqué précédemment, la fonctionnalité VM Insights se base sur un Log Analytics Workspace. Nous devons donc commencer par en créer un ou récupérer les informations du Workspace déjà existant que l’on souhaite utiliser, ce sera le cas dans mon exemple. Voici le code permettant de récupérer les propriétés d’un Workspace existant puis d’ensuite activer la solution VM Insights :

# Get Log Analytics Workspace properties
$law = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rgName 

#Set in a variable VM Insights solution Name
$SolutionName = "VMInsights"
 
#Enable VMInsights Solution on the Log Analytics Workspace
Set-AzOperationalInsightsIntelligencePack -ResourceGroupName $rgName -WorkspaceName $law.Name -IntelligencePackName $SolutionName -Enabled $true 

Comment embarquer les VMs dans la solution

              Pour embarquer des VMs dans la solution nous pouvons le faire comme expliqué précédemment directement depuis la VM ou bien via PowerShell. Il est important de comprendre comment le lien se fait entre les VMs et la solution VM Insights. Lors de l’activation de la solution pour une VM, 2 agents sont poussés dans la VM. Les agents sont les suivants :

  • Pour les VMs WINDOWS : Microsoft Monitoring Agent et Dependency Agent Windows
  • Pour les VMs Linux : Oms Agent For Linux et Dependency Agent Linux

              Si l’on souhaite déployer VM Insights sur un ensemble de VMs, nous n’allons pas passer par une activation de la solution à la main VM par VM depuis le portail. C’est tout l’intérêt du script PowerShell qui suit :

              Nous commençons par récupérer une liste de VMs pour lesquelles nous souhaitons analyser les performances et dépendances. Ici nous récupérons toutes les VMs d’un groupe de ressources :

# List all VMs in the resource group 
$azVMs = Get-AzVM -ResourceGroupName $rgName

              Ensuite, nous automatisons le déploiement des 2 Agents sur chaque VM de notre groupe de ressource en fonction de l’OS de la machine. Deux paramètres sont importants pour pousser l’installation des agents : l’ID du Workspace et la clé d’accès à ce dernier. Ce qui donne le code suivant :

$PublicSettings = @{"workspaceId" = $law.CustomerId}
$ProtectedSettings = @{"workspaceKey" = $lawKey}

# Push Agents Install on VMS to enable VM Insights
foreach ($vm in $azVMs) {
    # get VM's Os type

    $OsType = $vm.StorageProfile.OsDisk.OsType

    # Filter installation extension name by the Os type of the VM
    if($OsType -eq "Windows"){

        Set-AzVMExtension -ExtensionName "MMAExtension" `
            -ResourceGroupName $rgName `
            -VMName $vm.Name `
            -Publisher "Microsoft.EnterpriseCloud.Monitoring" `
            -ExtensionType "MicrosoftMonitoringAgent" `
            -TypeHandlerVersion 1.0 `
            -Settings $PublicSettings `
            -ProtectedSettings $ProtectedSettings `
            -Location $location

        Set-AzVMExtension -ExtensionName "DependencyAgentWindows" `
            -ResourceGroupName $rgName `
            -VMName $vm.Name `
            -Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
            -ExtensionType "DependencyAgentWindows" `
            -TypeHandlerVersion 9.1 `
            -Settings $PublicSettings `
            -ProtectedSettings $ProtectedSettings `
            -Location $location

    }

    if($OsType -eq "Linux"){

        Set-AzVMExtension -ExtensionName "OMSExtension" `
            -ResourceGroupName $rgName `
            -VMName $vm.Name `
            -Publisher "Microsoft.EnterpriseCloud.Monitoring" `
            -ExtensionType "OmsAgentForLinux" `
            -TypeHandlerVersion 1.0 `
            -Settings $PublicSettings `
            -ProtectedSettings $ProtectedSettings `
            -Location $location

        Set-AzVMExtension -ExtensionName "DependencyAgentLinux" `
            -ResourceGroupName $rgName `
            -VMName $vm.Name `
            -Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
            -ExtensionType "DependencyAgentLinux" `
            -TypeHandlerVersion 9.1 `
            -Settings $PublicSettings `
            -ProtectedSettings $ProtectedSettings `
            -Location $location

    }

    else{

        Write-Host "OS Type :" -ForegroundColor Red -NoNewline
        Write-Host $OsType -ForegroundColor White -NoNewline
        Write-Host "  not supported " -ForegroundColor Red -NoNewline
    }

} 

Création d’alertes

              Pour optimiser la surveillance de la plateforme et pouvoir suivre au mieux les performances de nos VMs, nous pouvons créer des règles d’alerte dans Azur Monitor en se basant sur les insights des VMs. Ici nous allons créer une alerte nous permettant d’être notifié par mail dès lors que l’utilisation de la CPU d’une VM dépasse 80%.

Créer un groupe d’action

              Pour commencer nous devons créer un groupe d’action dans lequel nous allons indiquer quelle action devra être effectuée lors du déclenchement de l’alerte, dans notre exemple un envoie de mail.


# Add new email where alerts should be send
$email = New-AzActionGroupReceiver -Name "alerts-mail" -EmailReceiver -EmailAddress "perfAlert@infeeny.com"

# Add Action group
$act = Set-AzActionGroup -Name "performance alerts" -ResourceGroup $rgName -ShortName "perfalerts" -Receiver $email

#$act = Get-AzActionGroup -ResourceGroupName $rgSocleName -Name "plateform alerts Action Group"
$action = New-AzActionGroup -ActionGroupId $act.id

Ajouter une règle d’alerte

      Maintenant nous créons le critère de l’alerte avec la métrique que nous souhaitons surveiller. Puis on crée l’alerte à laquelle nous allons associer ce critère et le groupe d’action créé juste avant.


### Add metric Rule for CPU ###

#set alert criteria for CPU utilization 
$criteriacpu = New-AzMetricAlertRuleV2Criteria -MetricName "Percentage CPU" `
-TimeAggregation average `
-Operator GreaterThanOrEqual `
-Threshold 80 

#Add alert rule     
Add-AzMetricAlertRuleV2 -Name "Windows and Linux CPU Alerts" `
    -ResourceGroupName $rgName `
    -WindowSize 00:05:00 `
    -Frequency 00:01:00 `
    -TargetResourceScope $rg.ResourceId `
    -Condition $criteriacpu `
    -TargetResourceType microsoft.compute/virtualmachines `
    -TargetResourceRegion $location `
    -ActionGroup $action `
    -Severity 3 

Conclusion

              Pour conclure, grâce à la nouvelle fonctionnalité VM Insights d’Azure Monitor, nous avons un suivi et une vision complète des performances de nos VMs. Cette fonctionnalité nous apporte des Dashboards complets que nous pouvons customiser afin d’afficher les métriques qui nous sont le plus cohérentes.
              Dans cet article, vous avez toutes les informations nécessaires pour déployer la fonctionnalité VM Insights sur vos VMs Azure et générer des alertes vous permettant ainsi de réagir au plus vite en cas d’incident ou de surcharge. Ici nous avons choisi PowerShell mais il est tout à fait possible de déployer la solution via Terraform ou Azure ARM si vous faites de l’InfrasAsCode.

Voici le lien Github vers le script complet :

https://github.com/infeeny/VMInsights/blob/master/VMInsights.ps1

Mise en place d’une architecture Lambda avec Power BI et Logic Apps

Par Nidhal BRIBECH, de la practice Data Experience

  1.     Introduction

 A travers ce tutoriel, nous allons mettre en place une architecture Lambda à l’aide des outils Microsoft à la fois sur le cloud et en local.

L’architecture Lambda permet de stocker et de traiter de larges volumes de données (batch) tout en intégrant les données les plus récentes dans un flux de streaming.

Pour nous rapprocher de cette architecture, j’ai choisi d’utiliser le service Microsoft Azure « Logic App » permettant de récupérer les données sous forme de batch et Power BI en ligne pour la partie donnée en temps réel.    

 2.     Scénario

 Nous souhaitons stocker les tweets provenant des médias français présent sur Twitter à la fois sous forme de fichiers csv dans un blob storage que l’on pourra exploiter une fois que l’on a une volumétrie importante. Mais aussi agrémenter une solution Power BI en ligne qui permettra d’étudier les tweets les plus récents (par exemple tendances des tweets du mois présent).

 3.     Architecture

                                 

 4.     Pré requis

 Créer un compte Twitter pour accéder aux données fourni par l’API (https://twitter.com/).

Installer Power BI Desktop (disponible gratuitement à l’adresse suivante : https://powerbi.microsoft.com/fr-fr/desktop/).

Avoir un compte Power BI (Choisir « partage et collaboration dans le cloud » https://powerbi.microsoft.com/fr-fr/get-started/).

Avoir un compte Azure (Compte gratuit avec 170€ de crédit https://azure.microsoft.com/fr-fr/).

 5.     Créer un blob Storage

 La première étape consiste à créer un blob storage pour stocker les tweets qui remplissent nos critères. Ce type de stockage enregistrera nos données sous la forme de fichiers textes.

 

 

 On renseigne son nom, son type, l’endroit où il se trouve et on renseigne une ressource group (sinon on la crée en même temps que le blob storage en cochant « Create New »).

 On aura besoin de la clé (key1) et du nom (Storage account name) pour la partie Power BI desktop, donc on les garde dans un fichier texte.

 

 

 Par la suite, on crée un container qui va recevoir nos tweets à la manière d’un dossier.

 6.     Créer un Logic Apps

 La logic app va permettre d’exécuter automatiquement un processus qui récupèrera les tweets selon des critères spécifiques, à une fréquence prédéfinie et selon un enchaînement d’opérations.

On renseigne son nom, la ressource groupe (la même que celle du blob storage) ainsi que sa localité.

En cliquant sur Logic App Designer, nous arrivons sur l’interface graphique. Une multitude de triggers (déclencheurs) sont disponibles mais celui qui nous intéresse est « When a new tweet is posted ».

 On se connecte à l’aide de nos identifiants Twitter pour permettre la connexion entre les flux Twitter et la logic app.

 

 On définit les filtres de recherche et l’intervalle entre chaque exécution (dans notre exemple, il s’agit de tweets provenant de comptes d’actualités en France que l’on recherche toutes les 5 minutes).

 Nous récupérons les tweets grâce à ce trigger et allons les traiter avec deux actions.

On crée une action à la suite du trigger (cliquer sur Add an action).

Et nous allons choisir Azure Blob Storage.

Plus précisément l’action « Create blob » pour stocker chaque tweet en fichier unique.

On établit une connexion avec notre container préalablement crée en renseignant un nom de connexion (au choix) puis en sélectionnant le blob storage correspondant :

Une fois la connexion établit, on renseigne le container de réception, le nom des blobs et le contenue des blobs.

Blob name prend comme nom la date au moment de la création du blob suivi de l’extension « .txt » pour que le fichier soit exploitable (on verra cela par la suite sur Power BI).

concat(utcNow(),'.txt')

 Blob content contiendra les éléments que nous souhaitons garder (User Name, CreatedAt et Tweet Text) et on les sépare à l’aide d’un point-virgule pour mieux les délimiter.

concat(triggerBody()?['UserDetails']?['FullName'],';',
triggerBody()?['CreatedAtIso'],';',triggerBody()?['TweetText'])

 

En parallèle à cela, nous allons ajouter une action qui permettra de charger les données dans un tableau de bord Power BI en ligne (service cloud).

Mais avant cela il faut créer un jeu de données sur son espace de travail en ligne (https://app.powerbi.com/).

 Une fois créé, cliquez sur « Créer » en haut à droite, puis sélectionnez « Jeu de données de streaming ».

 

 Il faut choisir « API ».

 

Ensuite, on renseigne les valeurs que l’on souhaite extraire des tweets (TweetText, UserName, CreatedAt).

 Pour cela on renseigne un nom de jeu de données et pour chaque valeur un nom et un type.

On valide la création puis cliquez sur « Terminé ».

 Maintenant que nous avons un jeu de données en ligne, il faut l’agrémenter d’éléments. Donc on retourne sur notre logic app et on ajoute une action en parallèle du blob storage.

 Recherchez Power BI puis sélectionnez l’icône correspondante.

Puis on choisit l’action « Add rows to a dataset » qui va permettre d’ajouter les valeurs à notre jeu de données en streaming.

On renseigne :

·        Le workplace, le dataset et la table de notre application Power BI en ligne.

·        Les valeurs pour les colonnes de notre table à agrémenter.

Sauvegardez en cliquant sur Save puis lancez la logic app (Run). Il faut que les comptes en écoute tweetent pour démarrer le processus automatiquement.

 

Suite à l’exécution nous avons confirmation du bon déroulement des actions.

En retournant sur le container, nous retrouvons les fichiers créés.

Et en allant sur Power BI dans le cloud, on retrouve aussi les données des tweets.

 En sélectionnant la visualisation Table puis en cochant les divers champs, on retrouve les tweets stockés depuis la première itération du Logic App. On pourrait ajouter un filtre afin de n’afficher que les tweets du mois en cours pour faire une analyse en temps réel.

 

7.     Exploitation sur Power BI desktop.

 Pour récupérer les fichiers et les exploiter sur Power BI desktop, on procède d’abord en ajoutant les données via le cloud « Azure ». Obtenir les données -> Plus.

On choisit « Stockage Blob Azure ».

 On renseigne les informations de connexion concernant notre blob storage (blob storage -> Access keys).

On renseigne la clé (key1), puis se connecter.

 

En cochant sur le container « tweets », on retrouve tous les fichiers blob créés (si rien ne s’affiche cliquez sur le bouton de rafraîchissement en haut à droite).

Puis chargez les en cliquant sur « Charger ».

Vous verrez qu’une table a été créée avec plusieurs champs. Cliquez sur « Modifier les requêtes », à partir du menu Accueil.

Nous retrouvons nos éléments, cependant il est nécessaire de les extraire pour en tirer les informations que l’on a concaténées.

Pour cela, il faut faire clic droit sur la colonne « Content » puis choisir Transformer -> Texte.

 On trouve les éléments mit à la suite et bien séparé de points-virgules. On peut ainsi transformer cette colonne en plusieurs données exploitables. Clic droit sur la colonne « Content » puis Fractionner la colonne -> Par délimiteur.

 On choisit les paramètres ci-dessous :

·        Délimiteur : Point-virgule.

·        Fractionner à : Chaque occurrence du délimiteur.

 On a bien les colonnes correspondantes aux éléments des tweets que l’on a souhaité garder, on peut changer le nom des colonnes pour plus de clarté.

Si une 4ème colonne sans données est créée, il suffit de la supprimer (clic droit sur la colonne, supprimer).

 

Voici les tweets que l’on a enregistré depuis le début du processus. On pourra faire une analyse une fois le volume de données devenu très important.

 

8.     Conclusion

 En suivant ce tutoriel, on retrouve une architecture lambda, d’un côté Power BI desktop avec les données stockées dans un blob storage, de l’autre Power BI Cloud avec les données les plus récentes et en temps réels.

Ainsi on peut choisir des axes d’analyses variés pour représenter l’information et le sens que nos données fournissent.

Cependant, cette architecture peut poser un problème car chaque tweet est stocké deux fois (fichier blob et ligne dans le cloud Power BI) ce qui pourrait s’avérer couteux en stockage avec une volumétrie de données importante.

[Power BI][Azure Analysis Service] Comment importer un modele Power BI dans Azure Analysis Services

De nombreux concepteur de rapports Power BI se sont souvent posé la question :

Comment industrialiser mon rapport et partager mes données avec mes collègues de bureau de manière automatisée.

Mon model est bon, la direction m’a validé les chiffres il ne reste plus qu’a le mettre en production malheureusement il est disponible que dans mon Power BI que j’ai créé, mes collègues ne peuvent pas utiliser ma base pour venir créer leurs rapports ni même agrémenté mes formules DAX avec d’autres formules sans devoir créer de nouveaux modèles.

Cette réflexion reviens à dire : Comment intégrer mon modele Power BI dans une instance Analysis Services en mode Tabulaire de manière automatique.

Réponse : Il existe 2 méthodes :

Méthode 1 : Je crée un nouveau projet Visual studio et je développe ce qui a été réalisé dans Power BI

Méthode 2 : J’importe depuis le portail Azure les données depuis mon fichier Power BI et l’outil va créer automatiquement le modèle tabulaire présent dans le fichier Power BI Desktop.

Dans ce blog je vais vous présenter brièvement la méthode N°2 qui permet d’uploader rapidement un modèle tabulaire issus de Power BI desktop

1

 

Cette option est en mode préview actuellement sur le portail, elle n’est pas encore complètement achevé et donc elle est susceptible de comporter des erreurs.

On sélectionne un fichier Power BI Destktop (on voit que nous pouvons importer des modèles depuis un Datawarehouse ou une SQL database également)

2

 

Pour notre test nous avons sélectionné le fichier pbix de notre choix :

3

 

Il nous importe le modele avec les formules en DAX qui sont incorporé dans notre projet Power BI desktop:

4.jpg

Il ne reste plus qu’a se connecter a ce modèle depuis notre instance Azure Analysis Services.

Les formules en DAX et le code M de transformation des données étant repris  lors de cet import.

Julien PIERRE

Consultant MSBI

[Azure] Optimisation de vos chargement dans Azure Datawarehouse

Contexte :

Suite à la mise en place de données dans un projet Azure chez un client nous avons été confronté à des problèmes de performance lors de l’intégration des données dans notre Azure Datawarehouse

Afin de gagner du temps nous récupérons différentes interfaces sous format Csv que nous transformons en format .parquet

L’intérêt du format parquet est de gagner du temps lors de l’exploitation de ces différentes interfaces car le format parquet permet de structurer les données et de stocker les données de manière pré formaté.

Dans notre cas nous avons souhaité héberger ces données dans un service distribué comme Azure Data Lake.

Ce service est un service distribué qui permet de stocker les fichiers « formatés ». L’intérêt de ce système de stockage est de gagner du temps sur l’interrogation de ces fichiers car nous sommes sur un système distribué.

Lire la suite

[Azure] Installation d’une Gateway DataFactory

Contexte : Dans notre exercice nous essayons de réaliser une copie de données entre des données en local et Azure Data Lake store.
Pour réaliser ce transfert nous allons utiliser le service Azure Data Factory et nous avons besoins de réaliser une Gateway pour sécuriser les données entre notre machine local et notre Azure Data Lake Store.

Lire la suite

//Build 2017 Day1 – Sessions

Pour cette première journée j’ai participé à plusieurs sessions:

1- Bring your desktop apps to UWP and the Windows Store using the Desktop Bridge

Dans cette session on nous a expliqué le but du bridge => Créer un pont entre l’ancien App model de Windows qui existe depuis les premières versions de celui-ci et le nouveau App model qui existe depuis 2011/2012 avec Windows 8.

Avantages:

  • Simplicité
  • Pas d’élévations de droit lors de l’installation/utilisation
  • Installation sûre (qui ne va pas aller modifier les clés de registre par exemple)
  • Offrir la possibilité d’avoir des MAJ automatiques et différentielles
  • Ouverture à la monétisation simple (via le store)
  • ….

Le fonctionnement est assez simple, il faut fournir un MSI à l’outil, celui-ci va le convertir en APPX (Si la conversion ne marche pas, c’est qu’il faut changer du code qui n’est pas supporté (ou pas encore) par le Bridge)

Le Bridge est en constante évolution avec le support de plus en plus d’API: la règle est simple, toutes les API publiques – non cassées – sont ou seront supportées.

Les dernières nouveautés sont:

  • Support du préinstall
  • Objets com
  • Déclaration de règles firewall
  • Support du wack
  • Support des applications sans MSI (un .exe avec des dll)

La version complète d’office qui sera bientôt dans le store utilise ce même Bridge !

 

2- Bot capabilities, patterns and principles

Cette session est orientée sur les patterns qu’il faut/qu’il ne faut pas utiliser pour créer un bot, exemple :

  • A NE PAS FAIRE => un bot avec un seul dialog (1 question) qui utilise 100 LUIS intents (choses que le bot peut faire) avec 100 différents énoncés == 10000 diférentes choses que l’utilisateur peut dire (ET n possibilités non prévues)
  • A Faire => Guider l’utilisateur, avec des questions précises, avec une UI (questions avec des boutons de réponses)

3- Cortana skills development: Get started

Super nouveauté qui ouvre énormément de  possibilités . Malheureusement inutile en France pour l’instant, Cortana skills n’est disponible qu’aux USA et on a pas d’informations d’infos sur la date de disponibilité dans les autres pays.

Cortana skills permet de déployer des skills (l’équivalent d’un bot) directement dans Cortana (PC, téléphone ou autre device qui supporte Cortana)

Un skill c’est une « unité d’intelligence conversationnelle » qui aide les utilisateurs via un service, ou autrement un Bot qui utilise le channel Cortana (et donc l’UI de cortana) pour interagir et fournir de l’information à un utilisateur.

L’authentification avec un compte d’une organisation est possible, la récupération des données de l’utilisateur aussi (par le service/bot)

On a eu droit à deux démos :

  • Commande d’une pizza Domino’s (sans application installée sur le PC)
  • Recherche d’un collègue pour faire du code review (le bot va chercher de l’information avec Microsoft Graph => scénario avec l’authentification)

Ressources dispo ici

4- Snapshot debugging and profiling in Microsoft Azure: Next generation diagnostics for your in-production cloud apps 

Super session qui montre les futures fonctionnalités de Visual Studio/Azure (qui seront complètement ouverts en preview à la fin de l’été).

  • Snapshots

Cette nouvelle fonctionnalité d’Application Insights permet de prendre un snapshot de l’application en prod quand une exception se déclenche via la télémétrie.

On peut aussi via Visual Studio Enterprise avoir des snappoints ( l’équivalent d’un point d’arrêt mais pour faire un snapshot et non pas arrêter l’exécution du code) et des logpoints (qui nous permettent d’insérer des logs sans redéployer l’application ni écrire du code !)

Les snapshots sont téléchargeable et peuvent être rejoués dans Visual studio.

  • Application Insight Profiler

Outil pour analyser et améliorer les applications déployés dans Azure pour plus détails voir https://azure.microsoft.com/en-us/blog/app-insights-app-map-and-profiler/

//Build 2017 Day1

Cette année la build est de retour à la « maison » à Seattle. Avec @timothelariviere nous couveront les trois jours de la conférence.

Contrairement aux anciennes version de la //Build, cette année la première journée est consacrée à l’IA et Azure

Les annonces de la Keynote:

  • Quelques chiffres:
    • 500 millions de devices sous Windows 10 !
    • 100 millions d’utilisateurs actifs office 365
    • 12 millions d’organisations dans l’Azure Active Directory
    • 90% des TOP 500 entreprises utilisent le Cloud de Microsoft
  • Microsoft passe du Mobile First Cloud First au Intelligent Cloud/Intelligent Edge
  • Azure Iot Edge (fonctionne sur Windows/linux et les petits devices)
  • Plusieurs démos qui démontrent l’utilisation de l’IA : Workplace safety (analyse en temps réel de flux vidéos pour détecter les risques sur un chantier) , Intelligent meetings, Cortana …
  • Azure :
    • Cloud shell : CLI disponible directement dans la version Web (et app) d’azure, sans rien installé !
    • Azure mobile App dispo sous iOS et Android (la version UWP arrive bientôt)
    • Debug de la prod avec des snapshot (super feature)
    • MySQL et PostgresSQL as a service (grosse annonce)
    • Azure Cosmos DB
    • Azure Stack (l’extension d’azure pour avoir un « Azure en local »)
  • Visual Studio 2017 for mac passe en GA avec .Net Core 2.0 en preview !
  • Support des Azure Functions et des logic Apps dans VS 2017
  • Cognitive Services : 4 nouveaux services : Bing custom search, custom Vision Service, Custom Decision Service et Video indexer
  • Bots : Trois nouveaux canaux : Cortana Skills, Skype for Business (ENFIN !) et Bing.
  • AI translation for PowerPoint : plugin de traduction en live d’une présentation PowerPoint

Et pour finir, je vous laisse admirer cette vidéo =>

Création d’un cluster SQL SERVER 2016 dans Azure (IAAS)

Objectif :

L’objectif de ce blog est de vous présenter toutes étapes permettant de créer un système de haute disponibilité  SQL SERVER dans Azure

Voici un peu le détail de l’architecture :

1

Dans ce blog nous allons aborder les sujets suivants :

  • Création du réseau virtuel permettant aux machines de communiquer
  • Création des VM nécessaires à notre architecture
  • Installation des Contrôleurs de domaines depuis Azure
  • Préparation du cluster
  • Installation de SQL Server 2016 en mode cluster

Pré requis :

  • SQL SERVER 2016
  • Un compte Azure
  • 1 réseau virtuel
  • 4 machines Virtuelle :
  • 2 Contrôleurs de domaine (DC1 / DC 2) (Windows Server 2012 R2)
  • 2 machines SQL SERVER 2016 (Windows Server 2012 R2)
  • De l’huile de coude et un peu de bonnes volontés 🙂

Partie 1 : Création d’un réseau virtuel 

Afin que nos machines puissent communiquer nous allons créer un réseau virtuel :

2

3

Le reseau est créé :  4

Partie 2 :Création des 4 machines virtuelles nécessaires à notre configuration :

Dans le portail Azure il faut vous rendre dans l’onglet :

Machine Virtuelles :

5

Nous recherchons Windows Server 2012 R2 DATACENTER

6

Une fois la sélection faite nous allons choisir le type de machine pouvant héberger notre « labs » de test :

7

Dans notre cas j’ai choisis 2 machine A0 de base pour les machines Active Directory et 2 machines A1 de base pour les machines SQL Server.

Il est évident que pour des configurations de production ces machines seraient trop juste et risquerai d’être sous dimensionnée par rapport à vos besoins.

Suivant vos besoins vous être libre de choisir les machines qui se rapproche le plus de votre usage.

Voici le détail de création des machines, vous devez répliquer cette opération autant de fois que votre architecture le nécessite.

8

9

 

Partie 3 Installation du contrôleur de domaine :

Un fois la machine DC1 installée connectez vous en remote et installez l’active Directory :

Rendez vous dans Add Roles and Features sur le Serveur :

17.jpg

Choisissez le service Active Directory

14

Une fois installé rendez vous dans l’onglet active directory :

18

Une fois réalisé il faut promouvoir le controleur de domaine :

19

Votre Active Directory est créée

Il faut rajouter le DNS de la machine primaire a toutes les machines du réseau :

Rendez vous sur le portail azure et dans les paramètre de votre machine modifier le serveur DNS Mettez l’adresse du DNS principal comme celui de votre controleur de domaine que vous venez de créer :

22

Ajouter le DC2 en nouveau contrôleur de domaine sur le domaine :

24

Si vous avez besoin d’aide pour l’installation d’un contrôleur de domaine vous pouvez suivre les étapes suivantes :

http://www.windows8facile.fr/windows-server-2012-installer-active-directory-dns-dhcp/

Une fois votre active directory installé vous pouvez ajouter vos 2 machines SQL au Domaine.

N’oubliez pas d’ajouter le DNS secondaire a vos machine le DNS secondaire correspondant a l’adresse IP de la machine DC2.

23

 

Une fois les machines SQL relié on va préparer l’installation du cluster :

On va ajouter 2 disques qui nous permettrons de faire la réplication :

Dans le portail Azure réaliser l’étape suivante :

25

Le disque va s’ajouter sur la machine il faut le formater et le monter pour qu’il soit disponible :

Aller dans le computer management :

26

Ensuite Formater le volume et attribuez lui la lettre F comme lettre de montage :

 

Sur la machine nous allons installer le cluster

27

Sur la machine nous allons installer le cluster ( On retourne dans le menu Add Roles and Features )

28

En suite connecter vous au portail de configuration et effectuez les opérations suivantes :

29

Cliquer sur Validate Configuration et effectuer les opérations suivantes :

3031323334

Il faut en suite modifier les propriétés de l’adresse IP du Cluster :

35.jpg

Rendez-vous sur le DC1 ou DC2 et ajouter un répertoire qui va nous permettre de créer le Quorum du cluster :

C:\Quorum :

Ajouter les droits en lecture / Ecriture au cluster sur ce répertoire (le cluster étant un ordinateur)

1

 

2

Retourner sur la machine SQL1 et réaliser les actions suivantes :

3

 

476

Telechager DataKeeper qui est un outil qui va nous permettre de simuler le SAN d’hébergement de notre cluster et le miroir de stockage sur azure.

Datakeeper est disponible ici et peut être demandé en version de démonstration pour 14 jours.

Pour plus d’information : http://us.sios.com/products/datakeeper-cluster/

Installer Datakeeper et ajouter y votre licence :

8

Ouvrir l’outil Datakeeper et réaliser les actions suivantes :

Creer un job :

Connectez vous  aux deux serveurs SQL ( SQL1 et SQL2 )

910

Nommer le job comme vous le souhaitez.

Attention pour fonctionner DataKeeper necessite qu’un second disque soit monter pour réaliser le miroir ( action que nous avons réaliser précédement)

Içi nous allons « mirrorer » les disques F que nous avons monter précédements, ils permetteront d’heberger notre cluster :

1112

Nous allons creer un mirroir synchrone pour notre cas :

13

Une fois l’action réalisé DataKeeper nous informe que le volume est éligible au cluster cliquez sur oui :

 

14

Dans DataKeeper verifier que la synchronisation fonctionne bien :

 

15

Partie 4 :Installation de SQL Server 2016 :

Sur la machine SQL 1 :

16171819

Dans notre cas nous allons faire demarrer le service avec notre compte administrateur mais l’idéal est de creer un compte de service spécifique pour le demarrage des services

2021

En suite lancer l’installation suivante :

2223242526

On spécifie une IP pour le Cluster SQL Server

27

Ne pas oublier d’ajouter un administrateur

28

 

Rendez-vous sur la machine SQL2 :

313233343536

Votre cluster est prêt :

N’oubliez pas d’activer les ports distants pour accéder depuis l’extérieur a SQL Server  :

Et d’installer le management studio :

40

pour l’installer cliquer sur le liens suivant qui va vous envoyer sur une page web pour telecharger l’outil et l’installer :

39

Merci a Datakeeper pour leur aide dans l’élaboration de ce tutoriel :

Si vous avez besoins voici des liens utiles :

Creating a SQL Server 2014 AlwaysOn Failover Cluster (FCI) Instance in Windows Azure IaaS #Azure #Cloud

https://azure.microsoft.com/fr-fr/documentation/articles/active-directory-new-forest-virtual-machine/

https://channel9.msdn.com/Series/Windows-Azure-IT-Pro-IaaS/05

https://azure.microsoft.com/fr-fr/documentation/articles/active-directory-install-replica-active-directory-domain-controller/

https://blogs.technet.microsoft.com/askcore/2015/06/24/windows-server-failover-cluster-on-azure-iaas-vm-part-1-storage/

https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-classic-portal-sql-alwayson-availability-groups/

Bon courage.

Julien PIERRE                                                                                                                                       Consultant MSBI