Microsoft Azure fournit un ensemble puissant de services pour aider les développeurs à créer et à déployer leurs applications. Azure le rend si facile à utiliser que vous pouvez rapidement laisser vos coûts d’hébergement Azure devenir incontrôlables. Cependant, il existe des moyens de mieux gérer votre tarification Azure et d’optimiser vos coûts globaux.
Chez Stackify, nous utilisons Azure depuis plus de 4 ans. Nous avons grandi avec Azure comme nous aimons le dire et exploitons un large éventail de services Azure différents et y dépensons 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:
- Réduisez vos prix Azure réels
- Déterminez quels sont vos coûts actuels
- Optimisez la façon dont vous déployez vos applications
- Améliorez les performances de votre application
- Autres conseils
Comment réduire les prix Microsoft Azure &Gestion efficace des coûts Azure
L’une des choses les plus simples que vous puissiez faire est obtenez simplement des rabais sur votre facture ou obtenez quelque chose gratuitement!
1. Prépayez pour obtenir un rabais, même sur un compte à l’utilisation.
Microsoft a offert des remises de 2,5 à 5% sur la base d’un prépaiement de 6 ou 12 mois. Vérifiez si vous pouvez en profiter. Cependant, un accord d’EE peut être une meilleure option.
2. Obtenez un accord EA pour des remises Azure maximales.
Les accords d’EE nécessitent la sélection d’un engagement monétaire annuel et qui verrouille un taux d’actualisation. Vous êtes ensuite facturé trimestriellement pour tout dépassement au-delà de votre engagement annuel.
Un accord EA peut vous faire économiser jusqu’à 20-30% environ pour certains produits Azure. Attention, les barèmes de taux d’actualisation sont un gâchis. À titre d’exemple, votre taux d’actualisation sur SQL Azure pourrait être de 5%, mais les services Cloud pourraient être quelque chose comme 10-20% et il est différent pour chaque SKU qu’ils vendent. Certains peuvent ne pas offrir beaucoup de rabais du tout. Il existe des milliers de références. Assurez-vous donc de savoir quels services Azure vous avez vraiment besoin et de maximiser la remise sur ces références dans votre contrat EA.
3. Pouvez-vous vous inscrire à Bizspark?
Stackify était à l’origine dans Bizspark et a pu obtenir de nombreux avantages gratuits impressionnants. Microsoft annonce jusqu’à 120 000 in d’avantages gratuits pour les startups. Pas une mauvaise affaire!
4. Pouvez-vous changer de région Azure pour une meilleure tarification Azure ?
La tarification Azure varie 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: Une machine virtuelle A2 dans l’Ouest des États-Unis coûte 133,92 $ mais 126,48 West dans l’ouest des États-Unis 2. Australie Est est de 168,14 $
5. Obtenez de l’argent gratuit de Microsoft en travaillant avec un partenaire Azure sur un projet.
Si vous avez un gros projet pour passer à Azure, vous pouvez obtenir des réductions pour inciter et payer un partenaire Microsoft pour aider à le réaliser. Par exemple, nous avons pu le faire pour aider à faire un tas de travail avec Chef.
Déterminez Quels Sont Vos coûts Azure actuels et Organisez les rapports
Les chances sont, 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 créer de nouvelles ressources et de les oublier simplement.
6. Sachez combien vous dépensez pour quoi, ce qui est difficile sans outil pour cela.
Microsoft dispose de quelques outils que vous pouvez utiliser pour analyser votre facturation:
- Portail de facturation Azure
- Portail EA – https://ea.azure.com/
Ces deux éléments laissent beaucoup à désirer pour tout niveau avancé de reporting. Vous pouvez connecter vos données EA à PowerBI, ce qui ouvre davantage de possibilités de croquer les données, mais vous devez vraiment segmenter les données par projet, départements, etc. pour obtenir plus d’informations.
Il existe de nombreux outils tiers disponibles, bien qu’ils dépassent les 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 month par mois.
Juste pour vous donner une idée, vous pouvez regrouper les rapports de différentes manières pour comprendre si vous dépensez beaucoup en machines virtuelles, SQL Azure, App Services, etc.
Grouper par divers champs dans Azure Costs
7. Affectez les dépenses Azure par projet, environnement ou client pour de meilleurs rapports.
Chez Stackify, nous hébergeons nos applications de production, de pré-production, d’assurance qualité, de développement et de test avec Azure. Lorsque nous examinons notre facture à un niveau élevé, il n’y a pas de bon moyen de savoir combien nous dépensons pour quel environnement, ce qui est important pour nous.
Le montant que nous dépensons en 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 les coûts Azure pour organiser ce sur quoi nous dépensons de l’argent. Nous étiquetons simplement chaque ressource Azure, puis nous pouvons obtenir des rapports par les balises pour voir facilement les dépenses par environnement.
Ressources de balises dans Azure Costs
Nous pouvons ensuite obtenir des rapports par chaque balise pour comprendre comment nous dépensons notre argent.
Reporting 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 ne pensez peut-être même pas. Vous souhaitez également vous donner quelques conseils sur l’optimisation des Services d’applications, des services Cloud, etc.
8. Choisissez le bon type et la bonne taille de machines virtuelles.
Si vous utilisez Azure pour héberger des machines virtuelles, assurez-vous de choisir le bon type d’instance. Il existe littéralement des dizaines de types et de tailles différents. Assurez-vous de sélectionner le bon type en fonction de si vous avez besoin de plus de mémoire, de CPU, de disque plus rapide, etc.
9. Utilisez Azure DevTest Labs pour garantir l’arrêt automatique des machines virtuelles de test afin d’économiser de l’argent.
Rien n’est plus ennuyeux que de configurer un serveur de test et de découvrir plus tard que vous le payez depuis des mois et des mois. Azure DevTest Labs est génial pour créer des serveurs dont vous avez besoin de temps en temps ou à certaines heures de la journée.
DevTest Labs peut automatiquement les activer et les arrêter 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 pour les machines virtuelles elles-mêmes.
10. Évitez de payer pour des emplacements intermédiaires sur les services Cloud.
Avec Azure Cloud Services pour les rôles Web et de travail, vous payez le plein prix pour les emplacements de mise en scène, tout comme vous le faites pour les emplacements de production. C’est une bonne idée de déployer sur des emplacements de mise en scène, puis d’échanger la mise en scène en production pour minimiser les temps d’arrêt.
Assurez-vous de supprimer les emplacements de transfert le plus rapidement possible. Rien ne me rend plus fou que de me connecter à Azure et de voir un tas de choses déployées dans des emplacements de mise en scène sans raison.
Modifiez la vue dans le portail Azure pour ajouter des colonnes pour « Staging » et ”Production » afin que vous puissiez voir rapidement lesquelles ont quelque chose dans les emplacements de staging. Les services Cloud vous coûtent de l’argent même si les serveurs sont arrêtés. Vous devez les supprimer!
11. Combinez des applications Web avec des plans Azure App Service pour réduire le nombre de serveurs.
L’une des meilleures fonctionnalités absolues d’Azure est App Services. Vous pouvez créer un plan de service d’application qui représente 2 à 3 serveurs ou plus, puis emballer autant d’applications Web que vous le souhaitez.
C’est un énorme avantage par rapport au paiement d’un serveur entier pour une application Web qui ne fait presque rien. Nous avons toujours utilisé les rôles Web de service Cloud et, dans certains cas, nous avons 3 instances pour une haute disponibilité sur une application Web qui ne reçoit pratiquement aucun trafic. C’est un énorme gaspillage.
12. Arrêtez d’utiliser les rôles Web de Service Cloud, sauf si vous y êtes obligé.
À moins que vous ne deviez utiliser Azure Cloud Services pour les rôles Web, je travaillerais à changer vos applications en Services d’applications pour tirer parti de la combinaison de plusieurs applications à moins de serveurs.
Le déploiement des services Cloud prend également une éternité. Les services d’applications sont plus rapides à déployer à des années-lumière.
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’applications et les rôles Web, envisagez de déplacer vos rôles de travail vers Service Fabric ou Container Service. Les deux suivent le modèle comme les plans de service d’applications où vous provisionnez essentiellement un groupe de serveurs, puis vous y lancez un tas d’applications.
14. Utilisez la mise à l’échelle automatique pour réduire les coûts pendant les heures creuses.
La plupart des applications ont des périodes plus chargées et plus lentes tout au long d’une semaine ou d’une journée. Profitez de la mise à l’échelle automatique intégrée à Azure pour économiser de l’argent pendant les périodes lentes.
Ces types de déploiement prennent tous en charge la mise à l’échelle automatique :
- Services Cloud
- Services d’applications
- Jeux d’échelles de machines virtuelles (y compris les lots, la structure de service, le Service de conteneur)
La mise à l’échelle peut également signifier la fermeture complète de votre application. Les services d’application ont une fonctionnalité appelée AlwaysOn qui contrôle si l’application doit s’arrêter en raison de l’absence d’activité. Vous pouvez également planifier l’arrêt de vos serveurs dev / QA avec quelque chose comme DevTest Labs. Il existe également des services tiers comme Park My Cloud.
15. Utilisez les fonctionnalités Azure PaaS ; ne lancez pas les VÔTRES sur les machines virtuelles sauf si vous le devez.
J’ai parlé à plusieurs personnes qui utilisent Azure et leur version d’utilisation d’Azure configure certaines machines virtuelles et héberge leur application et SQL Server sur ces machines virtuelles.
Tirer parti d’Azure pour les machines virtuelles et les IaaS est bien, mais vous manquez de nombreuses opportunités pour réduire les coûts de gestion et les coûts Azure dans leur ensemble. À moins que vous ayez une très, 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 le faites tout simplement pas.
Chez Stackify, nous exploitons toutes les fonctionnalités PaaS d’Azure que nous pouvons. Cela inclut SQL Azure, Redis, Stockage de table, Bus de service, etc. L’idée de configurer des machines virtuelles pour Redis ou un autre service de file d’attente semble être une idée vraiment terrible. La seule exception à cela pour nous est elasticsearch.
Azure Search est disponible et constitue une offre PaaS elasticsearch de base. En raison de la taille et de l’échelle de notre cluster elasticsearch, il est plus logique de le gérer nous-mêmes.
16. Utilisez des Pools élastiques SQL.
Si vous avez beaucoup de bases de données, vous devriez envisager des pools élastiques SQL.
Avec Azure, vous devez choisir un niveau de performance pour chaque base de données individuelle. Cela fonctionne très bien et offre un niveau de performance prévisible. Cependant, cela entraîne également des performances de provisionnement excessives dans de nombreux cas.
Considérez un pool élastique Azure SQL comme davantage un serveur et vous pouvez attribuer un tas de bases de données à ce serveur. Cela permet aux performances de chaque base de données de reflux et de flux dans les ressources totales du serveur.
Chez Stackify, chacun de nos clients possède ses propres bases de données SQL. Nous en avons littéralement des centaines, et nous en ajoutons de nouveaux et en supprimons chaque jour. Les pools élastiques SQL sont essentiels pour que nous puissions gérer autant de bases de données à grande échelle.
Améliorez les performances de Votre Application Elle-même
OK, si 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 commencer à affiner les performances.
Je suggère d’utiliser un type d’outil APM comme Retrace, Azure Application Insights ou New Relic.
17. Il est temps de sortir les profileurs!
Si vous souhaitez optimiser les performances de votre code, vous devez effectuer un profilage de code. Il existe trois types de profileurs différents et vous aurez peut-être besoin des trois pour vraiment améliorer votre code.
- Profileur standard – profilez votre code sur votre poste de travail pour rechercher des méthodes lentes dans votre code
- Traçage des transactions – capturez des requêtes Web complètes via un ASP.NET profiler et examiner ce qui se passe
- APM – Suivez les performances globales de votre application et de ses dépendances
18. Identifiez vos requêtes ou transactions Web les plus utilisées et les plus lentes.
Recherchez les demandes qui prennent beaucoup de temps ou qui se produisent un nombre modéré de fois mais qui prennent beaucoup trop de temps. Regardez ASP.NET traces de transaction pour voir si trop de requêtes SQL se produisent, services Web lents, etc.
La plupart des applications modernes sont davantage liées par des appels de base de données ou de services Web. Si votre code lui-même peut être lent, vous voudrez probablement utiliser un profileur .NET standard, comme le profileur Visual Studio pour essayer de comprendre pourquoi.
Top Requêtes Web de Retrace APM
19. Optimisez les performances de la base de données SQL.
Chaque application occupée peut généralement bénéficier d’un réglage SQL de base. SQL Azure possède d’excellentes fonctionnalités de base pour les rapports de performance et les recommandations de réglage d’index.
Si vous avez besoin d’aller plus loin, 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. Veillez également à voir combien de temps les requêtes prennent du point de vue de votre application.
Vous pouvez également utiliser votre outil APM pour identifier les requêtes les plus utilisées et les actions de votre logiciel qui les appellent.
Vue supérieure des requêtes SQL depuis Retrace APM
20. Suivez l’utilisation et les performances de toutes les dépendances de l’application.
Au-delà de SQL server, votre application effectue probablement des appels de service Web, utilise des files d’attente, la mise en cache et d’autres dépendances, y compris d’autres fonctionnalités Azure telles que 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 à considérer pour réduire le montant que vous dépensez sur Azure.
21. Pouvez-vous utiliser un CDN?
Un CDN comme Cloudflare facilite vraiment l’ajout de la mise en cache de tous vos fichiers statiques sans modification de code. Cloudflare dispose également d’une tonne de fonctionnalités intéressantes qui peuvent être utilisées pour optimiser les performances.
Azure a également une offre CDN très simple que vous pouvez essayer, mais elle ne fait pas ce que fait Cloudflare.
22. Pouvez-vous utiliser la nouvelle option de stockage à froid Azure ?
Azure offre désormais un stockage Azure chaud et froid. Warm est conçu pour les données fréquemment utilisées et cold pour les données rarement utilisées. Si vous avez beaucoup de données à peine utilisées, des sauvegardes, des archives ou d’autres données, assurez-vous de consulter le stockage à froid.
Optimisation des coûts d’hébergement dans le Cloud Azure
J’espère que vous avez trouvé cette liste utile. Assurez-vous de commencer par certaines des idées les plus simples à implémenter et de laisser l’optimisation de votre code pour la fin.
L’optimisation de votre code est de loin la partie la plus difficile à faire et peut prendre énormément de temps et de tests de régression. Chez Stackify, nous avons des API qui sont appelées des millions et des millions de fois par jour. Si vous avez du code qui est appelé autant de fois que le nôtre, cela vaut vraiment la peine d’investir dans les optimisations de code de bas niveau, sinonmaybe peut-être pas.