Recomendaciones para optimizar los costos del entorno
Se aplica a esta recomendación de lista de comprobación de optimización de costos del marco de trabajo bien diseñado de Azure:
CO:08 | Optimización de los costos del entorno. Alinee los gastos 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 sean 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) | Acuerdo 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 contrato, 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 concreto para ahorrar dinero y usar recursos de forma eficaz. 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 un beneficio directo. Gasta más dinero en entornos de alto riesgo para reducir problemas y ahorrar dinero en entornos de bajo riesgo. Pretende 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 el negocio, la satisfacción de los usuarios 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 SLA 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 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 beneficios o los empleados. 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 los gastos: 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 del negocio.
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 cumplir 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 exceso de aprovisionamiento.
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 de pago.
Optimización de entornos de recuperación ante desastres
Un entorno de recuperación ante desastres hace referencia a la infraestructura y los procesos que usa una carga de trabajo para recuperarse después de un evento disruptivo. Los eventos disruptivos incluyen desastres naturales, ciberataques 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 RPO 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 disruptivo. Las directivas de copia de seguridad y almacenamiento deben cumplir los RPO y los RPO 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.
Optimización de un entorno de recuperación ante desastres frecuente: toda la infraestructura y los servicios se ejecutan en un entorno de recuperación ante desastres frecuente. 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.
Optimizar un entorno de recuperación ante desastres cálido: un enfoque de recuperación ante desastres cálido es un medio entre un entorno de recuperación ante desastres frío y un entorno de recuperación ante desastres calientes. 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 optimizado para menos costos. 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 almacenamiento provisional 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 adaptar estos entornos a necesidades específicas de pruebas y desarrollo sin duplicar la producción exactamente. Entre las áreas de reducción de costos se incluyen el uso de recursos de menor costo, la desactivación de 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 podría provocar un aprovisionamiento excesivo o un 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.
Alinearse 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 comunes de preproducción.
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 los cambios de código. |
Entorno de control de calidad | Este entorno está dedicado a las actividades de control de calidad. Se trata de pruebas para identificar y corregir errores o problemas antes de realizar la implementación 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 las pruebas y la 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. Ten 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 el entorno de preproducción necesita en función de las demandas de carga de trabajo. Evite el exceso de aprovisionamiento 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 máximo de escalado 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 recursos innecesarios: desactive los recursos cuando no se usen activamente, como durante las horas 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 las posibles ventajas de ejecutar entornos de preproducción en diferentes regiones en las que 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 la similitud con la producción
A menudo, los entornos de preproducción no son necesarios y costosos para reflejar exactamente el entorno de producción. El objetivo es asegurarse de que cada entorno de preproducción es 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 sean estos entornos, más riesgo existe. Adaptar el entorno de preproducción para satisfacer sus necesidades puede ayudarle a administrar los riesgos al optimizar 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. Cree un entorno de preproducción rentable, pero que le permita 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 diferentes servicios no simulan 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 preproducción, vuelve a ajustar los costos sin comprometer 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 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 eficiente puede mejorar la productividad y reducir los costos a largo plazo. En lugar de reemplazos de hardware frecuentes, 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 de forma rutinaria el entorno de desarrollo para evitar la acumulación de recursos huérfanos, datos sin usar y experimentos de prueba de concepto. Implemente procesos de limpieza o herramientas automatizadas para identificar y quitar recursos no utilizados. Mantenga solo componentes esenciales y activos. La limpieza normal ayuda a reducir los costos de almacenamiento y garantiza un uso eficaz de los recursos.
Implementar 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 considere el posible efecto en el entorno.
Optimización de la administración de datos: los entornos de desarrollo pueden tener bajas necesidades para la retención de datos y la frecuencia de copia de seguridad.
Considere la posibilidad de emulación de punto de conexión
Puede optimizar los costos en un entorno de preproducción mediante la emulación de punto de conexión o puntos de conexión ficticios, especialmente para recursos costosos como GPU. Identifique componentes o servicios en el entorno de preproducción que sean los más costosos 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 servidores ficticios de API comerciales o código abierto 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 crítico 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, incluidas las áreas de identificación del uso de máquinas virtuales que necesitan optimización. Use Advisor para ayudarle a tomar decisiones fundamentadas 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 asignados 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 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.