Microsoft Azure proporciona un potente conjunto de servicios para ayudar a los desarrolladores a crear e implementar sus aplicaciones. Azure lo hace tan fácil de usar que puede dejar que los costos de alojamiento de Azure se salgan de control rápidamente. Sin embargo, hay formas de administrar mejor los precios de Azure y optimizar los costos generales.
En Stackify, hemos estado usando Azure durante más de 4 años. Hemos crecido con Azure como nos gusta decir y aprovechar una amplia gama de diferentes servicios Azure y gastar una pequeña fortuna en cada año. Escribimos este artículo para compartir algunos de nuestros mejores consejos.
Centrémonos en 5 formas diferentes de reducir sus costos:
- Reduzca sus precios reales de azure
- Descubra cuáles son sus costos actuales
- Optimice cómo implementa sus aplicaciones
- Mejore el rendimiento de su aplicación
- Otros consejos
Cómo reducir los precios de Microsoft Azure & Gestión eficaz de costos de Azure
Una de las cosas más fáciles que puede hacer es ¡simplemente obtenga algunos descuentos en su factura o obtenga algo gratis!
1. Prepaga para obtener un descuento, incluso en una cuenta de pago por uso.
Microsoft ha ofrecido descuentos del 2,5%al 5% basados en un prepago de 6 o 12 meses. Compruebe si puede aprovechar esto. Sin embargo, un acuerdo de EA puede ser una mejor opción.
2. Obtén un acuerdo de EA para obtener descuentos máximos en Azure.
Los acuerdos de EA requieren la selección de un compromiso monetario anual y que fija una tasa de descuento. A continuación, se le facturará trimestralmente por cualquier exceso más allá de su compromiso anual.
Un acuerdo de EA puede ahorrarle hasta un 20-30% aproximadamente para algunos productos de Azure. Tenga en cuenta que los horarios de descuento son un desastre. A modo de ejemplo, su tasa de descuento en SQL Azure podría ser del 5%, pero los servicios en la nube podrían ser del 10 al 20% y es diferente para cada SKU que venden. Algunos pueden no ofrecer mucho descuento en absoluto. Hay miles de SKU. Por lo tanto, asegúrese de saber qué servicios de Azure necesita realmente y maximice el descuento en esos SKU en su acuerdo de EA.
3. ¿Puedes inscribirte en Bizspark?
Stackify estaba originalmente en Bizspark y pudo obtener muchos beneficios gratuitos increíbles. Microsoft anuncia hasta 1 120,000 en beneficios gratuitos para startups. No es un mal negocio!
4. ¿Puede cambiar de región de Azure para obtener mejores precios de Azure?
Los precios de Azure varían de una región a otra, incluso en EE. Verifique los precios en varias regiones para ver si puede ahorrar un poco.
Ejemplo: A2 VM en West US cuesta 1 133.92 pero in 126.48 en West US 2. Australia Este es de68.14
5. Obtenga dinero gratis de Microsoft trabajando con un socio de Azure en un proyecto.
Si tiene un gran proyecto para mudarse a Azure, puede obtener algunos descuentos para ayudar a incentivar y pagar a un socio de Microsoft para que lo ayude a hacerlo realidad. Por ejemplo, pudimos hacer esto para ayudar a hacer un montón de trabajo con Chef.
Averigüe Cuáles Son Sus Costos actuales de Azure y Organice los informes
Las probabilidades son, no sabe lo que no sabe cuando se trata de cuánto está gastando y en qué lo está gastando. Con Azure es muy fácil crear nuevos recursos y simplemente olvidarse de ellos.
6. Sepa cuánto gasta en qué, lo cual es difícil sin una herramienta para ello.
Microsoft tiene un par de herramientas que puedes usar para analizar tu facturación:
- Azure facturación portal
- EA portal – https://ea.azure.com/
Ambos dejan mucho que desear para cualquier nivel avanzado de presentación de informes. Puede conectar sus datos de EA a PowerBI, lo que abre más oportunidades para procesar los datos, pero realmente necesita segmentar los datos por proyecto, departamentos, etc. para obtener más información al respecto.
Hay un montón de herramientas de terceros disponibles, aunque terriblemente, muchos de ellos de más de $1.000 por mes! Recomendamos usar un servicio llamado Azure Costs (https://azure-costs.com/) que es económico y hace un gran trabajo. Tiene un nivel gratuito y opciones de pago de 2 29 a month 199 al mes.
Solo para darle una idea, puede agrupar los informes de varias maneras diferentes para comprender si está gastando mucho en máquinas virtuales, SQL Azure, Servicios de aplicaciones, etc.
Agrupar por varios campos en Costos de Azure
7. Asigne gastos de Azure por proyecto, entorno o cliente para obtener mejores informes.
En Stackify, alojamos nuestras aplicaciones de producción, preproducción, control de calidad, desarrollo y prueba con Azure. Al examinar nuestro proyecto de ley a un alto nivel, no hay una buena manera de saber cuánto estamos gastando en qué entorno, lo que es importante para nosotros.
Cuánto gastamos en producción impacta en nuestros márgenes como empresa y también queremos minimizar los costos en entornos de desarrollo/prueba.
Utilizamos Azure Costs para organizar en qué estamos gastando dinero. Simplemente etiquetamos cada recurso de Azure y luego podemos obtener informes por etiquetas para ver fácilmente los gastos por entorno.
Recursos de etiquetas en costos de Azure
Podemos obtener informes por cada etiqueta para comprender cómo gastamos nuestro dinero.
Generación de informes por etiqueta en costos de Azure
Optimice la forma en que Implementa sus Aplicaciones para Ahorrar Dinero en Azure
Si está trasladando una aplicación a Azure, hay algunas formas de ahorrar dinero que tal vez ni siquiera esté pensando. También queremos darle algunos consejos sobre la optimización de Servicios de Aplicaciones, Servicios en la Nube, etc.
8. Elija el tipo y el tamaño correctos de máquinas virtuales.
Si utiliza Azure para alojar máquinas virtuales, asegúrese de elegir el tipo de instancia correcto. Hay literalmente docenas de diferentes tipos y tamaños. Asegúrese de seleccionar el tipo correcto en función de si necesita más memoria, CPU,disco más rápido, etc.
9. Utilice Azure DevTest Labs para asegurarse de que las máquinas virtuales de prueba se apaguen automáticamente y ahorrar dinero.
Nada es más molesto que alguien la configuración de un servidor de prueba y averiguar después de haber estado pagando durante meses y meses. Azure DevTest Labs es excelente para crear servidores que necesita ocasionalmente o solo a ciertas horas del día.
DevTest Labs puede encenderlos y apagarlos automáticamente según un horario. Esto ayuda mucho a resolver el problema de que su equipo de control de calidad se olvide de apagar los servidores antes de que se vayan por el día o el fin de semana.
Nota: El uso de DevTest Labs no cuesta nada adicional. Simplemente paga por los propios VM.
10. Evite pagar por las franjas horarias provisionales en los servicios en la Nube.
Con los servicios en la nube de Azure para funciones Web y de trabajo, paga el precio completo por las ranuras de preparación al igual que lo hace con las ranuras de producción. Es una buena idea implementar en las ranuras de preparación y luego cambiar la preparación a la producción para minimizar el tiempo de inactividad.
Asegúrese de eliminar las ranuras de preparación lo más rápido posible. Nada me hace enojar más que iniciar sesión en Azure y ver un montón de cosas desplegadas en las ranuras de puesta en escena sentadas allí sin ninguna razón.
Edite la vista en el Portal de Azure para agregar columnas para «Preparación » y» Producción», de modo que pueda ver rápidamente cuáles tienen algo en las ranuras de preparación. Los servicios en la nube le cuestan dinero incluso si los servidores están detenidos. Tienes que eliminarlos!
11. Combine aplicaciones web con planes de Azure App Service para reducir el número de servidores.
Una de las mejores características de Azure son los Servicios de aplicaciones. Puede crear un Plan de Servicio de aplicaciones que represente 2-3 o más servidores y luego empaquetar tantas aplicaciones web como desee en ellos.
Esto es una gran ventaja sobre pagar por un servidor completo para una aplicación web que casi no hace nada. Hemos utilizado Roles Web de servicio en la nube para siempre y, en algunos casos, tenemos 3 instancias de alta disponibilidad en una aplicación web que prácticamente no recibe tráfico. Es un desperdicio enorme.
12. Deje de usar Roles Web de Servicio en la Nube a menos que sea necesario.
A menos que tenga que usar Azure Cloud Services para roles Web, trabajaría para cambiar sus aplicaciones a Servicios de aplicaciones para aprovechar la combinación de varias aplicaciones en menos servidores.
Los servicios en la nube también tardan UNA eternidad en implementarse. Los servicios de aplicaciones son años luz más rápidos para implementarlos.
13. Utilice Azure Service Fabric o Container Service para combinar aplicaciones.
Por las mismas razones que mencioné anteriormente con los Servicios de aplicaciones y los roles Web, busque mover sus roles de trabajador a Service Fabric o Container Service. Ambos siguen el patrón, como los planes de servicio de aplicaciones, en los que básicamente aprovisionas un grupo de servidores y luego lanzas un montón de aplicaciones en ellos.
14. Utilice el escalado automático para reducir los costos durante las horas libres.
La mayoría de las aplicaciones tienen períodos más ocupados y lentos a lo largo de una semana o un día. Aproveche el escalado automático integrado en Azure para ahorrar algo de dinero durante períodos lentos.
Estos tipos de implementación de todo el apoyo de escalado automático:
- Servicios en la Nube
- Servicios App
- VM Escala Establece (Incluyendo el Lote, Servicio de Tela, Servicio de Contenedores)
Escala también podría significar cerrar la aplicación completamente. Los servicios de aplicaciones tienen una función llamada AlwaysOn que controla si la aplicación debe apagarse debido a que no hay actividad. También puede programar el cierre de sus servidores de desarrollo/control de calidad con algo como DevTest Labs. También hay servicios de terceros como Park My Cloud.
15. Utilice las funciones PaaS de Azure; no utilice las suyas propias en máquinas virtuales a menos que tenga que hacerlo.
He hablado con varias personas que usan Azure y su versión de usar Azure es configurar algunas máquinas virtuales y alojar su aplicación y SQL Server en esas máquinas virtuales.
Aprovechar Azure para máquinas virtuales e IaaS está bien, pero se está perdiendo muchas oportunidades para reducir los costos de administración y reducir los costos de Azure en su conjunto. A menos que tenga una muy buena razón para usar SQL en una máquina virtual, como comprar un equilibrador de carga de terceros que se ejecute en una máquina virtual y en otros escenarios, simplemente no lo haga.
En Stackify, aprovechamos todas las funciones de PaaS de Azure que podemos. Eso incluye SQL Azure, Redis, Almacenamiento de tablas, Bus de servicios, etc. La idea de configurar máquinas virtuales para Redis u otro servicio de colas parece una idea realmente terrible. La única excepción a eso para nosotros es elasticsearch.
Azure Search está disponible y es una oferta básica de PaaS de elasticsearch. Debido al gran tamaño y escala de nuestro clúster de elasticsearch, tiene más sentido administrarlo nosotros mismos.
16. Utilice grupos elásticos SQL.
Si tiene muchas bases de datos, debería considerar los grupos elásticos SQL.
Con Azure, debe elegir un nivel de rendimiento para cada base de datos individual. Esto funciona muy bien y proporciona un nivel de rendimiento predecible. Sin embargo, también resulta en un rendimiento de aprovisionamiento excesivo en muchos casos.
Piense en un grupo elástico de Azure SQL como más bien un servidor y puede asignar un montón de bases de datos a ese servidor. Esto permite que el rendimiento de cada base de datos fluya y fluya dentro de los recursos totales del servidor.
En Stackify cada uno de nuestros clientes tiene sus propias bases de datos SQL. Literalmente tenemos cientos de ellos, y agregamos otros nuevos y quitamos algunos todos los días. Los grupos elásticos de SQL son fundamentales para que podamos administrar tantas bases de datos a escala.
Mejore el rendimiento de su Propia Aplicación
OK, si ha maximizado cuánto gasta en Azure cuando se trata de sus precios generales de Azure y cómo implementa sus aplicaciones, es hora de comenzar a hacer algunos ajustes de rendimiento.
Sugeriría usar algún tipo de herramienta de APM como Retrace, Azure Application Insights o New Relic.
17. ¡Es hora de sacar a los perfiladores!
Si desea optimizar el rendimiento de su código, debe hacer algunos perfiles de código. Hay tres tipos diferentes de perfiladores y es posible que necesite los tres para mejorar realmente su código.
- Generador de perfiles estándar: perfile su código en su estación de trabajo para buscar métodos lentos en su código
- Rastreo de transacciones: capture solicitudes web completas a través de un ASP.NET perfilador y revisión de lo que está sucediendo
- APM: Realice un seguimiento del rendimiento general de su aplicación y sus dependencias
18. Identifique sus solicitudes o transacciones web más utilizadas y lentas.
Busque solicitudes que están tomando mucho tiempo o que ocurren un número moderado de veces pero tardan demasiado tiempo. Mira ASP.NET rastreos de transacciones para ver si están sucediendo demasiadas consultas SQL, servicios web lentos, etc.
La mayoría de las aplicaciones modernas están más vinculadas por llamadas a bases de datos o servicios web. Si su código en sí puede ser lento, probablemente desee usar un generador de perfiles.NET estándar, como el generador de perfiles de Visual Studio, para intentar averiguar por qué.
Principales solicitudes Web de Redireccionamiento APM
19. Optimice el rendimiento de la base de datos SQL.
Cada aplicación ocupada generalmente puede beneficiarse de algunos ajustes SQL básicos. SQL Azure tiene algunas funciones básicas excelentes para informes de rendimiento y recomendaciones de ajuste de índices.
Si necesita profundizar, asegúrese de consultar los DMV en SQL para identificar a qué consultas se accede más, usar la mayor cantidad de E / s, tomar más tiempo, etc. Además, tenga cuidado de ver cuánto tiempo tardan las consultas desde el punto de vista de su aplicación.
También puede aprovechar su herramienta APM para identificar qué consultas se utilizan más y qué acciones en su software las llaman.
Vista superior de consultas SQL desde Volver a trazar APM
20. Realice un seguimiento del uso y el rendimiento de todas las dependencias de la aplicación.
Más allá de SQL server, es probable que su aplicación realice llamadas a servicios web, utilice colas, almacenamiento en caché y otras dependencias, incluidas otras funciones de Azure como DocumentDB, Azure Storage, etc.
Asegúrese de que todas esas dependencias funcionan bien y se escalan correctamente a través de Azure.
Otras ideas para reducir los costos de Azure
Aquí hay algunas otras ideas a considerar para ayudar a reducir la cantidad que está gastando en Azure.
21. ¿Puedes usar una CDN?
Una CDN como Cloudflare hace que sea muy fácil agregar almacenamiento en caché de todos sus archivos estáticos sin cambios de código. Cloudflare también tiene un montón de características interesantes que se pueden usar para optimizar el rendimiento.
Azure también tiene una oferta de CDN muy simple que puede probar, pero no hace lo que hace Cloudflare.
22. ¿Puede usar la nueva opción de almacenamiento en frío de Azure?
Azure ahora ofrece almacenamiento Azure frío y cálido. Warm está diseñado para datos que se usan con frecuencia y cold para datos que se usan raramente. Si tiene muchos datos que apenas se usan, copias de seguridad, archivos u otros datos, asegúrese de revisar el almacenamiento en frío.
Optimizar los costos de alojamiento en la nube de Azure
Espero que haya encontrado útil esta lista. Asegúrese de comenzar con algunas de las ideas más simples para implementar y dejar la optimización de su código para el final.
Optimizar su código es, con mucho, la parte más difícil de hacer y puede llevar una enorme cantidad de tiempo y pruebas de regresión. En Stackify, tenemos API a las que se llaman millones y millones de veces al día. Si tiene código que se llama tantas veces como el nuestro, definitivamente vale la pena invertir en optimizaciones de código de bajo nivel, de lo contrario, tal vez no.