Mejora de la eficiencia a través de la optimización

Completado
Mejore la eficacia del sistema dentro de los objetivos de rendimiento definidos para aumentar el valor de la carga de trabajo.

Los destinos establecidos durante la fase inicial se basan en un nivel razonable de experiencia del usuario, teniendo en cuenta varias restricciones. Debe volver a evaluar y ajustar los objetivos para mejorar aún más la experiencia. Para mejorar aún más la experiencia, requiere una comprensión clara de cómo se usa el sistema, cómo ha evolucionado y cómo ha cambiado la plataforma o la tecnología con el tiempo. El ciclo de supervisión, optimización, prueba e implementación es un proceso continuo.

Los esfuerzos de optimización de eficiencia permiten que una carga de trabajo funcione con un menor consumo de recursos. Pueden hacer que la carga de trabajo esté en un estado de sobreaprovisionamiento con capacidad de reserva. Use esa capacidad para mejorar la fiabilidad del sistema. Elimine la capacidad para mejorar el costo del sistema. O bien, vuelva a usar la capacidad para admitir nuevas características de producto en los recursos existentes.

Cuando el sistema obtenga eficiencias, aproveche la oportunidad de establecer y mantener nuevos objetivos de rendimiento.

Escenario de ejemplo

El equipo de ingeniería de RR. HH. de Contoso admite integraciones personalizadas en el sistema de información de recursos humanos (HRIS) de la organización. Estas integraciones incluyen integraciones financieras para nóminas, estadísticas de contratación para informes de legislación laboral gubernamental y otras. La mayoría de las integraciones son Azure Functions escritas en C# que se hospedan en un clúster de Kubernetes habilitado para Azure Arc en el centro de datos de la organización. La mayoría de los trabajos han funcionado bien, pero debido a un retraso en el procesamiento, unos pocos inquietan al equipo, ya que a veces los datos críticos no están disponibles cuando el director de RRHH los necesita.

Priorización de las optimizaciones de rendimiento

Asigne ciclos dedicados para la optimización del rendimiento para abordar los requisitos y optimizaciones no funcionales en áreas funcionales. Los destinos de esta optimización son recursos, código, retención de datos, consultas de base de datos y otros.

Al adoptar este enfoque, puede crear una referencia cultural de optimización controlada por el rendimiento. Mantiene al equipo responsable de supervisar de forma proactiva los patrones de rendimiento y ajustar también la aplicación.

Desafío de Contoso

  • El equipo es bastante precario, y tiene mucho trabajo pendiente. La mayoría de las veces trabajan con una mentalidad de despreocupación cuando escriben e implementan integraciones; las integraciones se escriben, se implementan y luego el equipo pasa a la siguiente tarea.
  • El equipo ha tenido que responder con frecuencia a problemas críticos debido a que los altos cargos no tenían acceso a los datos en el momento oportuno.
  • El equipo es muy consciente de que hay que introducir mejoras, pero no ha dado prioridad a los cambios necesarios.

Aplicación del enfoque y los resultados

  • El equipo ahora asigna el 20 % de cada sprint para deuda técnica y otras actividades de optimización. Esto es comprar el tiempo del equipo de ingeniería para priorizar y abordar áreas críticas y otras áreas en las que el impacto puede ser más significativo.
  • Al adoptar este enfoque, el equipo puede dedicar el tiempo necesario a solucionar los problemas de rendimiento que provocan retrasos en el procesamiento de datos.

Búsqueda de mejoras de diseño

Mejore la arquitectura con nuevos patrones de diseño y componentes, lo que puede aumentar el rendimiento, de maneras que anteriormente no tenía en cuenta debido a un tiempo limitado o presupuesto.

El nuevo diseño y los componentes pueden optimizar el sistema, lo que conduce a una mejor experiencia del usuario y a eficiencias de costos a largo plazo. Por ejemplo, puede usar el almacenamiento en caché o agregar un componente de red de entrega de contenido.

Desafío de Contoso

  • El equipo ha usado Azure Functions y flujos basados en desencadenadores durante varios años y no ha dedicado tiempo a evaluar alternativas a este enfoque.

Aplicación del enfoque y los resultados

  • El equipo busca otras formas de utilizar Azure Functions y descubre que las funciones duraderas admiten un modelo de distribución ramificada que puede ayudarles a paralelizar una tarea de nómina determinada.
  • El equipo incorpora este patrón en su catálogo de diseño para un diseño futuro. También fue un buen recordatorio para buscar otras formas de abordar las ineficiencias de rendimiento que no se limiten a la optimización del código y la limpieza de datos.

Use herramientas de supervisión para analizar tendencias históricas e identificar los flujos y las rutas de acceso de implementación de código que se beneficiarían más de un esfuerzo de optimización del rendimiento. Se recomiendan herramientas y generadores de perfiles de supervisión del rendimiento de aplicaciones (APM) para este fin. Además, identifique las rutas de acceso activas de la operación y otros posibles cuellos de botella en el sistema.

Al identificar las áreas problemáticas periódicas, el equipo puede centrarse en dónde las ganancias son las más altas.

Desafío de Contoso

  • El equipo ha instrumentado todas las funciones con Application Insights de Azure.
  • Usan principalmente Application Insights para solucionar problemas de interrupción y para el receptor de registro.
  • Históricamente, su enfoque para dirigir áreas para mejorar se ha basado en los comentarios procedentes de los altos cargos.

Aplicación del enfoque y los resultados

  • Aunque los comentarios son importantes, el equipo se da cuenta de que Application Insights hace un trabajo bastante bueno a la hora de detectar zonas activas en las aplicaciones que supervisa.
  • El equipo comienza a aprovechar esta funcionalidad y, combinada con el conocimiento de los flujos importantes, se está convirtiendo una herramienta valiosa para el esfuerzo del 20 % del equipo en mejoras técnicas y eficiencia.
  • Con Application Insights, el equipo puede identificar proactivamente una integración de riesgo y controlarla antes de que un miembro del equipo directivo experimente un problema.

Comprobación de conocimientos

1.

¿Cómo cambió el equipo de Contoso su proceso de desarrollo para solucionar problemas de rendimiento continuos?

2.

¿Cuál de las siguientes es una buena estrategia para mejorar la eficiencia de la carga de trabajo?

3.

¿Qué tipo de herramienta puede ayudarle a analizar tendencias de rendimiento e identificar cuellos de botella de ejecución?