Ventajas y desventajas en la eficiencia del rendimiento

A medida que diseña la carga de trabajo, tenga en cuenta el equilibrio entre la optimización del rendimiento y otros aspectos del diseño, como la rentabilidad, el funcionamiento, la confiabilidad y la seguridad.

Eficiencia del rendimiento frente a rentabilidad

El costo puede aumentar como resultado de impulsar el rendimiento. Estos son algunos factores que se deben tener en cuenta al optimizar el rendimiento y cómo afectan al costo:

  • Evite la estimación de costos de una carga de trabajo con un uso intenso constante. Los precios basados en el consumo serán más caros que los precios aprovisionados equivalentes. Suavice los picos para obtener un flujo coherente de proceso y datos. Lo ideal es usar el escalado manual y automático para encontrar el equilibrio correcto. El escalado vertical suele ser más caro que el escalado horizontal.

  • El costo se escala directamente con el número de regiones. La búsqueda de recursos en regiones más económicas no debe negar el costo de entrada y salida de la red, ni el rendimiento degradado de la aplicación debido a una mayor latencia.

  • Cada ciclo de representación de una carga útil consume tanto proceso como memoria. Puede usar el almacenamiento en caché para reducir la carga en los servidores y ahorrar con los costos de ancho de banda y almacenamiento previamente predefinidos. El ahorro puede ser drástico, especialmente en el caso de los servicios de contenido estático.

    • Aunque el almacenamiento en caché puede reducir el costo, existen algunos inconvenientes para el rendimiento. Por ejemplo, los precios de Azure Traffic Manager se basan en el número de consultas DNS (Sistema de nombres de dominio) que llegan al servicio. Puede reducir ese número mediante el almacenamiento en caché y configurar la frecuencia de actualización de la memoria caché. Confiar en la memoria caché que no se actualiza con frecuencia producirá tiempos de conmutación por error de usuario mayores si un punto de conexión no está disponible.
  • El uso de recursos dedicados para el procesamiento por lotes de trabajos de larga duración aumentará el costo. Puede aprovisionar VM de Spot para reducir el costo, pero prepárese para que el trabajo se interrumpa cada vez que Azure expulse la VM.

Para más consideraciones sobre los costos, consulte el fundamento Optimización de costos.

Eficiencia del rendimiento frente a excelencia operativa

A medida que determine cómo escalar la carga de trabajo para satisfacer de una manera eficaz las demandas que los usuarios han sugerido, tenga en cuenta los procesos de operaciones que mantienen una aplicación en ejecución en producción. Para lograr la excelencia operativa con estos procesos, asegúrese de que las implementaciones siguen siendo confiables y predecibles. Se deben automatizar para reducir la posibilidad de que ocurran errores humanos. Deben ser un proceso rápido y rutinario, de manera que no ralenticen la publicación de nuevas características o correcciones de errores. Igualmente importante, debe ser capaz de revertir o poner al día la aplicación rápidamente en caso de que tenga problemas.

Pruebas de rendimiento automatizadas

Un proceso operativo que puede ayudar a identificar los problemas de rendimiento de forma temprana son las pruebas de rendimiento automatizadas. El impacto de un problema serio de rendimiento puede ser tan grave como un error en el código. Aunque las pruebas automáticas de funcionalidad pueden evitar errores en la aplicación, es posible que no detecten problemas de rendimiento. Defina los objetivos de rendimiento aceptables para métricas como la latencia, los tiempos de carga y el uso de recursos. Incluya pruebas de rendimiento automatizadas en la canalización de versión para asegurarse de que la aplicación cumple los objetivos.

Compilaciones rápidas

Otro proceso de la eficiencia operativa es asegurarse de que el producto se encuentra en un estado implementable mediante un proceso de compilación rápido. Las compilaciones proporcionan información fundamental sobre el estado del producto.

Lo siguiente puede ayudar a conseguir compilaciones más rápidas:

  • Seleccione el tamaño correcto de las máquinas virtuales.
  • Asegúrese de que el servidor de compilación se encuentra cerca de los orígenes y de una ubicación de destino. De esta forma, puede reducir considerablemente la duración de la compilación.
  • Escale horizontalmente los servidores de compilación.
  • Optimice la compilación.

Para obtener una explicación de estos elementos, consulte Tiempos de compilación.

Supervisión de la optimización del rendimiento

A medida que considere la posibilidad de mejorar el rendimiento, se debe realizar una supervisión para comprobar que la aplicación se ejecuta correctamente. La supervisión debe incluir la aplicación, la plataforma y las redes. Para más información, consulte Supervisión de DevOps.

Para conocer las consideraciones operativas, consulte el fundamento Excelencia operativa.

Eficiencia del rendimiento frente a confiabilidad

Reconocemos por adelantado que se producirán errores. En lugar de intentar evitar todos los errores, el objetivo es minimizar los efectos que pueden provocar los errores de un único componente.

Las aplicaciones de confianza son resistentes y de alta disponibilidad (HA). La resistencia permite a los sistemas recuperarse con facilidad de los errores y seguir en funcionamiento con un tiempo de inactividad y una pérdida de datos mínimos antes de la recuperación total. Los sistemas de alta disponibilidad se ejecutan tal y como están diseñados en un estado correcto sin tiempo de inactividad significativo. Mantener la confiabilidad le permite mantener la eficiencia del rendimiento.

A continuación se indican algunas consideraciones sobre la confiabilidad:

  • Utilice el patrón Disyuntor para proporcionar estabilidad mientras el sistema se recupera de un error y minimiza el impacto en el rendimiento.

  • Consiga los niveles de escala y rendimiento necesarios para la solución mediante la segregación de las interfaces de lectura y escritura con la implementación del patrón CQRS.

  • A menudo, puede lograr una mayor disponibilidad mediante el uso de un modelo de coherencia final. Para obtener información sobre cómo seleccionar el almacén de datos correcto, consulte Uso del mejor almacén de datos para el trabajo.

  • Si la aplicación requiere más cuentas de almacenamiento que las disponibles actualmente en la suscripción, cree una nueva suscripción con cuentas de almacenamiento adicionales. Para más información, consulte Objetivos de escalabilidad y rendimiento para cuentas de almacenamiento estándar.

  • Evite el escalado o la reducción verticales. En su lugar, seleccione un nivel y un tamaño de instancia que satisfagan sus requisitos de rendimiento con la carga típica y, a continuación, escale horizontalmente las instancias para controlar los cambios en el volumen de tráfico. El escalado y la reducción verticales pueden desencadenar un reinicio de la aplicación.

  • Cree una cuenta de almacenamiento para los registros. No use la misma cuenta de almacenamiento para los registros y los datos de la aplicación. Esto ayuda a evitar que el registro reduzca el rendimiento de la aplicación.

  • Supervisar el rendimiento. Use un servicio de supervisión de rendimiento, como Application Insights o New Relic, para supervisar el rendimiento de la aplicación y el comportamiento sometido a carga. La supervisión del rendimiento le ofrece una visión en tiempo real de la aplicación. Le permite diagnosticar problemas y realizar análisis de causa raíz de errores.

Para conocer las consideraciones de resistencia, disponibilidad y confiabilidad, consulte el fundamento Confiabilidad.

Eficiencia del rendimiento frente a seguridad

Si el rendimiento es tan bajo que no se pueden utilizar los datos, podemos considerar que los datos son inaccesibles. Por lo tanto, desde una perspectiva de seguridad, necesitamos hacer todo lo posible para asegurarnos de que nuestros servicios tienen un rendimiento y un tiempo de actividad óptimos.

Un método popular y eficaz para mejorar la disponibilidad y el rendimiento es usar el equilibrio de carga. El equilibrio de carga es un método para distribuir el tráfico de la red entre los servidores que forman parte de un servicio. Mejora el rendimiento, ya que la sobrecarga del procesador, la red y la memoria para atender a las solicitudes se distribuye entre todos los servidores con carga equilibrada. Se recomienda usar el equilibrio de carga siempre que se pueda y, según sea adecuado para los servicios. Para obtener información sobre los escenarios de equilibrio de carga, consulte Optimización del rendimiento y el tiempo de actividad.

Tenga en cuenta estas medidas de seguridad que afectan al rendimiento:

  • Para optimizar el rendimiento y maximizar la disponibilidad, el código de la aplicación primero debe intentar obtener tokens de acceso de OAuth silenciosamente desde una memoria caché antes de intentar adquirir un token del proveedor de identidades. OAuth es un estándar tecnológico que le permite compartir información de forma segura entre servicios sin exponer la contraseña.

  • Asegúrese de que integra las alertas y los registros de seguridad críticos en los SIEM (Administración de eventos e información de seguridad) sin introducir un gran volumen de datos de valor reducido. Si lo hace, puede aumentar el costo de la Administración de eventos e información de seguridad, los falsos positivos y reducirse el rendimiento. Para más información, consulte Priorización de la alerta e integración de registros.

  • use Azure AD Connect para sincronizar el directorio local con el directorio en la nube. Existen factores que afectan al rendimiento de una instancia de Azure AD Connect. Asegúrese de que Azure AD Connect tiene capacidad suficiente para impedir que los sistemas con un rendimiento deficiente obstaculicen la seguridad y productividad. Las organizaciones grandes o complejas (organizaciones que aprovisionan más de 100 000 objetos) deben seguir las recomendaciones para optimizar su implementación de Azure AD Connect.

  • Utilice la captura de paquetes para establecer alertas y obtener acceso a información de rendimiento en tiempo real en el nivel de paquete.

Para conocer otras consideraciones de seguridad, consulte el fundamento Seguridad.