Recomendaciones para optimizar los costos del entorno

Se aplica a esta recomendación de lista de comprobación de optimización de costos de Azure Well-Architected Framework:

CO:08 Optimice los costos del entorno. Alinee el gasto para priorizar los entornos de preproducción, producción, operaciones y recuperación ante desastres. Para cada entorno, tenga en cuenta la disponibilidad necesaria, las licencias, las horas de funcionamiento y las condiciones y la seguridad. Los entornos que no son de producción deben emular el entorno de producción. Implemente inconvenientes estratégicos en entornos que no son de producción.

En esta guía se describen las recomendaciones para optimizar los costos de los entornos de carga de trabajo. Cada entorno debe adaptarse a su propósito específico y optimizarse para la rentabilidad. Es importante hacer inconvenientes estratégicos y asignar recursos en los que más importan, sin poner en peligro los componentes críticos. Al tratar los entornos de forma diferente y optimizarlos en consecuencia, puede lograr un equilibrio entre la optimización de costos y cumplir los objetivos necesarios.

Definiciones

Término Definición
Objetivo de punto de recuperación (RPO) Duración máxima aceptable de pérdida de datos durante un incidente.
Objetivo de tiempo de recuperación (RTO) El tiempo máximo aceptable que una aplicación puede estar no disponible después de un incidente.
Acuerdo de Nivel de Servicio (SLA) Un contrato contractual entre el proveedor de servicios y el cliente del servicio. El acuerdo define los objetivos de nivel de servicio (SLO). Si no se cumple el acuerdo, es posible que el proveedor de servicios tenga consecuencias financieras.

Estrategias de diseño principales

El objetivo de optimizar los costos del entorno es encontrar el equilibrio adecuado de valor, costo y riesgo para cada entorno, incluidos los entornos de producción, preproducción y recuperación ante desastres (DR). Personalice cada entorno para su uso particular para ahorrar dinero y usar eficazmente los recursos. Determine las ventajas de cada entorno, como la eficiencia o la satisfacción del cliente. Quiere evaluar la rentabilidad de la inversión (ROI) para el entorno, incluso si no obtiene beneficios directos. Gaste más dinero en entornos de alto riesgo para reducir los problemas y ahorrar dinero en entornos de bajo riesgo. El objetivo es equilibrar el valor, el costo y el riesgo en cada entorno.

Evaluación del valor del entorno

Evaluar el valor de cada entorno significa comprender su efecto más amplio en la satisfacción del usuario empresarial, la medición de la satisfacción del usuario y determinar cómo se alinea con los objetivos generales de la organización. Esta evaluación le ayuda a tomar decisiones informadas sobre la asignación de recursos y a alinear el costo con las prioridades ambientales. La esencia del valor se extiende más allá de la cantidad de ingresos que genera un entorno. Al evaluar el valor de un entorno, debe priorizar el gasto de una manera que resuene con los objetivos de la carga de trabajo. Para evaluar el valor de cada entorno, tenga en cuenta los siguientes factores:

  • Considere el usuario: considere quién usa cada entorno y lo que necesita de él. Por ejemplo, los clientes usan el entorno de producción, que debe ser confiable y cumplir los Acuerdos de Nivel de Servicio específicos para el rendimiento y el tiempo de actividad.

    Por otro lado, el entorno de desarrollo es principalmente para el equipo de cargas de trabajo, como desarrolladores y evaluadores. Este entorno no tiene que cumplir los Acuerdos de Nivel de Servicio orientados al cliente, pero debe tener las herramientas y recursos necesarios para que el equipo funcione de forma eficaz.

    Cuando comprenda las necesidades únicas de los usuarios de cada entorno, puede asignar mejor los recursos y evitar costos adicionales. Esta prevención ayuda a garantizar que cada entorno sea funcional y rentable.

  • Alinearse con las medidas de valor de la organización: alinee los esfuerzos de reducción de costos con las prioridades de su organización, como la satisfacción de los empleados o los beneficios. Para cada entorno, comprenda cómo se define el éxito, por lo que puede mantener las acciones en el destino. Por ejemplo, si su organización se centra en la maximización de beneficios o la satisfacción de los empleados, alinee sus decisiones de gasto con esas métricas.

Determinación de los costos del entorno

Determinar los costos del entorno consiste en conocer los costos de infraestructura, servicios, licencias y gastos operativos en cada entorno de carga de trabajo. Las herramientas de administración de costos son clave para obtener información sobre los patrones de gasto y las tendencias en todos los entornos. Para determinar los costos del entorno, tenga en cuenta estas estrategias:

  • Identificar los impulsores de costos: identifique los factores clave que impulsan los costos en cada entorno. Estos factores pueden incluir el uso de recursos, el uso del almacenamiento, la retención de datos, la transferencia de datos y servicios específicos.

  • Evaluar riesgos: evalúe los riesgos asociados a las decisiones de gasto y su posible efecto en el entorno y las operaciones empresariales. Tenga en cuenta factores como la seguridad de los datos, el cumplimiento, el rendimiento, las auditorías y los requisitos del Acuerdo de Nivel de Servicio.

  • Supervisar y ajustar el gasto: supervise y analice continuamente los patrones de gasto, la entrega de valores y los factores de riesgo. Revise y ajuste periódicamente las estrategias de optimización de gasto a medida que evolucionan las necesidades del entorno y la empresa.

Optimización del entorno de producción

La optimización de los costos en el entorno de producción implica la implementación de estrategias para reducir los gastos innecesarios y mejorar las eficiencias operativas. Céntrese en diferenciar las implementaciones de producción y satisfacer las necesidades de los usuarios. Estas son las recomendaciones para optimizar el entorno de producción:

  • Diferenciar regiones: gaste menos en regiones que sirvan a menos clientes. Por ejemplo, debe invertir más en una región que sirva al 90 % de los usuarios que en una región que sirva al 10 % de los usuarios. Ajuste la estrategia de implementación para satisfacer los requisitos de cada región y segmento de usuario.

  • Diferenciar el escalado: implemente estrategias de escalado horizontal y vertical. Escale los recursos de forma eficaz para satisfacer la demanda sin aprovisionamiento excesivo.

  • Diferenciar infraestructura: elija soluciones de infraestructura y hardware rentables que cumplan el rendimiento y la escalabilidad necesarios. Tenga en cuenta factores como el rendimiento, el costo, la confiabilidad y la escalabilidad.

  • Ajuste de los modelos de inquilino: personalice el entorno en función del modelo de inquilino. Por ejemplo, gaste más en servicios y características para inquilinos de pago y gaste menos en inquilinos sin pagar.

Optimización del entorno de recuperación ante desastres

Un entorno de recuperación ante desastres hace referencia a la infraestructura y los procesos que una carga de trabajo usa para recuperarse después de un evento perjudicial. Los eventos perjudiciales incluyen desastres naturales, ataques cibernéticos y errores de hardware. Equilibre el costo de mantener un entorno de recuperación ante desastres y los posibles efectos de un evento perjudicial. Considere las estrategias siguientes:

  • Evaluar la importancia de los sistemas y los datos: evalúe la importancia de los sistemas y los datos para determinar el nivel necesario de protección y recursos para cada componente.

  • Determinar RTO y RPO: para ayudar a determinar el diseño del entorno de recuperación ante desastres, defina los límites aceptables de tiempo de inactividad y pérdida de datos para cada sistema o aplicación.

  • Optimizar un entorno de recuperación ante desastres en frío: un entorno de recuperación ante desastres en frío tiene poca o ninguna infraestructura ni servicios en ejecución. Puede usar la infraestructura como código (IaC) para implementar rápidamente la infraestructura durante un evento perjudicial. Las directivas de copia de seguridad y almacenamiento deben cumplir los RPO y los RTO del entorno. Asegúrese de que la cantidad y la frecuencia de las copias de seguridad de datos no sean más sólidas de las necesarias.

    Compensación: un entorno de recuperación ante desastres en frío es una opción rentable, pero es posible que tenga tiempos de recuperación largos.

  • Optimizar un entorno de recuperación ante desastres activa: toda la infraestructura y los servicios se ejecutan en un entorno de recuperación ante desastres activa. Los datos reflejan el sitio primario en tiempo real. Proporciona una conmutación por error casi instantánea y una pérdida de datos mínima si se produce un desastre. Considere una implementación activa-activa para optimizar los costos.

  • Optimización de un entorno de recuperación ante desastres semiactivo: un enfoque de recuperación ante desastres semiactivo es un medio entre un entorno de recuperación ante desastres frío y un entorno de recuperación ante desastres caliente. Un entorno intermedio está parcialmente activo y se sincroniza periódicamente con el sitio primario. Ofrece un equilibrio entre el costo y el tiempo de recuperación. Sin embargo, es el enfoque menos rentable. Considere un enfoque frío o frecuente para optimizar los costos.

Optimización de entornos de preproducción

La optimización de entornos de preproducción implica administrar estratégicamente los recursos dentro de las áreas de desarrollo, pruebas y ensayo para simular estrechamente la producción, a la vez que se reducen los costos innecesarios. Los entornos de preproducción no requieren la escala completa y la disponibilidad de los entornos de producción. La mayoría de las oportunidades se encuentran en la adaptación de estos entornos a necesidades específicas de pruebas y desarrollo sin duplicar la producción exactamente. Las áreas de reducción de costos incluyen el uso de recursos de menor costo, la desactivación de los servicios innecesarios y la aplicación de descuentos ofrecidos para el uso de preproducción. Tenga en cuenta las estrategias siguientes para optimizar los entornos de preproducción:

Evaluación de entornos de preproducción

La asignación insuficiente o incorrecta de los entornos de preproducción puede dar lugar a un aprovisionamiento excesivo o al aprovisionamiento insuficiente de recursos. Para evaluar los entornos de preproducción para la carga de trabajo, tenga en cuenta las instrucciones siguientes:

  • Comprender los tipos de entorno: identifique los tipos de entornos de preproducción, como el desarrollo, las pruebas y el almacenamiento provisional, que necesita para la carga de trabajo. Cada entorno debe tener un rol definido y una función específica para garantizar una asignación de recursos eficaz.

  • Alineación con los requisitos de los usuarios: antes de configurar entornos de preproducción, comprenda los requisitos y expectativas de los usuarios. Adapte las características y especificaciones en función de sus necesidades para evitar gastos innecesarios de características o recursos.

  • Consolidar el entorno: determine si puede combinar entornos sin poner en peligro su funcionalidad. Combine entornos que tienen funciones que no se superponen. Por ejemplo, puede combinar un entorno de aceptación de usuario con un entorno de control de calidad. Las funciones son distintas y un entorno suele estar inactivo cuando el otro está en uso.

    Riesgo: tenga cuidado al combinar entornos para asegurarse de que no introduce conflictos ni pone en peligro los procesos de prueba o desarrollo.

En la tabla siguiente se proporcionan ejemplos de entornos de preproducción comunes.

Ejemplo del entorno de preproducción Descripción
Entorno de desarrollo Los desarrolladores usan este entorno para escribir y probar código. Proporciona un espacio de espacio aislado para que los desarrolladores puedan experimentar, compilar e integrar cambios de código.
Entorno de control de calidad Este entorno está dedicado a las actividades de control de calidad. Para realizar pruebas, debe identificar y corregir errores o problemas antes de implementarlos en el entorno de producción.
Entorno de seguridad Este entorno es para las pruebas de seguridad. Es para garantizar que una aplicación sea segura frente a amenazas y vulnerabilidades.
Entorno de pruebas de aceptación del usuario En este entorno, los usuarios finales y las partes interesadas prueban una aplicación para validar su funcionalidad y asegurarse de que cumple los requisitos y las expectativas.
Entorno de ensayo Este entorno se parece mucho al entorno de producción. Es para pruebas y validación finales antes de realizar la implementación en producción.

Aplicación de la gobernanza

La aplicación de la gobernanza consiste en limitar las opciones de implementación en entornos de preproducción para controlar los gastos y mitigar los riesgos. En la preproducción, tiene flexibilidad para adaptar configuraciones e implementar recursos. Cuanto más se desvíe el entorno de preproducción del entorno de producción, mayor será el riesgo potencial. Use la gobernanza para restringir los entornos de preproducción. Tenga en cuenta las directrices siguientes:

  • Limitar los niveles de rendimiento: evalúe los requisitos de rendimiento de los entornos de preproducción. Elija los niveles de rendimiento que equilibran el costo y el rendimiento. Un servicio suele tener distintos niveles de rendimiento y algunos de estos niveles son más adecuados para las pruebas. Algunos servicios tienen niveles que ofrecen características similares a la producción, pero no vienen con un Acuerdo de Nivel de Servicio. Estos servicios reducen los costos, pero siguen proporcionando la funcionalidad necesaria para las pruebas y el desarrollo.

  • Descripción de las SKU de preproducción: algunas SKU están diseñadas para entornos de desarrollo. Para optimizar los costos, evalúe los servicios y los niveles. Opte por niveles de bajo rendimiento si la carga de trabajo no requiere un alto rendimiento.

  • Controlar el número de instancias y CPU: determine el número óptimo de instancias y recursos de CPU que necesita el entorno de preproducción en función de las demandas de carga de trabajo. Evite el aprovisionamiento excesivo de recursos para minimizar los costos.

  • Limitar la retención y el registro: defina directivas de retención para registros y datos en entornos de preproducción. Tenga en cuenta la duración necesaria para conservar los registros y los datos en función de los requisitos de cumplimiento y las consideraciones de costos. Evite el registro excesivo y la retención para reducir los costos de almacenamiento.

  • Usar una arquitectura de CPU coherente: use la misma arquitectura de CPU en preproducción y producción. Por ejemplo, las aplicaciones x86 no se ejecutan de forma nativa en Azure Resource Manager y viceversa. Use la misma arquitectura de CPU que el entorno de producción para garantizar la compatibilidad y minimizar los posibles problemas.

  • Use el mismo sistema operativo: evite cambiar el sistema operativo (por ejemplo, de Windows a Linux) o kernel en entornos de preproducción. El software creado para Windows a menudo no se ejecuta de forma nativa en Linux sin una capa de compatibilidad y viceversa. Los sistemas de archivos y las estructuras de directorio son diferentes, lo que puede provocar problemas de aplicación de revisiones. Los entornos coherentes ayudan a reducir el riesgo de problemas de compatibilidad y a garantizar implementaciones fluidas.

  • Restringir el escalado: para optimizar el costo, puede restringir la automatización para mitigar la automatización descontrolada. Por ejemplo, establezca un límite de escalado máximo en tres en el entorno de desarrollo y establézcalo en 10 en el entorno de producción. Restrinja el escalado para ayudar a controlar el uso de recursos y el costo de automatización.

  • Desactivar los recursos innecesarios: desactive los recursos cuando no se usen activamente, como durante las horas de desactivación y los fines de semana. Puede usar herramientas o scripts de automatización para programar el apagado y el inicio de los recursos. Algunos proveedores proporcionan API que puede usar para detener e iniciar los recursos mediante programación. Considere la posibilidad de usar IaC para crear entornos efímeros que puede quitar cuando ya no los necesite.

  • Restringir las regiones disponibles: tenga en cuenta la ventaja potencial de ejecutar entornos de preproducción en diferentes regiones donde los recursos de Azure podrían ser más baratos. Restrinja las implementaciones de preproducción a estas regiones para optimizar el costo de estos entornos.

Equilibrio de similitud con producción

A menudo, es innecesario y costoso que los entornos de preproducción reflejen exactamente el entorno de producción. El objetivo es garantizar que cada entorno de preproducción sea adecuadamente diferente de la producción para evitar costos innecesarios. Sin embargo, cuando la preproducción y la producción son diferentes, existe el riesgo de implementar un error en producción. Cuantos más diferentes son estos entornos, más riesgo existe. Adaptar el entorno de preproducción para satisfacer sus necesidades puede ayudarle a administrar los riesgos a la vez que optimiza el costo. Para equilibrar la similitud con la producción, tenga en cuenta las siguientes recomendaciones:

  • Evitar réplicas exactas: evite hacer que el entorno de preproducción sea una copia exacta de producción. Puede aumentar innecesariamente los costos. Create un entorno de preproducción rentable, pero que le permite descubrir y abordar posibles riesgos antes de la implementación.

  • Evitar desviaciones extremas: evite la desviación excesiva de la producción, como el uso de diferentes servicios. Es posible que los distintos servicios no simulen con precisión los riesgos reales. Determine un umbral de riesgo y no cruce el umbral únicamente para ahorrar dinero.

  • Acortar los tiempos de ejecución: considere la posibilidad de acortar los tiempos de ejecución de los procesos en la fase de preproducción para ahorrar dinero. Tenga cuidado con las nuevas vulnerabilidades que pueden surgir, como pérdidas de memoria no detectadas.

  • Revisar licencias: revise los planes de licencia de las herramientas de seguridad. Si el número de nodos varía significativamente entre las configuraciones de producción y de preproducción, vuelve a evaluar sus necesidades para ajustar los costos sin poner en peligro la seguridad.

Optimización de entornos de desarrollo

Los entornos de desarrollo están diseñados para fines de desarrollo, pruebas y depuración. Tienen ciclos de vida más cortos y a menudo se crean según sea necesario y existen durante un breve tiempo. Los entornos de desarrollo suelen tener requisitos más bajos para la confiabilidad, la capacidad y la seguridad en comparación con otros entornos de preproducción y producción. Es posible que tengan menos funcionalidades y puedan aceptar un menor uso de recursos. Para optimizar el entorno de desarrollo:

  • Evaluar herramientas: evalúe periódicamente la rentabilidad de la configuración actual de las herramientas, incluidos los entornos de desarrollo integrados (IDE), las licencias y las herramientas relacionadas. Considere las alternativas gratuitas o de código abierto que ofrecen una funcionalidad similar sin poner en peligro la calidad. Vuelva a evaluar continuamente la necesidad y eficiencia de estas herramientas a medida que evoluciona el panorama de desarrollo.

  • Considere el hardware: evalúe el costo y el rendimiento de las configuraciones de hardware actuales. Invertir en hardware mejor y más eficaz puede mejorar la productividad y reducir los costos a largo plazo. En lugar de reemplazar hardware frecuentemente, considere la posibilidad de actualizar los sistemas existentes para prolongar su vida útil y mejorar el rendimiento.

  • Optimizar el número de entornos: analice las ventajas y desventajas de los entornos de desarrollo individualizados frente a un entorno compartido. Los entornos individuales pueden imitar las configuraciones de producción, evitar la interferencia entre los desarrolladores y ofrecer configuraciones personalizadas. Sin embargo, el escalado se vuelve más costoso a medida que aumenta el número de desarrolladores. Los entornos compartidos pueden ahorrar costos, pero pueden surgir problemas de confiabilidad si los problemas afectan a todo el equipo de desarrollo simultáneamente. Busque el equilibrio adecuado en función del costo, la mitigación de riesgos, la eficiencia y la satisfacción del desarrollador.

  • Limpieza periódica: limpie y optimice periódicamente el entorno de desarrollo para evitar la acumulación de recursos huérfanos, datos no utilizados y experimentos de prueba de concepto. Implemente procesos de limpieza o herramientas automatizadas para identificar y quitar recursos no utilizados. Mantener solo componentes esenciales y activos. La limpieza regular ayuda a reducir los costos de almacenamiento y garantiza un uso eficaz de los recursos.

  • Implementar el escalado muestreado: en lugar de escalar todos los componentes a su capacidad máxima, considere un enfoque muestreado en el que se escalan selectivamente los componentes vitales. Este enfoque puede ser rentable, a la vez que se minimizan los riesgos. Evalúe la relación de riesgo a beneficio de no escalar determinados elementos y tenga en cuenta el posible efecto en el entorno.

  • Optimización de la administración de datos: los entornos de desarrollo pueden tener necesidades bajas para la retención de datos y la frecuencia de copia de seguridad.

Consideración de la emulación de punto de conexión

Puede optimizar los costos en un entorno de preproducción mediante la emulación de puntos de conexión o puntos de conexión ficticios, especialmente para recursos costosos como GPU. Identifique los componentes o servicios del entorno de preproducción que son los más caros o que consumen muchos recursos. Use puntos de conexión ficticios para simular las respuestas de estos componentes costosos sin invocarlos. Para simular respuestas de API, puede usar herramientas como WireMock, el servidor ficticio de Postman o implementaciones personalizadas.

La emulación y los puntos de conexión ficticios ayudan a ahorrar costos, pero debe asegurarse de que representan el entorno de producción a un grado suficiente para las pruebas. Lograr un equilibrio entre la precisión y el costo para ayudar a evitar problemas futuros en producción. Por ejemplo, si las GPU son un factor de costo importante, considere la posibilidad de emulación de GPU para las tareas que no requieren una potencia real de procesamiento de GPU en fases de preproducción. Es posible que la emulación no represente completamente el rendimiento o las peculiaridades de las GPU reales, por lo que úsela cuando el comportamiento exacto de la GPU no sea fundamental para las pruebas de preproducción.

Facilitación de Azure

Determinar y optimizar los costos del entorno:Microsoft Cost Management es un conjunto de herramientas que ayudan a las organizaciones a supervisar, asignar y optimizar el costo de sus cargas de trabajo de Microsoft Cloud. Cost Management está disponible para cualquier persona con acceso a un ámbito de facturación o administración de recursos.

Azure Advisor es una herramienta que proporciona recomendaciones de optimización de costos, incluida la identificación de áreas de uso de máquinas virtuales que necesitan optimización. Use Advisor para ayudarle a tomar decisiones informadas y optimizar los costos en su entorno de Azure. Azure proporciona herramientas y características de administración de costos que ayudan a priorizar el gasto. Puede usar estas herramientas para realizar un seguimiento y analizar los costos en entornos, establecer presupuestos y recibir recomendaciones de optimización de costos.

Aplicación de la gobernanza: con Azure Policy, puede limitar los tipos de recursos, las SKU y las instancias mediante la definición de reglas de directiva que aplican restricciones en los tipos de recursos que puede implementar en el entorno de Azure. Puede mantener el control sobre los recursos aprovisionados y garantizar el cumplimiento de las directivas y los procedimientos recomendados de su organización.

Para limitar los tipos de recursos mediante Azure Policy, puede definir reglas de directiva que especifiquen los tipos de recursos permitidos. Aplique esas reglas a las suscripciones o grupos de recursos de Azure pertinentes. Azure Policy impide que los usuarios implementen recursos que no están permitidos.

Use Azure Resource Manager para definir y administrar recursos de forma declarativa. Puede ajustar los recursos que se asignan a cada entorno en función de sus requisitos específicos. Use plantillas y parametrice las configuraciones de recursos para optimizar los costos.

Optimización de entornos de preproducción: Azure ofrece opciones de precios de desarrollo y pruebas que proporcionan tarifas con descuento para entornos que no son de producción. Puede asignar más recursos y presupuesto a entornos de producción críticos, lo que optimiza los costos en entornos que no son de producción. También puede usar la oferta de licencias de Azure, Ventaja híbrida de Azure.

Puede usar Azure API Management para la simulación de API. API Management actúa como una fachada a los servicios back-end, lo que permite a los proveedores de API abstraer las implementaciones de API y evolucionar la arquitectura de back-end sin afectar a los consumidores de API.

Lista de comprobación de optimización de costos

Consulte el conjunto completo de recomendaciones.