22 conseils pour réduire les prix Azure et optimiser les coûts d'hébergement

Microsoft Azure propose un ensemble puissant de services qui permettent aux développeurs de créer et de déployer leurs applications. Azure le rend si facile à utiliser que vous pouvez rapidement maîtriser vos coûts d'hébergement Azure. Cependant, il existe des moyens de mieux gérer vos prix Azure et d'optimiser vos coûts totaux.

Chez Stackify, nous utilisons Azure depuis plus de 4 ans. Nous avons grandi avec Azure, comme nous aimons dire et utiliser une grande variété de services Azure différents et y dépenser une petite fortune chaque année. Nous écrivons cet article pour partager certains de nos meilleurs conseils.

Concentrons-nous sur 5 façons différentes de réduire vos coûts:

  • Baissez vos prix réels d'azur
  • Découvrez quels sont vos coûts actuels
  • Optimisez la façon dont vous déployez vos applications
  • Améliorez les performances de votre application
  • Autres astuces
  • Comment faire baisser les prix Microsoft Azure et gérer efficacement les coûts Azure

    L'une des choses les plus simples que vous pouvez faire est simplement d'obtenir des remises sur votre facture ou d'obtenir quelque chose gratuitement!

    1. Payez à l'avance pour bénéficier d'une remise, même sur un compte par répartition.

    Microsoft a proposé des remises de 2,5 à 5% sur la base d'un prépaiement de 6 ou 12 mois. Voyez si vous pouvez en profiter. Cependant, un accord d'EE peut être une meilleure option.

    2. Recevez un accord EA pour des remises Azure maximales.

    Les accords d'EE nécessitent le choix d'un engagement monétaire annuel, ce qui implique un taux d'actualisation. Vous serez ensuite facturé trimestriellement pour tout dépassement au-delà de votre engagement annuel.

    Un accord EA peut vous faire économiser jusqu'à 20-30% pour certains produits Azure. Soyez averti, les horaires de remise sont un gâchis. Par exemple, votre taux de remise sur SQL Azure peut être de 5%, mais les services cloud peuvent être de l'ordre de 10 à 20% et il est différent pour chaque SKU individuelle qu'ils vendent. Certains peuvent ne pas offrir de rabais du tout. Il existe des milliers de références. Assurez-vous donc de savoir de quels services Azure vous avez vraiment besoin et maximisez la remise sur ces références dans votre accord EA.

    3. Pouvez-vous vous inscrire à Bizspark?

    Stackify était à l'origine dans Bizspark et pouvait obtenir de nombreux avantages gratuits. Microsoft annonce jusqu'à 120 000 $ en avantages gratuits pour les startups. Pas une mauvaise affaire!

    4. Pouvez-vous basculer entre les régions Azure pour de meilleurs prix d'azur?

    Les prix Azure varient d'une région à l'autre, même aux États-Unis. Vérifiez les prix dans différentes régions pour voir si vous pouvez économiser un peu.

    Exemple: A2 VM dans l'ouest des États-Unis est de 133,92 $ mais 126,48 $ dans l'ouest des États-Unis 2. L'Australie-Est est de 168,14 $

    5. Obtenez de l'argent gratuit de Microsoft en établissant un partenariat avec un partenaire Azure sur un projet.

    Si vous souhaitez déplacer un grand projet vers Azure, vous pouvez obtenir des remises pour inciter un partenaire Microsoft et payer pour y arriver. Par exemple, nous avons pu le faire pour faire beaucoup de travail avec Chef.

    Découvrez vos coûts Azure actuels et organisez les rapports

    Les chances sont que vous ne savez pas ce que vous ne savez pas quand il s'agit de combien vous dépensez et de ce que vous dépensez. Il est si facile avec Azure de démarrer de nouvelles ressources et de les oublier.

    6. Sachez combien vous dépensez sur ce qui est difficile sans un outil pour cela.

    Microsoft dispose d'un certain nombre d'outils que vous pouvez utiliser pour analyser votre facturation:

    Les deux laissent beaucoup à désirer pour tout niveau de rapport avancé. Vous pouvez connecter vos données EA à PowerBI, ce qui vous donne encore plus de possibilités de déchiffrer les données, mais vous avez vraiment besoin de segmenter les données par projet, départements, etc. pour obtenir plus d'informations.

    Il existe de nombreux outils tiers disponibles, bien qu'il y en ait énormément plus de 1 000 $ par mois! Nous vous recommandons d'utiliser un service appelé Azure Costs (https://azure-costs.com/) qui est peu coûteux et fait un excellent travail. Il a un niveau gratuit et des options payantes de 29 $ à 199 $ par mois.

    Pour vous donner une idée, vous pouvez regrouper les rapports de plusieurs manières pour comprendre si vous dépensez beaucoup sur des machines virtuelles, SQL Azure, App Services, etc.

    Grouper par différents domaines dans Azure Costs

    7. Allouez les dépenses Azure par projet, environnement ou client pour un meilleur reporting.

    Chez Stackify, nous hébergeons tous nos applications de production, de pré-production, d'assurance qualité, de développement et de test avec Azure. En examinant notre projet de loi à un niveau élevé, il n'y a aucun bon moyen de savoir combien nous dépensons dans quel environnement, ce qui est important pour nous.

    Combien nous dépensons pour la production a un impact sur nos marges en tant qu'entreprise et nous voulons également minimiser les coûts dans les environnements de développement / test.

    Nous utilisons Azure Costs pour organiser ce que nous dépensons. Nous balisons simplement n'importe quelle ressource Azure, puis nous pouvons obtenir des rapports basés sur les balises pour voir facilement le coût par environnement.

    Taguer des ressources dans Azure Costs

    Ensuite, nous pouvons générer des rapports par tag pour comprendre comment nous dépensons notre argent.

    Rapports par balise dans Azure Costs

    Optimisez la façon dont vous déployez vos applications pour économiser de l'argent sur Azure

    Si vous déplacez une application vers Azure, il existe plusieurs façons d'économiser de l'argent auxquelles vous pourriez même ne pas penser. Souhaitez-vous également donner quelques conseils sur l'optimisation des services d'application, des services cloud, etc.

    8. Choisissez le type et la taille corrects des machines virtuelles.

    Si vous utilisez Azure pour héberger des machines virtuelles, assurez-vous de choisir le type d'instance correct. Il existe littéralement des dizaines de formes et de tailles différentes. Assurez-vous de sélectionner le type correct selon que vous avez besoin de plus de mémoire, de CPU, de disque plus rapide, etc.

    9. Utilisez Azure DevTest Labs pour vous assurer que les machines virtuelles de test sont automatiquement désactivées pour économiser de l'argent.

    Rien n'est plus ennuyeux que quelqu'un qui met en place un serveur de test et découvre plus tard que vous le payez depuis des mois et des mois. Azure DevTest Labs est idéal pour créer des serveurs dont vous avez besoin occasionnellement ou uniquement à certaines heures de la journée.

    DevTest Labs peut les activer et les désactiver automatiquement selon un calendrier. Cela aide beaucoup à résoudre le problème de votre équipe d'assurance qualité oubliant d'arrêter les serveurs avant leur départ pour la journée ou le week-end.

    Remarque: DevTest Labs ne coûte rien de plus à utiliser. Vous payez simplement les VM vous-même.

    10. Ne payez pas pour les emplacements intermédiaires sur les services cloud.

    Avec Azure Cloud Services pour les rôles Web et d'employés, vous payez le prix fort pour les emplacements intermédiaires tout comme vous le faites pour les emplacements de production. C'est une bonne idée de déployer sur des emplacements de transfert, puis de mettre le transfert en production pour minimiser les temps d'arrêt.

    Assurez-vous de retirer les emplacements de transfert dès que possible. Rien ne me rend plus fou que de me connecter à Azure et de voir beaucoup de choses dans les emplacements de mise en scène assis sans raison.

    Modifiez la vue dans le portail Azure pour ajouter des colonnes pour "Mise en attente" et "Production", afin que vous puissiez rapidement voir celles qui ont quelque chose dans les emplacements de mise en attente. Les services cloud vous coûteront de l'argent même si les serveurs sont en panne. Vous devez les supprimer!

    11. Combinez des applications Web avec Azure App Service Plans pour réduire le nombre de serveurs.

    App Services est l'une des meilleures fonctionnalités absolues d'Azure. Vous pouvez créer un plan de service d'application qui représente 2 ou 3 serveurs ou plus, puis emballer autant d'applications Web que vous le souhaitez.

    C'est un énorme avantage sur le paiement d'un serveur entier pour une application Web qui ne fait pratiquement rien. Nous avons utilisé les rôles Web du service cloud pour toujours et dans certains cas, nous avons 3 instances de haute disponibilité sur une application Web qui ne reçoit presque aucun trafic. C'est un énorme gaspillage.

    12. Arrêtez d'utiliser les rôles Web du service cloud, sauf si nécessaire.

    À moins que vous ne deviez utiliser Azure Cloud Services pour des rôles Web, je travaillerais sur la commutation de vos applications vers App Services pour tirer parti de la combinaison de plusieurs applications avec moins de serveurs.

    Les services cloud prennent également FOREVER à mettre en œuvre. Les services d'application sont des années-lumière plus rapides à mettre en œuvre.

    13. Utilisez Azure Service Fabric ou Container Service pour combiner des applications.

    Pour exactement les mêmes raisons que je mentionne ci-dessus avec les services d'application et les rôles Web, jetez un œil à la migration de vos rôles d'employé vers le service Fabric ou le service de conteneur. Les deux suivent le modèle comme les plans App Service, où vous configurez essentiellement un groupe de serveurs, puis lancez un grand nombre d'applications sur eux.

    14. Utilisez la mise à l'échelle automatique pour réduire les coûts pendant les heures ouvrables.

    La plupart des applications ont une période plus occupée et plus lente sur une semaine ou un jour. Profitez de la mise à l'échelle automatique intégrée à Azure pour économiser de l'argent pendant les périodes lentes.

    Ces types d'implémentation prennent tous en charge la mise à l'échelle automatique:

  • Services cloud
  • Services d'application
  • Jeux d'échelle de machine virtuelle (y compris lot, structure de service, service de conteneur)
  • La mise à l'échelle peut également signifier que vous devez fermer complètement votre application. Les services d'application ont une fonctionnalité appelée AlwaysOn qui détermine si l'application doit être fermée en raison d'aucune activité. Vous pouvez également planifier la fermeture de vos serveurs dev / QA avec quelque chose comme DevTest Labs. Il existe également des services tiers tels que Park My Cloud.

    15. Utilisez les fonctions Azure PaaS; ne roulez pas vos propres machines sur des machines virtuelles, sauf si vous le devez.

    J'ai parlé à plusieurs personnes utilisant Azure et leur version d'utilisation d'Azure configure des machines virtuelles et héberge leur application et SQL Server sur ces machines virtuelles.

    L'utilisation d'Azure pour les machines virtuelles et IaaS est correcte, mais vous manquez de nombreuses opportunités pour réduire les coûts de gestion et les coûts Azure dans leur ensemble. Sauf si vous avez vraiment une très bonne raison d'utiliser SQL dans une machine virtuelle comme l'achat d'un équilibreur de charge tiers s'exécutant dans une machine virtuelle et d'autres scénarios, ne faites pas cela.

    Chez Stackify, nous utilisons toutes les fonctions Azure PaaS que nous pouvons. Cela inclut SQL Azure, Redis, le stockage de table, Service Bus, etc. L'idée de configurer des machines virtuelles pour Redis ou tout autre service de file d'attente me semble être une idée vraiment terrible. La seule exception à cela est la recherche élastique.

    Azure Search est disponible et est une offre de base d'Elasticsearch PaaS. En raison de la taille et de l'échelle de notre cluster de recherche élastique, il est plus logique de le gérer vous-même.

    16. Utilisez des pools élastiques SQL.

    Si vous disposez de nombreuses bases de données, envisagez les pools SQL Elastic.

    Avec Azure, vous devez choisir un niveau de performances pour chaque base de données individuelle. Cela fonctionne très bien et offre un niveau de performance prévisible. Cependant, dans de nombreux cas, cela conduit également à des performances de surapprovisionnement.

    Considérez un pool élastique Azure SQL comme davantage un serveur et vous pouvez attribuer un certain nombre de bases de données à ce serveur. Cela permet aux performances de chaque base de données de refluer et de circuler dans les ressources totales du serveur.

    Chez Stackify, tous nos clients ont leurs propres bases de données SQL. Nous en avons littéralement des centaines et nous en ajoutons de nouveaux chaque jour. SQL Elastic Pools est essentiel pour nous afin de gérer autant de bases de données à grande échelle.

    Améliorez vous-même les performances de votre application

    OK, une fois que vous avez maximisé le montant que vous dépensez sur Azure en ce qui concerne votre tarification globale Azure et la façon dont vous déployez vos applications, il est temps de procéder à un réglage des performances.

    Je suggère d'utiliser une sorte d'outil APM, tel que Retrace, Azure Application Insights ou New Relic.

    17. Il est temps de retirer les profileurs!

    Pour optimiser les performances de votre code, vous devez effectuer un profilage de code. Il existe trois types de profileurs différents et vous avez besoin de tous les trois pour vraiment améliorer votre code.

  • Profileur par défaut – profilez votre code sur votre poste de travail pour rechercher des méthodes lentes dans votre code
  • Suivi des transactions – capturez des demandes Web entières via un profileur ASP.NET et voyez ce qui se passe
  • APM – Suivez les performances globales de votre application et de ses dépendances
  • 18. Identifiez vos demandes ou transactions Web les plus utilisées et les plus lentes.

    Recherchez les demandes qui prennent du temps ou se produisent un nombre moyen de fois, mais qui prennent beaucoup trop de temps. Regardez les pistes de transaction ASP.NET pour voir s'il y a trop de requêtes SQL, des services Web lents, etc.

    La plupart des applications modernes sont davantage liées aux appels de base de données ou de service Web. Si votre code lui-même est lent, vous souhaiterez probablement utiliser un profileur .NET standard, tel que le profileur Visual Studio, pour savoir pourquoi.

    Meilleures demandes Web de Retrace APM

    19. Optimisez les performances de la base de données SQL.

    Toute application occupée peut généralement bénéficier d'un réglage SQL de base. SQL Azure propose d'excellentes fonctionnalités de rapport de performances de base et des recommandations de correspondance d'index.

    Si vous avez besoin d'approfondir, assurez-vous d'interroger les DMV en SQL pour identifier les requêtes les plus consultées, utiliser le plus d'E / S, prendre le plus de temps, etc. Notez également la durée des requêtes du point de vue de votre application.

    Vous pouvez également utiliser votre outil APM pour identifier les recherches les plus couramment utilisées et les actions de votre logiciel qui les déclenchent.

    Vue des principales requêtes SQL de Retrace APM

    20. Suivez l'utilisation et les performances de toutes les dépendances d'application.

    En plus d'un simple serveur SQL, votre application est susceptible d'effectuer des appels de service Web, d'utiliser des files d'attente, la mise en cache et d'autres dépendances, y compris d'autres fonctions Azure comme DocumentDB, Azure Storage, etc.

    Assurez-vous que toutes ces dépendances fonctionnent bien et sont correctement mises à l'échelle via Azure.

    Autres idées pour réduire les coûts Azure

    Voici quelques autres idées que vous pouvez envisager pour réduire les dépenses que vous effectuez sur Azure.

    21. Pouvez-vous utiliser un CDN?

    Un CDN comme Cloudflare facilite l'ajout de la mise en cache de tous vos fichiers statiques sans aucune modification de code. Cloudflare possède également une tonne de fonctionnalités intéressantes qui peuvent être utilisées pour optimiser les performances.

    Azure propose également une offre CDN très simple à essayer, mais il ne fait pas ce que fait Cloudflare.

    22. Pouvez-vous utiliser la nouvelle option de stockage à froid Azure?

    Azure propose désormais un stockage Azure chaud et froid. Chaud est conçu pour les données qui sont utilisées fréquemment et froid pour les données qui sont utilisées rarement. Si vous avez beaucoup de données qui sont à peine utilisées, des sauvegardes, des archives ou d'autres données, jetez un œil au stockage à froid.

    Optimiser les coûts pour Azure Cloud Hosting

    J'espère que vous avez trouvé cette liste utile. Assurez-vous de commencer par certaines des idées les plus faciles à implémenter et laissez votre code durer optimiser.

    L'optimisation de votre code est de loin la chose la plus difficile à faire et peut prendre beaucoup de temps et de tests de régression. Chez Stackify, nous avons des API qui s'appellent des millions et des millions de fois par jour. Si vous avez du code appelé aussi souvent que le nôtre, cela vaut vraiment la peine d'investir dans des optimisations de code de bas niveau, sinon … peut-être pas.

    Avez-vous d'autres conseils pour économiser de l'argent sur votre facture Azure? Dites-le nous dans les commentaires ci-dessous!

    À propos de Matt WatsonMatt est le fondateur et PDG de Stackify. Il est développeur / hacker depuis plus de 15 ans et aime résoudre les problèmes difficiles avec le code. Tout en travaillant dans la gestion informatique, il s'est rendu compte de la perte de temps à éteindre les incendies de production sans les bons outils. Il a fondé Stackify en 2012 pour créer un ensemble d'outils conviviaux pour les développeurs.