Recomendaciones para optimizar los costos de los componentes

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

CO:07 Optimizar los costos de los componentes. Quite o optimice regularmente 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 hace referencia al proceso de evaluación y mejora de la rentabilidad de los elementos individuales dentro de una carga de trabajo. Destaca la revisión continua y la posible eliminación o mejora de componentes obsoletos, innecesarios o raramente usados, como características de la aplicación, características de la plataforma y 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 dar lugar a costos inflados, residuos de recursos y cargas de trabajo ineficazs 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 la 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 generalmente, 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.
Recurso 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

Optimizar 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 el recurso. 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 ofrecen 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 invertir 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 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 calidad de la característica que 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 las características de la aplicación

Es esencial que comprenda el costo asociado a cada característica para una optimización y asignación de recursos eficaz. 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 a menudo se convierten en una fuente clave de deuda técnica.

  • Mantenimiento y soporte técnico: tenga en cuenta los costos continuos asociados con el mantenimiento y el soporte técnico de la característica, incluidas las correcciones de errores, las actualizaciones de seguridad y la solución de problemas.

  • Uso de la infraestructura y los 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 impedir el desarrollo de nuevas características valiosas. El equipo de desarrollo puede proporcionarle 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 crear otras 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. Quitar, reinvertir o monetizar cualquier característica de aplicación que no proporcione una rentabilidad de la inversión:

  • Eliminación: tenga en cuenta el fin de vida planeado de una característica de aplicación en función de los datos. Los motivos para la eliminación de características pueden incluir baja demanda del cliente, altos costos de mantenimiento, complejidad o redundancia que no merece la pena corregir. Cree un plan para la eliminación, que podría implicar la refactorización del código, la actualización de dependencias o la reorganización de la interfaz de usuario.

    Icono de riesgo Riesgo: puede quitar accidentalmente características críticas para determinados usuarios o escenarios y podría afectar negativamente al rendimiento, las operaciones y la seguridad en 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 reinvierte en ellas. La reinversión significa volver a trabajar o promover la característica de aplicación. Dé prioridad a 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 oportunidades para monetizar estas características, como ofrecerlas como complementos de pago independientes o licencias para otras empresas.

Optimización de los recursos de carga de trabajo

Optimizar los recursos de carga de trabajo implica quitar todos 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 eliminarlos. 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 prueba temporales.
  • Entornos de evaluación de prioridades temporales.

Para quitar recursos no utilizados en una carga de trabajo, tenga en cuenta estos pasos:

  1. Realizar un inventario: realice un inventario exhaustivo de todos los recursos de la carga de trabajo en todos los entornos.

  2. Buscar recursos huérfanos: los recursos 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 su cuenta de almacenamiento asociada no se quita. Revise la carga de trabajo para identificar los recursos innecesarios o huérfanos.

  3. Quitar componentes inactivos: normalmente hay un costo asociado a un recurso implementado. Incluso si el recurso 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 desperdiciados a medida que 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:

  1. Supervisar recursos: use herramientas para supervisar la cantidad de CPU, memoria y almacenamiento que realmente use. Elija el mejor plan que coincida con sus necesidades en función de esta información.

  2. 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 los tiempos ocupados y lentos.

  3. Ajuste de tamaño correcto: compruebe si hay demasiados recursos asignados a las características que no están en uso. Si es así, ajuste su tamaño para que coincida mejor con lo que realmente necesita.

  4. 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 de escalado máximo 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 con el tiempo. Revise y optimice periódicamente el uso de recursos para mantener la optimización del rendimiento y la eficiencia de los costos.

Optimice los recursos de recuperación ante desastres. La optimización de entornos de recuperación ante desastres consiste en garantizar que los recursos asignados para la recuperación ante desastres se usen de forma eficaz. Una estrategia de recuperación ante desastres activa y pasiva es una fuente común de infrautilización. En una estrategia de recuperación ante desastres en caliente, 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, tenga en cuenta 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 el 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 un solo punto y utilizar capacidades al máximo. Puede dar lugar a costos reducidos en términos de desperdiciación de recursos o de identificación. 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 permanece inactivo hasta que un desastre desencadena 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, ya que es posible que los recursos deban arrancarse y que los datos deban restaurarse. Asegúrese de que el tiempo de recuperación se alinea con los objetivos de tiempo de recuperación (RTO) de su empresa antes de confirmar este enfoque.

  • Reimplementación activa: 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 incurrirá 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 ni 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 por menos dinero.

  • Use las configuraciones adecuadas: es posible que esté pagando por más disponibilidad o rendimiento de lo que necesita. Elimine las garantías de disponibilidad o 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 redundancia de herramientas: deshaga las herramientas que no necesita ni las herramientas que proporcionan la misma función. Evalúe la posible redundancia en las herramientas que se usan 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.

Evitar componentes no optimizados

La prevención de componentes no optimizados consiste en garantizar de forma proactiva que los componentes sean 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 abordando las ineficiencias en la raíz, lo que garantiza que una carga de trabajo se ejecute de forma rentable desde el principio. Para ayudar a prevenir los residuos, tenga en cuenta estas estrategias:

  • Busque la causa principal antes de cambiar las soluciones: antes de solucionar 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 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.

  • Simplificar las cosas: 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 sirve 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 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 e informe de 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.

Lista de comprobación de optimización de costos

Consulte el conjunto completo de recomendaciones.