Articles Tagués ‘Azure Automation’

Azure Guys, Hello again,

Je voulais partager avec vous un (free) eBook Azure assez intéressant.

Il présente la suite Operations Management Suite (OMS) d’Azure et décrit pas mal de fonctionnalité intéressante, notamment le Backup & Recovery sur Azure (Azure Backup & ASR), Azure Automation, Desired State Configuration (DSC) ainsi que tous les services liés à l’analyse et configuration réseau Azure.

L’eBook est organisé en 12 Chapitres, à savoir :

  • Chapter 1: Introduction and Onboarding
  • Chapter 2: Searching and Presenting OMS Data
  • Chapter 3: Alert Management
  • Chapter 4: Configuration Assessment and Change Tracking
  • Chapter 5: Working with Performance Data
  • Chapter 6: Process Automation and Desired State Configuration
  • Chapter 7: Backup and Disaster Recovery
  • Chapter 8: Security Configuration and Event Analysis
  • Chapter 9: Analyzing Network Data
  • Chapter 10: Accessing OMS Data Programmatically
  • Chapter 11: Custom MP Authoring
  • Chapter 12: Cross Platform Management and Automation

 

Plusieurs scripts vous sont fournis avec l’eBook (cf Liens Github fournis dans l’eBook).

Vous pouvez télécharger l’eBook depuis le bouton Download ci-dessous :

 

 

Microsoft a récemment publié un nouvel (free) eBook dédié à l’Administration des infrastructures Linux (IaaS) sur Azure V(irtual) M(achine).

Que vous soyez Développeur ou Administrateur Cloud, vous découvrirez à travers cet eBook comment déployer, gérer et administrer des Workloads Linux sur Azure.

Plus précisément, vous apprenez (entre autres) :

  • Comment ré-utiliser les mêmes commandes et tools que vous connaissez sur Azure
  • Comment utiliser Ansible pour gérer vos instances Linux dans un environnement Azure
  • Comment automariser vos déploiements Linux à l’aide d’Azure Resource Manager (ARM), Windows PowerShell et l’interface Azure CLI (2.0)
  • Enhance your Linux security and use Azure identity management services
  • Comment gérer vos Containers dans un environnement Azure

 

Note : Azure prend en charge au moment de la rédaction du présent post plusieurs distributions Linux, cela inclut : RedHat, SUSE, Ubuntu, CentOS, Debian et CoreOS. De nouvelles distributions Linux seront prises en charge prochainement. Vous pouvez vous abonner sur le Blog officiel Azure pour rester informé des dernières Updates relatives à Azure.

 

Consultez la Table des Matières ci-dessous pour en savoir plus :

 

L’eBook « Hands-On Linux Administration on Azure » peut être téléchargé directement depuis le lien/bouton suivant:

 

 

Bonne lecture à tous :).

A bientôt.

Introduction 

Pour certains : Cloud = réduction des coûts IT, alors que cela n’est pas forcément vraie !

Quand on adopte le Cloud, c’est surtout pour bénéficier de la puissance d’un CloudOs : puissance de calcul, Sclabilité, Fléxbilité …

Plusieurs clients déployant des Workloads dans le Cloud ou migrant celles hébergées initialement OnPrem, se rendent compte que les factures à la fin du mois peuvent vite devenir salées car souvent oublient de définir une gouvernance Azure « Financière » qui leur permettent de contrôler, comment les ressources Cloud sont déployées, consommées et monitorées.

J’ai décidé aujourd’hui de partager avec vous quelques Best Practices ainsi que des « Tips & Tricks » vous permettant de contrôler et d’optimiser votre conso Azure.

Plus précisément, nous allons parler des items suivants :

  • Azure Advisor
  • Les Reserved Instances
  • Azure Hybrid Benefit
  • Arrêts/Démarrages auto des VMs Azure
  • Utilisation des Stratégies (Policies) Azure
  • Utilisation des Tags
  • Utilisation du Stockage Azure de type « Cool & Archive »
  • Utilisation d’Azure Budgets
  • Utilisation de l’Auto-Scaling
  • Dimensionnement des ressources Azure
  • Utilisation des Souscriptions Azure Dev/Test
  • CleanUp des ressources Azure

 

Bonne lecture à tous :).

 

#1 : Azure Advisor

Azure Advisor est un Consultant Azure « Virtuel » et « Automatisé » qui vous aide à optimiser et sécuriser vos déploiements Cloud mais aussi à réduire vos coûts Azure. Il s’appuie sur tout un ensemble de « Best Practices » et règles de conformité/sécurité standards.

En effet, Azure Advisor examine la configuration de tous vos services Azure déployés et vous propose des recommandations dans les domaines suivants

  • Haute Disponibilité
  • Sécurité
  • Performance
  • Coût

 

Le périmètre d’analyse Azure Advisor est limité aux :

  • Abonnements
  • Groupes de Ressources

 

Vous pouvez utiliser Azure Advisor pour analyser/évaluer la configuration de vos ressources, Az Advisor pourra ensuite vous proposer des recommandations en cas de sous-utilisation de certaines Workload tels que les VM Azure.

Dans l’exemple suivant, Azure Advisor nous fait part de deux recommandations assez intéressantes :

  • Downsizer plusieurs VM Azure car celles-ci sont sous-utilisées, cela nous fera apparemment économiser +2200€ /an
  • Supprimer une Adresse/Interface IP Public qui n’est apparemment, associée à aucune ressource Azure, cela nous fera +30€ d’économie.

Azure Advisor : Pricing 

Azure Advisor est un service gratuit :).

A noter tout de même que vous avez la possibilité de souscrire à un panel d’options de support (AzAdvisor) à partir de 24€.

eBook Azure Advisor : j’ai récemment publié sur BecomeITExpert.com un eBook dédié à Azure Advisor, Cliquez ici pour en savoir plus.

 

#2 : Azure Reserved Instances

Azure Reserved Instances (Azure RI)  vous permettent de réduire considérablement votre consommation Azure (jusqu’à 72%) en vous engagement sur 1 ou 3 ans.

Le principe est simple : plus on s’engage dans le temps pour consommer, plus on obtient de remise.

En fonction de la durée d’engagement (1 ou 3 ans), vous pouvez obtenir des remises pouvant atteindre les -72%.

Tip : vous pouvez atteindre 80% de remise si vous activez l’Azure Hybrid Benefit‘. Voir section suivante pour en savoir plus.

 

Services concernés par Azure RI

Les réservations concerne uniquement le Compute (Puissance de calcul). Les RI peuvent être achetées pour les services Azure suivants :

  • Azure VM
  • Azure Cosmos DB
  • Azure SQL Database
  • Azure SQL Data Warehouse
  • App Service

 

Note importante : les réduction de coût Azure via les RI concerne uniquement la puissance de calcul (Compute). Le coût relatif au stockage, réseau, licences (eg : Azure SQL) ne sont pas concernées les instances réservées.

 

Pré-requis 

Pour pouvoir acheter des instances réservées, vous devez avoir le rôle « Owner /Propriétaire » au niveau de l’abonnement.

 

Qui peut acheter des Instances réservées ?

Pour pouvoir acheter des instances réservées, vous devez avoir le rôle « Owner /Propriétaire » au niveau Souscription de type :

  • [EA] Enterprise Agreement (Offres : MS-AZR-0017P ou MS-AZR-0148P)
  • Pay-As-You-Go (Offres : MS-AZR-0003P ou MS-AZR-0023P)
  • Microsoft Customer Agreement.

Si vous êtes CSP (Cloud Solution Provider), vous pouvez utiliser soit le Portail Azure ou le Centre Partenaire pour acheter des Réservation Azure..

Modalités de paiement 

Vous pouvez payer une réservation à l’avance ou tous les mois. Une même réservation avec paiement initial et avec paiements mensuels a le même coût total : vous ne payez pas de frais supplémentaires si vous optez pour le paiement mensuel.

  • Note : Le paiement mensuel est disponible pour les réservations Azure, et non pour les produits tiers.

 

1 ou 3 ans ? combien puis-je économiser exactement ?

Seul la Calculatrice Azure peut répondre à ce type de question :).

Voyons combien nous coûtera une VM Windows « Standard_B4ms » réservée pendant 3 ans, et hébergée en France (Central).

  • Rendez-vous sur Calculatrice Azure, et ajoutez « Machine Virtuelle« .
  • Configurez les options suivantes :
    • Région : France Central
    • Guest OS : Windows
    • Niveau : Standard
    • SKU : B4ms

 

Pour du Pay-as-you-Go (sans engagement), cette VM nous coûtera 163,52$ /mois

Calculons maintenant le prix de cette même VM avec un engagement sur 3 ans (Réservation pendant 3 ans)

Comme indiqué dans la capture d’écran ci-dessus, nous économisons ~100$ /mois avec un RI de 3 ans : 3600$ sur les 3 ans, ce qui n’est pas négligeable du tout.

 

Acheter des Reserved Instance

Cliquez ici pour acheter des instances réservées Azure.

Ce Blade vous permet également de visualiser les RI déjà achetées !

Dans l’exemple suivant, nous allons acheter une instance réservée de VM, commencez par cliquer sur « Acheter maintenant »

Cliquez sur « Acheter » sous « Machine Virtuelle » :

Le Menu suivant apparaît, vous pouvez définir des filtres (eg : dureé d’engagement 1an ou 3 an, région Azure…) :

Il suffit de sélectionner la VM qui vous intéresse pour la réserver pendant 1 ou 3 ans, vous pourrons ainsi réduire votre conso Compute Azure.

Pour en savoir plus sur les instance Réservées Azure, je vous invite à consulter cette page.

Information utile

Les réservations peuvent être annulées à tout moment, vous switcherez automatiquement en mode Pay-as-you-Go dès annulation d’une réservation.

 

#3 : Azure Hybrid Benefit

Azure Hybrid Benefit est une option tarifaire qui vous permet d’étendre vos Licences Windows Server et SQL Server dans le Cloud Azure.

Si vous disposez des licences Windows Server ou SQL Server via contrat SA (Software Assurance) ou équivalent (Licences de type EAS, Abonnement SCE ou Abonnement Open Value), sachez que vous pouvez les réutiliser pour vos Workloads Azure (Azure VM, Azure SQL, ou SQL Server sur des VMs Azure), et réduire le coût de ces ressources de manière considérable.

Vous économisez généralement jusqu’à 80% quand vous combinez Azure Hybrid Benefit avec les instances réservées (RI) Azure.

 

Source : Microsoft Docs

 

Services concernés par Azure Hybrid Benefit

La liste des services/produits est la suivante :

  • Windows Server Standard Edition avec Software Assurance
  • Windows Server Datacenter Edition avec Software Assurance
  • SQL Server Enterprise Core avec Software Assurance
  • Azure SQL Database

 

HowTo : activer Azure Hybrid Benefit

Azure Hybrid Benefit peut être activé lors du déploiement d’une nouvelle VM, vous pouvez également l’activer sur des VMs existantes.

Il suffit de répondre « Oui » au niveau de l’option « Vous disposez déjà d’une licence Windows Server » lors du déploiement d’une nouvelle VM Azure.

Vous devez ensuite confirmer cela en cochant « Je confirme que j’ai une licence Windows Server avec Software Assurance… » :

Si vous avez oublié de le faire pour vos anciens déploiement VMs, vous pouvez toujours activer l’Azure Hybrid Benefit au niveau du Blade « Configuration » de vos VMs, voir exemple suivant :

Il s’agit ici d’une méthode manuelle, qui n’est bien évidemment pas la plus adaptée quand il s’agit d’un environnement Azure avec plusieurs dizaines ou centaines de VMs. Cela peut être réalisé de manière automatisée via des scripts PowerShell (Update-AzVM) ou Az CLI (az vm update).

Tip : les commandes PS et Az CLI qui vous permettent d’updater la configuration de vos VMs pour activer Azure Hybrid Benefit sont listées ci-dessous :

Commandes PowerShell

$vm = Get-AzVM -ResourceGroup "saisir_ici_leNom_de_votre_RG"

$vm.LicenseType = "Windows_Server"

Update-AzVM -ResourceGroupName "saisir_ici_leNom_de_votre_RG" -VM $vm

Commande Az CLI (2.0)

az vm update --resource-group "saisir_ici_leNom_de_votre_RG" --set licenseType=Windows_Server

 

Forcez l’utilisation d’Azure Hybrid Benefit

Perso, pour mes clients disposant déjà d’un contrat SA, je déploie plutôt une Policy Azure qui exige l’activation d’Azure Hybrid Benefit pour tout nouveau déploiement de VM, cela permet de s’assurer que toute VM déployée est configurée avec Hybrid Benefit.

Le code JSON de la Policy est le suivant :

{
"type": "Microsoft.Authorization/policyDefinitions",
"name": "enforce-hybrid-use-benefit",
"properties": {
"displayName": "Enforce hybrid use benefit",
"description": "This policy will enforce usage of hybrid use benefit.",
"parameters": {},
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"in": [
"Microsoft.Compute/virtualMachines",
"Microsoft.Compute/VirtualMachineScaleSets"
]
},
{
"field": "Microsoft.Compute/imagePublisher",
"equals": "MicrosoftWindowsServer"
},
{
"field": "Microsoft.Compute/imageOffer",
"equals": "WindowsServer"
},
{
"field": "Microsoft.Compute/imageSKU",
"in": [
"2008-R2-SP1",
"2008-R2-SP1-smalldisk",
"2012-Datacenter",
"2012-Datacenter-smalldisk",
"2012-R2-Datacenter",
"2012-R2-Datacenter-smalldisk",
"2016-Datacenter",
"2016-Datacenter-Server-Core",
"2016-Datacenter-Server-Core-smalldisk",
"2016-Datacenter-smalldisk",
"2016-Datacenter-with-Containers",
"2016-Datacenter-with-RDSH"
]
},
{
"field": "Microsoft.Compute/licenseType",
"notEquals": "Windows_Server"
}
]
},
"then": {
"effect": "deny"
}
}
}
}

Après implémentation de cette Policy, si l’équipe Ops Azure tentent de déployer une nouvelle VM sans activation de l’Azure Hybrid Benefit, elle recevra le message d’erreur suivant :

 

Combien puis-je économiser avec Azure Hybrid Benefit ?

Microsoft propose un outil (Web) qui vous permet de calculer combine vous pourrez économiser avec l’activation de l’Azure Hybrid Benefit, l’outil est disponible depuis cet URL.

Dans l’exemple suivant, nous faisons un calcul simple sur la base de 100 Licences Windows Server (Datancer) qui seront activées dans Azure via l’offre Hybrid Benefit. Pour bénéfier de l’offre Hybrid Benefit, les VMs Azure sur lesquelles vos Licences SA seront activées doivent respecter certaines SKU, dans l’exemple suivant, la VM SKU D3 v2 est sélectionnée :

 

Comme montré dans la capture d’écran, grâce à Azure Hybrid Benefit, nous économisons presque 25.000€ /an pour 100 Licences Windows Server.

Cela dû au fait qu’avec Azure Hybrid Benefit, vous économiserez le coût de la Licence Windows Server (Standard ou Datacenter) et vous payerez uniquement les frais liés à l’infrastructure Azure hébergeant votre VM :

image 1

 

Consultez cette page pour en savoir sur Azure Hybrid Benefit

 

#4 : Configurer des arrêts/démarrages auto sur vos VMs

Planifier des arrêts et démarrages automatiques sur vos VMs Azure non critiques/hors production: Dev, Recette, Intégration, Sandbox…

Cela vous permet de réduire vos coûts Azure de manière considérable (jusqu’à 66%).

Prenons l’exemple d’une VM à 100$/mois qui est utilisée uniquement 7 ou 8 heures par jour, si vous planifiez son arrêt/démarrage automatique, vous serez facturés uniquement pendant les 7/8 heures d’exécution, vous paierez donc 100$ /3 = 33,33$ au lieu de 100$.

Options d’arrêt/démarrage auto

Il existe plusieurs options/fonctionnalités vous permettant de planifier des arrêts/démarrage auto de vos VMs.

  • Fonctionnalité Buit-in appelée « Arrêt automatique« , disponible au niveau de chaque VM
      • Notez que cette feature ne vous permet pas le démarrage automatique de la VM, cela devra donc se faire à la main ou via un scheduler/script.

  • Utilisation d’Azure Automation : je vous invite à consulter cette page pour en savoir plus
    • Note : un post dédié à ce sujet est en cours de finalisation, n’hésitez pas à vous abonner sur mon Blog pour être informé dès sa publication.

 

#5 : Définir et Appliquer des Stratégies (Policies) Azure

Azure Policy une composante critique et importante du modèle de gouvernance global Azure.

Les Stratégies Azure vous permettent de définir vos standards de sécurité/conformité, et s’assurer que les ressources déployée sont « Compliant » depuis le déploiement jusqu’à exécution/utilisation.

Azure Policy peut être utilisé pour contrôler le type de SKU pouvant être déployé dans vos environnements Azure.

Le use-case qui revient le plus, est l’utilisation d’Azure Policy pour forcer l’utilisation de certains SKU de VM Azure (SKU Whitelisting) pour éviter l’utilisation de certains « SKU Monster » comme la M Serie (Up to 128 vCPUs /3.8TB de RAM) pouvant générer une consommation Azure très importante.

Dans l’exemple suivant, nous allons utiliser Azure Policy pour autoriser que les Azure VM SKU suivants :

D Serie, plus précisément :

  • D1_v2
  • D2_v2
  • D3_v2

Pour ce faire, sélectionnez votre abonnement (ou un RG si vous souhaitez appliquer cette Stratégie au niveau d’un RG), cliquez sur « Stratégies« , cliquez ensuite sur « Assigner une stratégie« , l’assistant s’affiche et vous demande de renseigner certains valeurs de paramètres.

Cliquez sur au niveau de la définition de la stratégie, et cherchez la définition SKU, comme montré dans la capture d’écran suivante :

Sélectionnez « Références SKU de machine virtuelle autorisées« , attribuez un nom à votre Policy Assignment, et cliquez sur Suivant pour continuer.

Sélectionnez les SKU de VM à autoriser (onglet « Paramètres« ), dans l’exemple suivant, nous allons sélectionner les 3 SKU suivants : D1_v2, D2_v2 et D3_v2

Enfin, cliquez sur « Vérifier + Créer » pour assigner votre Policy. Celle-ci apparaît désormais sous « Affectations » :

Comme montré dans la capture d’écran suivant, un Admin Azure tente de créer une VM en SKU G, le déploiement est refusé par la Policy que nous venons de définir, pour pouvoir déployer une VM Azure dans notre environnement, le SKU doit correspondre à D1_v2, D2_v2 ou D3_v2, Vous pouvez ainsi contrôler les coûts Azure générés par vos ressources IaaS Azure VM.

Guide pas à pas sur « Azure Policy »

Si vous voulez en savoir plus sur Azure Policy, je vous invite à consulter le guide pas à pas suivant :

Il s’agit d’un Slideshare, vous pouvez le consulter/télécharger directement depuis ce Link.

 

#6 : Forcer l’utilisation des Tags

Les Tags vous permettent d’organiser vos Ressources Azure de manière logique et par Catégorie.

L’utilisation de Tags dans Azure est primordial, car vous permettra de savoir :

  • Qui est propriétaire de la ressource (Tag : ResourceOwner)
  • La ressource appartient à quelle application (Tag : Application Name)
  • S’agit d’une ressource Dev/PreProd/Prod [Tag : EnvironmentType) ?
  • La ressource a été déployée pour quel besoin (Tag : Project Code)
  • Qui contacter en cas de maintenance de la ressource, si la machine doit être Patchée et rebooté (Tag : TechnicalContact)
  • A qui doit-on (re)facturer cette ressource la fin du mois ? si la notion du charge-Back est adoptée (Tag : CostCenter)

 

Grâce aux Tags Azure, vous pouvez faire un regroupement des coûts (par Appli, par type d’environnement …), ces informations sont très précieuses aux yeux du DAF :).

Les Tags vous permettent de connaitre combien vous coûtent vos ressources Dev à un instant T. Quel est le ResourceOwner qui consomme le plus de Ressources Azure …

Vous aurez compris, Tagger les ressources Azure devient plus qu’une bonne pratique, mais un moyen efficace pour suivre et tracer qui, consomme, quoi dans vos environnements Azure.

 

Si vous voulez en savoir plus sur Azure Tags, je vous invite à consulter le guide pas à pas suivant :

Il s’agit d’un Slideshare, vous pouvez le consulter/télécharger directement depuis ce Link.

 

#7 : Configurer des niveaux d’accès de type « Cool & Archive »

Toutes les données que vous uploadez vers ou générez depuis Azure ne doivent pas nécessairement être stockées sur du stockage Haute Performance. si vous classifiez vos données et créez des catégories avec le niveau de performance exigé, vous allez vite vous rendre compte que plusieurs types de données ne nécessitent pas vraiment un type de stockage très performant.

Azure propose aujourd’hui différents niveaux d’accès au Blog Stockage : Hot, Cool et Archive.

Le niveau d’accès « Hot » est surement dédié aux données qui sont fréquemment utilisées.

Les deux autres Access Tiers (Cool & Archive) peuvent être configurée quand il s’agit des données rarement utilisées (fichiers de Backup, logs…)

Pour économiser le coût lié au Stockage Azure, il est est recommandé d’utiliser les niveaux d’accès Cool & Archive et de n’utiliser le niveau « Hot » que quand c’est nécessaire.

 

Pourquoi utiliser un stockage Cool & Archive plutôt que Hot ?

Voyons d’abord c’est quoi la différence entre les niveaux « Cool » et « Archive ».

Stockage Azure « Cool » 

Le niveau de stockage de type « Cool », concerne les données peu consultées qui doivent être stockées (archivées) pendant au moins 30 jours. Quelques scénarios typiques incluent la sauvegarde des données avant archivage (sur des systèmes d’archivage), des fichiers multimédias, des logs/fichiers d’audit ou encore des données utilisés pour de l’Analytics Big Data…

Stockage Azure « Archive »

Comme son nom l’indique, le niveau de stockage de type « Archive » est un stockage peu coûteux pour les données d’archivage qui seront rarement consultées/accédées. Ce niveau concerne les données qui resteront stockées (archiveées) pendant au moins 180 jours, comme par exemple les données de sauvegarde l’historique médical, les fichiers logs, enregistrements audios/tél…

Quels avantages ?

Le coût d’un compte de Stockage configuré avec les niveaux d’accès « Cool » ou « Archive » sont beaucoup moins cher que celui en niveau d’accès « Hot ».

Consultez le tableau ci-dessous pour en savoir plus

Note importante : l’Archive Storage reste le moins coûteux > le 1 GB est à 0,002$ seulement (pour les 50 premiers TB).

Vous pouvez consulter le document ci-dessous pour en savoir plus sur les niveaux d’accès à Azure Storage

https://docs.microsoft.com/fr-fr/azure/storage/blobs/storage-blob-storage-tiers

 

 

#8 : Pensez à configurer des alertes quand le Budget est dépassé 

Azure fournit aujourd’hui plusieurs outils de gestion des coûts Azure, tels que « Analyse de coût », « Alertes de coût » ou encore « Azure Budgets« .

Ces outils vous permettent d’analyser, évaluer et suivre votre consommation Azure en temps réel.

Nous allons nous intéresser à Azure Budget dans un premier temps.

Grace à Azure Budget, vous pouvez définir votre budget pour une Application, Groupe de ressource, un abonnement …

Azure Budget vous permet également de suivre la consommation de ce budget mais aussi et surtout être alerté en cas de dépassement.

Note importante : en cas de dépassement des seuils budgétaires définis, seules des notifications sont déclenchées (alerte par mail). Aucune de vos ressources n’est impactée ou arrêtée et votre consommation n’est pas arrêtée. Azure Budget est simplement utilisé pour définir un Quota, comparer et suivre les dépenses lors de l’analyse des coûts.

 

Dans l’exemple suivant, nous définissons un budget de 1000€ /mois pour un groupe de ressource dédiée à une Application métier appelée « HRApp » :

Les alertes (par Mail) suivantes sont positionnées/définies :

Enfin, vous pouvez suivre/monitorer la consommation du budget défini depuis la Blade « Budgets » de votre RG ou Abonnement (colonne « Progression ») :

 

Note importante : L’outil Azure Budget est disponible uniquement depuis les abonnements Azure de type EA.

 

#9 : Auto-Scaling 

Un Cloud (Public ou Privé) se caractérise par les notions d’Élasticité et l’auto-Scaling, ce sont aujourd’hui les arguments qui poussent une DSI d’aller vers le Cloud.

L’auto-scaling permet d’étendre ou réduire automatiquement votre environnement Cloud. Vous n’avez plus à intervenir pour déployer des VMs supplémentaires ou supprimer ceux dont vous n’avez plus besoin,

Si vous disposez d’un site web e-Commerce hébergé dans le Cloud, vous pouvez mettre en place des mécanismes d’auto-scaling pour étendre ou réduire les capacités de votre web site en fonction de la charge (nombre de visiteurs/visites..). Si des Pics d’activité se présentent, votre web site sera re-sizer automatiquement pour supporter cette montée en charge, et sera downsizer quand l’activité revient à la normale.

 

Scalabilité horizontale vs scalabilité verticale

Il existe deux types de Scaling : Horizontale et Verticale

Scaling Verticale

Le Scaling Verticale est le plus intuitif : cela revient à ajouter des ressources à une VM unique (en lui ajoutant de la RAM, en changeant son CPU pour un plus véloce…). C’est simple ! Mais :

  • Le coût est rapidement exponentiel de la capacité matérielle.
  • Cette solution a des limites : vous pourrez probablement multiplier par 2 les capacités de votre serveur, peut-être même par 5, mais pas par 100 !

Cela reste dans la majorité des cas la solution la plus pragmatique, et en particulier pour des applicatifs en production depuis de nombreuses années.

 

Scaling Horizontale

Le Scaling horizontale revient à ajouter de nouveaux serveurs réalisant le même type tâche. Cela permet de n’utiliser que des serveurs standards (on parle de commodity hardware). Mais les implications logicielles sont rapidement importantes !

  • L’application doit être stateless (sans état) : cela signifie que les données sont stockées dans un autre service (dans votre base de données, dans un cache distribué…)
    C’est l’idéal. Vous devriez concevoir vos nouveaux développement avec cet objectif.
  • Si votre applicatif stocke des données en local (par exemple des données de sessions utilisateurs stockée en RAM) : vous pouvez malgré tout scaler horizontalement s’il est possible de couper ces données en sous ensembles indépendants (on parle de sharding). Il est alors nécessaire de s’assurer que chaque client ne communique qu’avec un unique serveur. Cela passe par exemple par un proxy qui redirige le client vers un serveur applicatif donné en fonction des identifiants du client, on parle de sticky session.
  • Si il n’est pas possible de sharder facilement vos données, alors vous ne pouvez pas scaler horizontalement sans modifier en profondeur votre applicatif. Vous devez, au moins temporairement, vous en tenir à un scaling vertical.

 

Options d’auto-scaling Azure

Azure propose plusieurs options d’auto-Scaling vous permettant d’auto-configurer les capacités de vos services Cloud, le but étant de payer uniquement les ressources/capacités dont vous avez besoin, uniquement lorsque vous en avez besoin et éviter de payer des ressources/capacités inutiles.

Il est recommandé de concevoir et mettre en place une stratégie d’auto-Scaling sur vos ressources de Production Azure.

Je vous invite à consulter le post ci-dessous pour en savoir plus sur les options d’auto-Scaling Azure :

https://docs.microsoft.com/fr-fr/azure/azure-monitor/platform/autoscale-overview

 

#10 : Azure Dev/Test Subscriptions ?

Si vous êtes abonnés « Visual Studio », que vous souhaitez Builder des environnements Azure de Dev & Test, il est recommandé de souscrire à l’offre Azure Dev/Test plutôt qu’un abonnement Azure standard.

Azure Dev/Test, qu’est-ce que c’est ? 

Azure Dev/Test est une offre Azure dédiée aux Développeurs (exclusivement aux individus et sociétés disposant d’un abonnement Visual Studio) ayant besoin d’environnement Sandbox pour concevoir, développer et tester des services & applications dans Azure.

Avec l’offre Azure Dev/Test, trois options sont disponibles :

Ce qu’il faut retenir :

  • Offre « Particulier » : Si vous êtes un Freelance/Particulier et souhaitez avoir un environnement de Dev/Test sur Azure, cette offre est faite pour vous. Votre abonnement VS (Visual Studio) vous permettra d’avoir jusqu’à 130€ de crédit azure mensuel.  C’est à vous de décider comment vous utilisez votre crédit mensuel. Il existe plusieurs services Azure auxquels vous pouvez attribuer le crédit (cf liens ci-dissous). Les Software inclus dans votre abonnement Visual Studio peuvent être utilisé sur les VMs Azure sans frais supplémentaires. De plus, vous payez un tarif réduit pour les VMs Azure.
    Si vous dépassez le crédit inclut (130€ Max), vous serez facturés de manière mensuelle (dès réception de la facture). Pour finir, notez qu’un seul abonnement Azure Dev/Test (par abonnement VS) est autorisé
  • Offre « Equipes » (Clients EA : Enterprise Agreement) : vous permet d’avoir plusieurs abonnements Azure Dev/Test pour vos différentes équipes de Dev. Vous n’avez pas besoin de saisir les infos de votre CB lors de la souscription à l’offre Azure Dev/Test, vous serez facturés dans le cadre de votre contrat EA. Contrairement à l’offre « Particulier », cette option vous offre la possibilité de donner la main à vos End users pour exécuter les tests (recette) et donner leurs feedbacks.
  • Offre « Equipes » (Hors Clients EA) : si vous êtes abonnés VS mais ne disposez pas de contrat EA et souhaitez avoir des abonnements Azure Dev/Test, eh bien dans rentrez dans cette catégorie. La différence avec l’option précédente réside dans le fait que vous êtes facturés de manière mensuelle (par CB et à réception de la facture).

 

Quels avantages ?

Tout d’abord, il faut noter que les trois options listées précédemment vous permettent d’utiliser les Software inclus dans votre abonnement Visual Studio (environnements de Dev & Test uniquement) sans frais supplémentaires. Pour l’exécution de VMs Azure, vous bénéficiez d’un prix réduit basé sur le prix de VM Linux.

Reportez-vous au tableau ci-dessous pour en savoir plus sur les avantages/remises possibles avec l’offre Azure Dev/Test :

 

Créer votre abonnement Azure Dev/Test

L’option ajouter un nouvel abonnement vous redirige vers le Portail suivant, il suffit de sélectionner ‘Abonnement Dev/Test » et suivre l’assistant pour créer votre nouvel abonnement Azure Dev/Test :

Quelques liens utiles

Je vous invite à consulter les documents suivants pour en savoir plus sur l’offre Azure Dev/Test « Particulier », « Equipes /EA » et « Equipes /Hors EA » :

 

Si vous souhaitez donc déployer des Workloads (de Dev/Test) dans Azure, privilégiez l’utilisation d’Azure Dev/Test :).

 

#11 : Downsizer les ressources oversizées

Une autre bonne pratique consiste à auditer/analyser régulièrement (une fois /mois par exemple) les ressources Azure pour identifier d’éventuelles ressources sur-dimensionner. Vous pouvez ensuite procéder à une Downsizing de ces services/ressources pour réduire les coûts Azure associés.

Ces opérations peuvent être industrialisées/automatisées à l’aide d’options/features d’auto-scaling (Up & Down) fournis avec Azure (cf Section #9).

 

#12 : Pensez à faire le CleanUp

Planifiez des CleanUp régulièrement !

Si cela ne se fait pas de manière automatique (via des RunBooks + Tags « EndDate /Date_Suppression… »), je vous propose la méthode /process suivant :

  • Auditer /Identifier toutes les ressources « Inactives » : WebApps, VMs … éteintes et ne présentant aucune activitée depuis plus de 3 mois
  • Se référer aux Tags pour connaitre les Resources Owner (Propriétaire) de ces ressources
  • Rentrer en contact avec ces personnes pour leur faire part de vos futures opérations (suppression des ressources)
  • Obtenir un GO /Validation des responsables/Owner de ces ressources
  • Planifier la suppression des ressources non utilisées.
  • Reporter (un mail suffit) après la réalisation des actions de suppression.

 

On a tous connu des Devs ou Business Users qui ont déployés pleins de RG à des fins de tests, mais qui n’ont jamais pris le temps d’arreter ou supprimer ces ressources en fin de PoC/Sandbox.

Ce Process vous permet de faire le ménage de manière régulière pour économiser les frais associés aux ressources déployées mais aussi avoir une infrastructure Azure propre et Always UpToDate :).

 

What Else ?

Partagez ces 12 BP avec votre DAF, il va surement Liker le post :).

A bientôt, Stay tuned.

#HK

Hi everyone,

Après plusieurs mois de travail, un nouvel eBook voit le jour sur ma plateforme BecomeITexpert.com

Il s’agit d’un Step-by-step guide sur Azure CLI 2.0, la puissante Command-line Interface Azure dans sa version 2.0

Je vous apprend à travers cet eBook comment utiliser les commandes, sous-commandes et paramètres/arguments fournis avec l’interface Az CLI 2.0.

A la fin de cet eBook, vous serez capable de :

  • Décrire l’interface Azure CLI 2.0 et son fonctionnement
  • Installer et utiliser l’interface Azure CLI 2.0 on mode Web (via le Cloud Shell Azure) ou en mode local sur Windows, MacOS mais aussi Linux :).
  • Utiliser les commandes, sous-commandes et arguments fournis avec l’interface Az CLI 2.0
  • Créer des scripts d’automatisation pour créer et provisionner des ressources Cloud Azure (VNET, VM, Compte de Stockage…etc) en « One-Click »

 

Des techniques avancées liées à l’utilisation d’Azure ainsi que plusieurs retours d’expérience sont détaillés dans cet eBook.

Il est organisé en 15 Chapitres, voir la table des matières suivante pour en savoir plus :

Ce diaporama nécessite JavaScript.

L’eBook est disponible sur BecomeITexpert.com, cliquez sur l’image ci-après pour en savoir plus :

Read & Enjoy :).

 

Si vous êtes amenés à gérer et administrer un ou plusieurs tenants Azure AD au quotidien, et que vous souhaitez automatiser toutes les tâches et opérations répétitives et fastidieuses, eh bien sachez que vous êtes à la bonne adresse :).

Aujourd’hui, je vais vous parler d’un module PowerShell qui va vous faciliter la vie quand il s’agit de déployer, gérer, administrer mais aussi troubleshooter Azure Active Directory.

Il s’agit du module « AzureAD » (ou Azure Active Directory PowerShell for Graph).

Les Cmd-Lets fournies avec ce Module vous permettent de récupérer les données à partir de l’annuaire/service Azure Active Directory, créer de nouveaux objets, modifier et mettre à jour les objets existants, supprimer des objets AAD, mais aussi configurer votre tenant Azure AD et ses options /fonctionnalités associées.

Enfin, notez que le module AzureAD vous permet également de gérer vos AAD Application Proxy et Connecteurs.

HowTo : Installer le module PowerShell AzureAD

Le module AzureAD est disponible depuis la PowerShellGallery et peut être installer via un simple

Install-Module AzureAD

 

HowTo : Utiliser le module PowerShell AzureAD

Une fois installé, commencez par importer le module « AzureAD » en saisissant la commande suivante :

Import-Module AzureAD

ou simplement

ipmo AzureAD

Exécutez ensuite la commande suivante pour lister toutes les Cmd-lets du module PowerShell AzureAD :

Get-Command -Module AzureAD | ft -AutoSize

Vous pouvez connaitre le nombre exact des Cmd-lets fournies avec le module AzureAD en exécutant la commande ci-dessous :

(Get-Command -Module AzureAD).Count

164 Cmd-Lets au total sont fournies avec le module PowerShell AzureAD, cela vous permet d’automatiser presque toutes les opérations disponibles depuis le Nouveau Portail Azure (portal.azure.com)

Avant de pouvoir créer et gérer vos objets (users & groups) Azure AD, vous devez connecter votre Interface PowerShell à votre tenant AzureAD, pour ce faire, saisissez la commande suivante :

Connect-AzureAD

Vous êtes invités à renseigner votre compte Microsoft (ou Professionnel) pour vous connecter :

Comme montré ci-dessous, mon compte Azure a été connecté correctement :

Commençons maintenant par lister tous les users AzureAD existants, saisissez la commande suivante :

Get-AzureADUser

Pour créer un nouvel utilisateur AzureAD, la commande suivante sera utilisée :

Note : dans l’exemple suivant, nous allons créer un nouvel utilisateur avec les informations suivantes :

UPN : hicham.kadiri-demo@k-nd-k-group.com

GivenName : hicham.kadiri-demo

DisplayName : Hicham KADIRI

City : Paris

Country : France

Department : IT

Mot de passe : « MyP@ss0rd2018! »

 

$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile $PasswordProfile.Password = « MyP@ss0rd2018! »

New-AzureADUser -City Paris -Country France -Department IT -DisplayName « Hicham KADIRI » -GivenName hicham.kadiri-demo -JobTitle « Azure Cloud Architect » -AccountEnabled $true -PostalCode 75000 -UserPrincipalName hicham.kadiri-demo@k-nd-k-group.com -PasswordProfile $PasswordProfile -MailNickName hicham.kadiri-demo

Pour supprimer cette fois-ci l’utilisateur créé précédemment, exécutez la commande suivante :

  • Notez que vous devez d’abord exécutez la Cmd-let Get-AzureADUser pour récupérer l’ObjectID de l’utilisateur à supprimer (af3dbbdd-e51b-44e3-8944-91150d296fd4 dans l’exemple suivant) :
    • Remove-AzureADUser -ObjectId af3dbbdd-e51b-44e3-8944-91150d296fd4

Vous pouvez lister tous les domaines AAD déclarés/enregistrés en saisissant la commande suivante :

Get-AzureADDomain

La liste des devices enregistrés dans votre domaine Azure AD peut être obtenue via la commande suivante :

Get-AzureADDevice

Je vous invite à consulter cet article pour en savoir plus sur l’ensemble des Cmd-lets fournies avec le module AzureAD.

 

 

Depuis quelques jours, l’équipe Azure Corp a publié deux nouvelles Updates sur le (New) Portail Azure (https;//portal.azure.com). Une fois connecté, celles-ci sont affichées et disponibles au niveau de la Barre de « Notifications » :

La première concerne la prise en charge de SQL Ops Studio par le service Azure SQL Data Warehouse et la deuxième concerne l’interface en ligne de commande Azure (Azure CLI), c’est plutôt cette Update qui va nous intéresser :).

 

Comme indiqué dans le message, il faut bien noter qu’à partir de Décembre 2017 :

Azure CLI (en version 2.0) sera l’outil CLI (Command Line Interface) préféré/privilégié pour la gestion des ressources ARM (Azure Resource Manager)

Quant à Azure CLI (en version 1.0), il prendra uniquement en charge les ressources ASM (Azure Service Manager)

Enfin, vous pouvez imaginer le couple « d’Azure Management Tools » suivants :

ASM : CLI (Azure CLI 1.0) + Portail Web « Classic » (manage.windowsazure.com)

ARM : CLI (Azure CLI 2.0) + Portail Web « New » (portal.azure.com)

 

Useful Info : Si vous n’avez pas encore consulté les 3 premiers HowTo Azure CLI 2.0, ceux-ci sont disponibles aux URLs ci-après:

HowTo #N°1 : Connecter l’interface Azure CLI 2.0 à votre abonnement Azure

HowTo #N°2 : Créer et gérer les groupes de ressources Azure

HowTo #N°3 Créer et gérer les réseaux virtuels Azure (VNET : Virtual Network)

 

Introduction

Azure VM (Virtual Machine) est l’une des offres IaaS (Infrastructure-as-aService) proposée par Microsoft sur sa Public Cloud Platform : Microsoft Azure.

Azure VM vous permet de créer et gérer des machines virtuelles Windows ou Linux hautement disponibles, Scalables et sécurisées.

Microsoft propose son offre Azure VM pour les deux modèles de déploiement : ASM (Azure Service Manager) et ARM : Azure Resource Manager.

Note : L’interface Azure CLI 2.0 étant disponible uniquement pour l’ARM, le mode ASM ne sera pas traité dans le présent article.

La création d’une VM Azure (ARM mode) peut se faire via :

Le nouveau portail Azure : portal.azure.com

Windows PowerShell : utilisation du module PS Azure

Azure CLI 2.0 : via l’utilisation de la commande az vm

Nous allons découvrir à travers cet article la troisième méthode qu’est l’utilisation de l’interface Azure CLI 2.0

Now let’s create & manage our Azure V(irtual) M(achine) via Azure CLI 2.0__O

 

HowTo : Créer et gérer les VMs Azure via Azure CLI 2.0
  • Ouvrez une Session Windows sur votre machine d’administration sur laquelle Azure CLI 2.0 a été installée
  • Lancez l’invite de commande (CMD.exe) en tant qu’Administrateur et saisissez az pour vérifier la disponibilité de l’interface Azure CLI 2.0
  • Après avoir saisi et exécuté la commande az, le Menu suivant vous est retourné :

  • La commande qui nous intéresse est VM. En effet, l’interface az dans le contexte VM vous permet de créer et gérer les Machines Virtuelles Azure (Windows ou Linux)
  • Pour afficher toutes les commandes & sous-commandes liés à la création et gestion de VMs Azure, saisissez la commande : az vm -h

#1. Lister toutes les VMs disponibles au niveau de votre abonnement Azure

az vm list –output table

ou simplement

az vm list –out table

Note importante : si le compte connecté à l’interface Azure CLI 2.0 dispose d’un accès à plusieurs abonnements Azure, vous devez d’abord, sélectionner (définir) un abonnement avant de pouvoir lister les VMs qui y sont hébergées Pour ce faire, exécutez la commande az account list –out table comme montré ci-dessous, et définissez ensuite un abonnement Azure « comme étant ‘Actif' », via l’utilisation de la commande az account set -s ID_de_votre_abonnement

 

Astuce : si vous souhaitez lister que les VMs membres d’un groupe de ressources spécifique, exécutez la même commande utilisée précédemment suivie du paramètre -g « Nom_Groupe_de_Ressource » > e.g : az vm list -g hk-dev-rg –out table

 

#2. Démarrer une VM Azure

Dans l’exemple suivant, la VM « hk-dev-dc1 » faisant parti du groupe de ressources « hk-dev-rg » sera démarré :

az vm start -n hk-dev-dc1 -g hk-dev-rg

Astuce : vous pouvez utiliser le paramètre –no-wait pour lancer l’opération en « Background » et ne pas attendre la fin de celle-ci pour récupérer la main sur l’interface CLI, voir Screenshot ci-dessous :

 

#3. Obtenir des informations sur une VM Azure spécifique

Dans l’exemple suivant, nous allons collecter et afficher des informations sur la VM démarrée précédemment (hk-dev-dc1) :

az vm show –show-details -n hk-dev-dc1 -g hk-dev-rg –out table

 

#4. Arrêter une VM Azure 

Dans l’exemple suivant, nous allons arrêter la VM « hk-dev-dc1 »

az vm stop -n hk-dev-dc1 -g hk-dev-rg

Comme pour la commande az vm start, vous n’êtes pas obligé d’attendre la fin de l’opération, vous pouvez utiliser le paramètre –no-wait à la fin de la commande :

 

#5. Redémarrer une VM Azure 

Dans l’exemple suivant, la VM « hk-dev-tfs1 » sera redémarrée :

az vm restart -n hk-dev-tfs1 -g hk-dev-rg –no-wait

 

#6. Désallouer une VM Azure

Pour libérer les ressources consommées par une VM, la commande az vm deallocate est utilisée.

Dans l’exemple suivant, nous allons désallouer la VM hk-dev-sql1 faisant parti du groupe de ressources « hk-dev-rg »

az vm deallocate -n hk-dev-sql1 -g hk-dev-rg

La VM est désormais « Deallocated », ses ressources sont donc libérées et ne sont plus facturées :

 

#7. Lister toutes les tailles de VMs disponibles sur une région Azure spécifique

Dans l’exemple suivant, nous allons lister tous les Size de VM disponible au niveau de la région Azure « Europe de l’Ouest » > « WestEurope ».

az vm list-sizes –location WestEurope –output table

ou simplement

az vm list-sizes -l WestEurope -o table

 

#8. Lister toutes les tailles de VMs vers lesquelles une VM spécifique peut être Upgradée 

Dans l’exemple suivant, nous allons lister toutes les tailles de VMs vers lesquelles la VM « hk-dev-dc1 » pour être Resizée :

az vm list-vm-resize-options -n hk-dev-dc1 -g hk-dev-rg –out table

 

#9. Changer la taille (capacité) d’une VM Azure

Nous avons listé précédemment toutes les VMs vers lesquelles la VM « hk-dev-dc1 » peut être upgradée.

Nous allons maintenant utilisée la commande az vm resize pour upgrader les capacités de cette VM vers la VM size « Standard_A3 ». Pour ce faire, la commande suivante est utilisée :

az vm resize –size Standard_A3 -n hk-dev-dc1 -g hk-dev-rg 

Si vous vous rendez sur le (New) Portail Azure, et cliquez sur la VM en question, vous pouvez déjà constater que la taille (le Flag au niveau Propriétés de la VM) est déjà changé, et que la VM a été rebootée pour que l’augmentation des capacités soit prise en compte :

Une fois l’upgrade effectué, le message suivant vous est retourné :

 

#10. Mettre à jour (Updater) les propriétés d’une VM Azure

Dans l’exemple suivant, les propriétés de la VM « hk-dev-dc1 » seront updatées :

az vm update -n hk-dev-dc1 -g hk-dev-rg 

Cette commande est à exécuter après chaque changement /modification des propriétés et objets associés à une VM Azure.

 

#11. Supprimer une VM Azure

Dans l’exemple suivant, la VM « hk-dev-dc2 » sera supprimé : az vm delete -n hk-dev-dc2 -g hk-dev-rg –no-wait

Un message de confirmation vous est retourné, saisissez « Y » comme « Yes » pour confirmer la suppression :

Astuce  : vous pouvez bypasser cette option de confirmation en utilisant le paramètre –yes ou -y. La commande devient donc : az vm delete -n hk-dev-dc2 -g hk-dev-rg -y –no-wait

 

#12. Créer une VM Azure (Windows ou autre)

Dans l’exemple suivant, une VM Azure exécutant Windows Server 2016 (Edition Datacenter) sera provisionnée:

az vm create -n hk-dev-ws2016 -g hk-dev-rg –image Win2016Datacenter

Note : vous êtes invité à saisir le mot de passe du compte Administrateur

Pour provisionner une VM Azure CentOS, la commande suivante est utilisée :

az vm create -n hk-dev-cos -g hk-dev-rg –image CentOS

Si vous voulez provisionner une nouvelle VM Windows Server 2012 R2 Edition Datacenter de taille « Standard_A3 » et lui attacher un nouveau vDisk (Virtual Hard Drive) de données de 50GB, exécutez la commande ci-dessous :

az vm create -n hk-dev-ws2012R2 -g hk-dev-rg –image Win2012R2Datacenter –data-disk-sizes-gb 50 –size Standard_A3

Plusieurs dizaines de paramètres sont fournis avec la commande az vm create, n’hésitez pas à consulter le « Help » pour en savoir plus sur les autres sous-commandes /paramètres : az vm create -h

 

#13. Redéployer une VM Azure

Dans l’exemple suivant, la VM « hk-dev-dc1 » sera redéployé : az vm redeploy -n hk-dev-dc1 -g hk-dev-rg

Note importante : Une VM dont les ressources ont été désallouées ne peut être redéployée (clonée), vous devez donc vous assurer que la VM que vous souhaitez redéployer est bien démarrée, sinon le message d’erreur suivant vous est retourné :

 

#14. Générer un Template d’une VM Azure

Si vous voulez créer un VM Template à partir d’une VM Azure spécifique, eh bien vous devez utiliser la commande az vm capture.

La capture de la VM se fait en trois étapes :

  • Désallouer la VM
  • Généraliser la VM
  • Capturer la VM

Dans l’exemple suivant, nous allons générer une VM Template à partir de la VM « hk-dev-dc1 », les commandes à exécuter sont donc :

az vm deallocate -n hk-dev-dc1 -g hk-dev-rg

az vm generalize -n hk-dev-dc1 -g hk-dev-rg

az vm capture -n hk-dev-dc1 -g hk-dev-rg –vhd-name-prefix dc-template

Si vous parcourez le compte de stockage hébergeant les fichiers (VHDs) de votre VM « Source », vous constaterez l’apparition de deux nouveaux fichiers : fichier .vhd et son fichier .json associé. Ces deux fichiers se trouvent dans : Compte de stockage > Conteneurs > System > Microsoft.Compute > Images > vhds 

Le fichier dc-template-vmTemplate.XXXXXXXX peut désormais être utilisé pour provisionner de nouvelles VMs Azure.

 

#15. Ouvrir un port spécifique sur une VM azure

Si votre VM fera (par exemple) office de Serveur Web, et que vous avez besoin d’ouvrir le port 80 (HTTP), la commande suivante est à exécuter : az vm open-port -n hk-dev-iis1 -g hk-dev-rg –port 80

 

Plusieurs HowTo Azure CLI 2.0 sont en cours de finalisation, so stay connected dear friends :).