Recomendaciones para optimizar los costos de los componentes
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:07 | Optimización de los costos de los componentes. Quite o optimice periódicamente los componentes de carga de trabajo heredados, innecesarios y infrautilizados, incluidas las características de la aplicación, las características de la plataforma y los recursos. |
---|
En esta guía se describen las recomendaciones para optimizar los costos de los componentes de carga de trabajo. La optimización de los costos de componentes se refiere al proceso de evaluación y mejora de la rentabilidad de los elementos individuales dentro de una carga de trabajo. Hace hincapié en la revisión continua y la posible eliminación o mejora de los componentes obsoletos, innecesarios o poco utilizados, como las características de la aplicación, las características de la plataforma y los recursos. También cubre la optimización de costos de los entornos de recuperación ante desastres y cómo evitar la introducción de componentes no optimizados. Las instrucciones de este artículo se aplican a las cargas de trabajo existentes que no están en la fase de diseño. El abandono de la optimización de componentes normal puede provocar costos inflados, residuos de recursos y cargas de trabajo ineficaces que agotan tanto el tiempo como el dinero.
Definiciones
Término | Definición |
---|---|
Característica de aplicación | Una funcionalidad distinta dentro del software de aplicación que permite a los usuarios realizar tareas específicas o acceder a información específica. |
Característica de la plataforma | Una funcionalidad o funcionalidad específica proporcionada por una plataforma. Puede variar en función de la plataforma, pero por lo general, las características de la plataforma están diseñadas para mejorar la experiencia del usuario, mejorar la productividad o habilitar tareas o acciones específicas. |
Resource | Una sola entidad o componente que puede crear, configurar y utilizar dentro de un proveedor de servicios en la nube. |
Estrategias de diseño principales
La optimización de los componentes de carga de trabajo consiste en refinar los distintos elementos de una carga de trabajo, incluidas las características de la aplicación, las funcionalidades de la plataforma y los recursos. El objetivo es garantizar que la carga de trabajo use todos los componentes de forma eficaz y rentable. Entre las estrategias se incluyen la eliminación, modificación y evitación de componentes que hacen que gaste más de lo que necesita. El proceso de optimización de costos de componentes garantiza la asignación de recursos a características y componentes que proporcionan el máximo valor, lo que evita gastos innecesarios.
Optimización de las características de la aplicación
La optimización de las características de la aplicación es el proceso de eliminación, reinversión o monetización de las características de la aplicación en función del valor. Garantiza la asignación de recursos a las características de la aplicación que proporcionan el máximo valor a los clientes. La optimización de las características de la aplicación ayuda a evitar la inversión en características que contribuyen a la deuda técnica o no devuelven suficiente rentabilidad sobre la inversión.
Evaluación del valor de la característica de la aplicación
Para determinar el valor de una característica, tenga en cuenta sus efectos en la aplicación general y el valor que proporciona a los clientes. Algunos factores que se deben tener en cuenta son:
Necesidades del cliente: evalúe la forma en que la característica satisface las necesidades y expectativas de los clientes. Los comentarios de los clientes, las encuestas y los datos de uso pueden ser valiosos para comprender el valor percibido.
Objetivos empresariales: evalúe cómo se alinea la característica con los objetivos estratégicos de la empresa. Tenga en cuenta cómo las características admiten la generación de ingresos, la satisfacción del cliente o la ventaja competitiva.
Efecto en la experiencia del usuario: determine el efecto que tiene la característica para mejorar la experiencia del usuario y mejorar la facilidad de uso o la productividad.
Diferenciación: evalúe si la característica proporciona un punto de venta único o una ventaja competitiva en comparación con otras aplicaciones del mercado.
Evaluación del costo de características de la aplicación
Es esencial que comprenda el costo asociado a cada característica para la optimización y la asignación de recursos eficaces. Tenga en cuenta varios aspectos al evaluar los costos, como:
Esfuerzo de desarrollo: evalúe el tiempo, los recursos y la experiencia necesarios para desarrollar y mantener la característica o las características circundantes. Las características infrautilizadas suelen convertirse en una fuente clave de deuda técnica.
Mantenimiento y soporte técnico: tenga en cuenta los costos continuos asociados con el mantenimiento y la compatibilidad de la característica, incluidas las correcciones de errores, las actualizaciones de seguridad y la solución de problemas.
Infraestructura y uso de recursos: evalúe el efecto de la característica en los requisitos de infraestructura, incluidos los recursos del servidor, el almacenamiento y el ancho de banda.
Complejidad de la integración: evalúe la complejidad y el costo de integrar la característica con otros sistemas o servicios de terceros.
Consideraciones de rendimiento: evalúe el efecto de la característica en el rendimiento de la aplicación, incluida la escalabilidad, el tiempo de respuesta y el uso de recursos.
Revisión del valor de la característica de la aplicación con las partes interesadas
Revise el valor de las características de la aplicación con las partes interesadas mediante la participación de personal clave, como administradores de productos, desarrolladores de software y analistas de negocios, para evaluar el valor de características específicas en los objetivos empresariales. Esta colaboración es esencial para la optimización de costos, ya que proporciona información sobre los esfuerzos de mantenimiento e identifica características que podrían dificultar la productividad o destraer el desarrollo de nuevas características valiosas. El equipo de desarrollo puede proporcionar información importante sobre cuánto trabajo se necesita para mantener determinadas características. Anímelos a hablar sobre las características que podrían ser más problemáticas de las que merecen la pena, especialmente si estas características distraen al equipo de la creación de nuevas.
Determinar el futuro de la característica
En función del análisis y la evaluación, determine el futuro de las características de la aplicación. Quite, vuelva a invertir o monetizar cualquier característica de aplicación que no proporcione una rentabilidad de la inversión:
Eliminación: considere el fin de vida planeado de una característica de aplicación en función de los datos. Las razones para la eliminación de características pueden incluir baja demanda del cliente, altos costos de mantenimiento, complejidad o redundancia que no merecen la pena corregir. Cree un plan para la eliminación, lo que podría implicar la refactorización del código, la actualización de dependencias o la reorganización de la interfaz de usuario.
Riesgo: puede quitar accidentalmente características críticas para determinados usuarios o escenarios y que podrían afectar negativamente al rendimiento, las operaciones y la seguridad de la aplicación.
Reinversión: es posible que algunas características de la aplicación no agreguen suficiente valor en su estado actual, pero podrían agregar valor si vuelve a invertir en ellas. La reinversión significa volver a trabajar o promover la característica de aplicación. Priorice las mejoras identificadas en función de su valor y viabilidad. Determine la hoja de ruta y la escala de tiempo para implementar los cambios. Tenga en cuenta factores como recursos de desarrollo, dependencias y el posible efecto en la aplicación.
Monetizar: convierta las características de la aplicación en una oportunidad de generación de ingresos a través de la monetización. A veces, las características proporcionan valor a los usuarios, pero no merecen la pena la inversión actual. Explore las oportunidades para monetizar estas características, como ofrecerlas como complementos de pago independientes o autorizarlas a otras empresas.
Optimización de los recursos de carga de trabajo
La optimización de los recursos de carga de trabajo implica quitar los recursos que no se usen y optimicen los recursos infrautilizados que necesite la carga de trabajo. Este esfuerzo puede ahorrar dinero, evitar residuos y asegurarse de que la carga de trabajo solo usa los recursos que agregan valor.
Quite los recursos de carga de trabajo no utilizados. Los recursos no utilizados se implementan servicios que los procesos de carga de trabajo o operaciones no usan. Estos recursos pueden estar inactivos a largo plazo, huérfanos o olvidados. No proporcionan rentabilidad sobre la inversión, y usted debe quitarlos. Entre las causas comunes de los recursos no utilizados se incluyen las siguientes:
- Alertas.
- Compilaciones de demostración.
- Retirada del entorno.
- Retirada de características.
- Direcciones IP.
- Firewalls de red.
- Prueba de concepto.
- Instantáneas.
- Cuentas de almacenamiento.
- Entornos de pruebas temporales.
- Entornos de evaluación de prioridades temporales.
Para quitar recursos no utilizados en una carga de trabajo, tenga en cuenta estos pasos:
Realizar un inventario: realice un inventario exhaustivo de todos los recursos de la carga de trabajo en todos los entornos.
Buscar recursos huérfanos: los recursos se pueden quedar huérfanos cuando ya no son necesarios o cuando se quitan sus recursos primarios. Por ejemplo, puede quitar una máquina virtual, pero no se quita su cuenta de almacenamiento asociada. Revise la carga de trabajo para identificar los recursos innecesarios o huérfanos.
Quitar componentes inactivos: normalmente hay un costo asociado a un recurso implementado. Incluso si el recurso le permite detener o reasignar, es posible que siga pagando por el recurso. Considere la posibilidad de quitar recursos inactivos. Si necesita los datos, haga una copia de seguridad primero y, a continuación, quite el recurso. Es mejor volver a implementar el recurso y restaurar los datos que permitir que el recurso permanezca inactivo.
Optimice los recursos infrautilizados. Los recursos infrautilizados representan gastos desaprovechados a medida que se paga por la capacidad de recursos que no se utiliza por completo. Identifique y optimice estos recursos para reducir los costos y asignar recursos de forma más eficaz. Para evaluar y optimizar el costo de los recursos infrautilizados, siga estos pasos:
Supervisar recursos: use herramientas para supervisar la cantidad de CPU, memoria y almacenamiento que realmente use. Elija el mejor plan que se adapte a sus necesidades en función de esta información.
Análisis del uso: examine los datos para averiguar qué recursos no usa. Preste atención a los recursos que tienen un uso bajo a lo largo del tiempo o grandes diferencias en el uso entre tiempos ocupados y lentos.
Ajuste de tamaño correcto: compruebe si hay demasiados recursos asignados a características que no están en uso. Si es así, ajuste su tamaño para que coincida mejor con lo que realmente necesita.
Escalado automático: use el escalado automático para ajustar los recursos que usa en función de lo ocupado que esté. Asegúrese de establecer un límite máximo de escalado para evitar picos repentinos que pueden ser costosos e innecesarios.
Después de realizar estos ajustes, pruebe para asegurarse de que todo sigue funcionando como debería. Supervise continuamente el uso de los recursos y ajuste la asignación de recursos a medida que cambian las demandas de carga de trabajo a lo largo del tiempo. Revise y optimice periódicamente el uso de recursos para mantener la eficiencia de los costos y la optimización del rendimiento.
Optimice los recursos de recuperación ante desastres. Optimizar los entornos de recuperación ante desastres consiste en asegurarse de que los recursos asignados para la recuperación ante desastres se usan de forma eficaz. Una estrategia de recuperación ante desastres activa(activa-pasiva) es una fuente común de infrautilización. En una estrategia de recuperación ante desastres cálida, un entorno recibe toda la carga mientras el otro entorno está inactivo hasta que haya un escenario de desastre. Para optimizar un entorno de recuperación ante desastres, considere cómo un enfoque activo (activo-activo), inactivo (activo desactivado) o de reimplementación activa puede ayudar a evitar recursos infrautilizados. Esta es una introducción a estos tres enfoques de recuperación ante desastres:
Planes de acceso frecuente: los entornos principal y secundario sirven de forma simultánea al tráfico. La carga de trabajo puede equilibrar las cargas entre estos entornos y responder a las demandas en tiempo real. La distribución de la carga entre dos entornos activos le permite usar recursos más baratos, reducir los cuellos de botella de punto único y utilizar capacidades al máximo. Puede dar lugar a costos reducidos en términos de wastage o desfase de recursos. Un enfoque frecuente podría exigir más inversión en sincronización y mantener la paridad entre los dos entornos.
Planes en frío: un modelo de recuperación ante desastres en frío implica un entorno en espera que permanezca inactivo hasta que un desastre desencadene la necesidad de conmutación por error. Dado que el entorno en espera no se está ejecutando activamente, se minimizan los costos relacionados con las operaciones de proceso, almacenamiento y red. Los gastos giran en torno al almacenamiento de copias de seguridad, imágenes de máquina virtual (VM) o plantillas. La conmutación por error en el modelo en frío puede tardar más tiempo, ya que es posible que los recursos deban arrancarse y es posible que sea necesario restaurar los datos. Asegúrese de que el tiempo de recuperación se alinee con los objetivos de tiempo de recuperación (RTO) de su empresa antes de confirmar este enfoque.
Active-redeploy: esta estrategia usa la infraestructura como código. Cuando se produce un evento de conmutación por error, se implementa el entorno secundario mediante plantillas y scripts predefinidos. Sin recursos de proceso preimplementados en el entorno de recuperación ante desastres, se ahorran los costos asociados al mantenimiento de los recursos inactivos. Solo incurre en costos durante la implementación real en un escenario de conmutación por error. Al igual que el enfoque en frío, este modelo podría introducir tiempos de recuperación más largos, especialmente si la complejidad de la infraestructura es alta. Debe probar y medir el tiempo de recuperación para asegurarse de que cumple el objetivo de tiempo de recuperación.
Optimización de las características de la plataforma
La optimización de las características de la plataforma implica eliminar o actualizar las características de la plataforma, como los niveles de rendimiento y las opciones de configuración, para optimizar los costos. Ayuda a alinear el gasto con los requisitos de la carga de trabajo y evita gastos innecesarios en características innecesarias. Estas son algunas sugerencias para optimizar el costo de las características de la plataforma:
Conozca las funcionalidades de las cosas que compra: antes de poder optimizar, necesita un inventario claro de los servicios y sus características en las plataformas en la nube. Comprenda las características y funcionalidades de las plataformas o servicios de la carga de trabajo. Tenga en cuenta el nivel específico que eligió y las características que ofrece cada nivel. Por ejemplo, si no necesita el escalado automático o las redes avanzadas, un plan de nivel inferior podría ser suficiente.
Deshabilitar características sin usar: identifique y deshabilite las características de la plataforma que cuestan dinero. Es posible que tenga instantáneas de almacenamiento innecesarias, discos no utilizados, características de seguridad redundantes o funcionalidades de red infrautilizadas.
Use las versiones correctas: las versiones más recientes de un servicio pueden proporcionar un rendimiento similar al mismo precio. Por ejemplo, una máquina virtual con hardware más reciente a menudo puede proporcionar el mismo rendimiento para menos dinero.
Use las configuraciones adecuadas: es posible que esté pagando por más disponibilidad o rendimiento de lo que necesita. Elimine la disponibilidad o las garantías de rendimiento que la carga de trabajo no necesita.
Eliminar la automatización innecesaria: evalúe los procesos de automatización y elimine cualquier automatización sin usar que pueda incurrir en costos adicionales.
Eliminar la redundancia de herramientas: deshaga las herramientas que no necesita ni las herramientas que proporcionan la misma función. Evalúe la redundancia potencial en las herramientas que usa para compilar software, escribir código, seguridad y supervisión. Por ejemplo, si usa Acciones de GitHub para compilar el software, no es necesario comprar otra herramienta que compile software. Antes de comprar características o herramientas, compruebe si ya hay una herramienta en la carga de trabajo que puede realizar el trabajo. Elimine la redundancia de herramientas para evitar el dinero desperdiciado y sacar el máximo partido de lo que ya tiene.
Ser metódico en los esfuerzos de optimización
Evitar componentes no optimizados consiste en garantizar de forma proactiva que los componentes son esenciales y optimizados antes de agregar o modificar. La mejor manera de deshacerse de los residuos es evitarlo en primer lugar. Use estrategias que impidan gastos innecesarios mediante la solución de ineficacias en la raíz, lo que garantiza que una carga de trabajo se ejecute de forma rentable desde el principio. Para ayudar a evitar los residuos, tenga en cuenta estas estrategias:
Busque la causa principal antes de cambiar las soluciones: antes de corregir un problema, asegúrese de que sabe lo que realmente lo está causando. Por ejemplo, si el sitio web es lento, no cambie inmediatamente a un nuevo sistema. En primer lugar, descubra por qué es lento. Es posible que descubra que el problema real es algo más, como las consultas de base de datos incorrectas. Corrija el problema real para ahorrar tiempo y dinero.
Aplicar metadatos: aplique metadatos para organizar y realizar un seguimiento de los recursos. Puede usar metadatos para clasificar y agrupar recursos, lo que facilita el seguimiento, eliminación y evitar recursos huérfanos. Cree una estrategia de metadatos coherente entre los recursos. Considere la posibilidad de agregar propietarios, la duración prevista del recurso (por ejemplo,
sunset-30d
) u otras etiquetas.Documentar cambios no estándar: documente los cambios realizados en la infraestructura o las configuraciones realizadas fuera del proceso de control normal de la carga de trabajo para reducir los costos inesperados. Por ejemplo, puede aumentar las capacidades de escalado (o reducción horizontal) de un recurso para satisfacer una demanda a corto plazo o evaluar un problema, pero olvidar reducirla verticalmente. Realice una lista de cambios no estándar y úselo como recordatorio para revertir los cambios cuando ya no sean necesarios.
Mantenga las cosas sencillas: simplifique la infraestructura y minimice la complejidad para ayudar a reducir los costos. Use solo los recursos y servicios necesarios que cumplan sus requisitos.
Facilitación de Azure
Optimización de las características de la aplicación: puede usar Azure Monitor y Application Insights para supervisar el uso de la aplicación e identificar áreas que son o no se usan. En función de la información recopilada, puede tomar decisiones informadas para quitar o optimizar características no utilizada o infrautilizadas.
Optimización de los recursos de carga de trabajo y las características de la plataforma: Azure Advisor proporciona recomendaciones de costos para identificar y eliminar recursos no utilizados. Puede usar Advisor para analizar el uso de los recursos y recibir sugerencias sobre los recursos para quitar o reducir verticalmente. El libro Optimización de costos de Azure Advisor actúa como un centro centralizado para algunas de las herramientas más usadas que pueden ayudarle a impulsar los objetivos de uso y eficiencia. Ofrece una serie de recomendaciones, incluidas las recomendaciones de costos de Azure Advisor. También ayuda a identificar los recursos inactivos y a administrar las máquinas virtuales desasignadas incorrectamente.
Azure Monitor admite libros. Con los libros de Azure Monitor, puede encontrar o crear un libro que encuentre y notifique recursos huérfanos en un ámbito definido. Puede usar Azure Automation para apagar máquinas virtuales durante períodos de inactividad. Los apagados de recursos ayudan a reducir los costos al minimizar el uso de recursos inactivos.
Puede usar la característica de escalado automático en Azure para escalar automáticamente la aplicación en función de las condiciones predefinidas, por lo que no tiene que sobreaprovisionar capacidad. El escalado automático puede ayudarle a asignar recursos de forma eficaz y rentable.
Desde una perspectiva de diseño, los equilibradores de carga de Azure pueden distribuir cargas entre zonas de disponibilidad y regiones. Estos equilibradores de carga pueden ayudar a eliminar los recursos inactivos, por ejemplo, en los enfoques de recuperación ante desastres.
Vínculos relacionados
- Recomendaciones para la optimización continua del rendimiento
- Recomendaciones para definir destinos de confiabilidad
- Recomendaciones para el diseño de varias regiones de alta disponibilidad
- Recomendaciones para optimizar el escalado y la creación de particiones
- Recomendaciones para establecer límites de protección de gasto
Lista de comprobación de optimización de costos
Consulte el conjunto completo de recomendaciones.