Diseño para cumplir los requisitos de capacidad
Proporcionar una oferta suficiente para hacer frente a la demanda prevista. |
---|
Es importante medir proactivamente el rendimiento. La medición del rendimiento implica medir las líneas base y tener una comprensión preliminar de qué componentes del sistema es probable que supongan desafíos. Puede lograrlo sin realizar una prueba de rendimiento completa o mediante una optimización pormenorizadas. Al realizar estos pasos iniciales, se establece una base para la administración eficaz del rendimiento al principio del ciclo de vida de desarrollo.
Examine el sistema en su conjunto, en lugar de centrarse en componentes individuales. Evite hacer ajustes pormenorizados en esta fase. La realización de mejoras de rendimiento pormenorizadas da lugar a inconvenientes en otras áreas. A medida que avanza por el ciclo de vida y comienza las pruebas de aceptación del usuario o avanza hacia la producción, puede identificar rápidamente qué áreas requieren una mayor optimización.
Escenario de ejemplo
Contoso Manufacturing ha desarrollado una aplicación de microservicios basada en Java Spring que se usa para supervisar y optimizar sus procesos de fabricación. El equipo de carga de trabajo está en proceso de migrar la aplicación, actualmente hospedada localmente, a Azure.
La aplicación hospedada en Azure se compilará en Azure Spring Apps, Azure Database for MySQL y Azure IoT Hub. Contoso tiene una conexión ExpressRoute a Azure.
Diseñar la carga de trabajo de forma eficaz
Elija los recursos adecuados en la pila de tecnología, lo que le permite cumplir los objetivos de rendimiento e integrarlos con el sistema. Considere las características que pueden cumplir los requisitos de escalabilidad, y encuentre el equilibrio adecuado entre la asignación de recursos y los requisitos del sistema, para gestionar eficazmente los aumentos inesperados.
Al analizar las distintas funcionalidades de los recursos, asegúrese de que cada componente contribuye a la funcionalidad general y el rendimiento del sistema, y puede identificar la funcionalidad de escalado que puede aprovechar.
Los recursos de ajuste de tamaño correcto pueden satisfacer los cambios en la demanda sin aprovisionamiento excesivo, lo que da lugar a un ahorro de costos.
Desafío de Contoso
- Contoso administra completamente la infraestructura de entorno de aplicaciones local existente, lo que supone una carga importante para el equipo. Actualmente aprovisiona y mantiene servidores, redes y almacenamiento, así como configura y actualiza el entorno de ejecución del servicio Java Spring y todas las dependencias.
- El equipo espera migrar a un modelo PaaS con Azure Spring Apps, lo que permitirá al equipo centrarse más en su energía para asegurarse de que su aplicación ofrece el valor empresarial previsto y dedicar menos tiempo a administrar la infraestructura.
- Esta aplicación es fundamental para el negocio de Contoso y tiene estrictos requisitos de rendimiento, por lo que deben asegurarse de que las opciones tecnológicas que elijan como parte de la migración les permitirán cumplir esos requisitos.
Aplicación del enfoque y los resultados
- Después de comparar los diferentes planes disponibles, el equipo opta por el plan Estándar de Azure Spring Apps, que proporciona un servicio totalmente administrado para las aplicaciones de Spring Boot, optimizado para el tráfico de producción. Con un máximo de 500 instancias por aplicación, el plan Estándar puede proporcionar suficiente capacidad de proceso para el uso previsto máximo.
- Además, el servicio se puede configurar para escalar horizontalmente según sea necesario y escalará horizontalmente los recursos de proceso cuando no se necesite la capacidad adicional.
- El equipo examinró el plan Enterprise, que es capaz de escalar verticalmente hasta 1000 instancias por aplicación, pero decidió que no necesitarán esa cantidad de capacidad en este momento. También están seguros de que no necesitan el nivel de soporte técnico que ofrece el plan Enterprise o el resto de sus características exclusivas.
Previsión adecuada de las necesidades de capacidad
Realice el planeamiento de la capacidad en función de la demanda y la capacidad de los recursos seleccionados para enriquecer el modelo de rendimiento. Use técnicas de modelado predictivo para predecir los cambios previstos en la capacidad que pueden producirse con cambios predecibles e inesperados. Defina los objetivos de rendimiento que se pueden traducir en requisitos técnicos.
Al adoptar este enfoque, puede usar eficazmente los recursos y satisfacer la demanda sin sobreaprovisionamiento, lo que evita costos innecesarios. Además, le ayudará a comprender cómo afectan las opciones de diseño al rendimiento.
Desafío de Contoso
- Para maximizar el uso eficiente de la maquinaria de producción, la línea de producción de Contoso opera según una programación cíclica, produciendo diferentes productos en diferentes momentos del día.
- Cada producto requiere operaciones diferentes y, por tanto, tiene necesidades computacionales diferentes de la aplicación de control. Durante la conmutación por cambios entre productos, la aplicación de control debe realizar una variedad de tareas que requieren un aumento de la capacidad de proceso, como analizar los datos de la ejecución de producción anterior y actualizar los algoritmos de control para las máquinas.
Aplicación del enfoque y los resultados
- Para satisfacer la mayor demanda durante los períodos de transición, el equipo identifica primero los flujos que controlan la funcionalidad de conmutación de cambios, documentando sus requisitos de rendimiento y calculando sus volúmenes de transacciones en función de la versión local de la aplicación. Con estos datos, el equipo continúa calculando la capacidad de proceso que necesitan los microservicios que forman parte de los flujos de destino.
- El escalado automático está configurado para estos componentes, lo que garantiza que se aprovisionan recursos adicionales antes del período de cambio y se liberan después de que se realicen las tareas.
- La configuración de escalado automático se ajustará antes de implementar la aplicación en producción, en función del rendimiento real en el nuevo entorno.
Implementación de prueba de concepto
Implemente una prueba de concepto (POC) que valide los requisitos técnicos y las opciones de diseño.
Una prueba de concepto es fundamental para validar el diseño para determinar si el sistema puede cumplir los objetivos de rendimiento y si esos objetivos son realistas. En función de la carga prevista, puede validar si la capacidad prevista puede cumplir los objetivos de rendimiento.
Además, compruebe las implicaciones de costo de las opciones de diseño.
Desafío de Contoso
- Durante el desarrollo, el equipo está realizando pruebas exhaustivas de carga y rendimiento de la funcionalidad de la aplicación mediante simuladores de dispositivos y usa esta información para optimizar la configuración de escalado automático.
- Un aspecto que puede afectar a la eficacia de la configuración de escalado automático es la posible latencia de red que se comunica desde el entorno de Azure Spring Apps a los dispositivos IoT en la planta de fabricación, que está conectado a Azure a través de ExpressRoute. El equipo especula que la latencia será mayor en Azure que para la versión local, si la aplicación y esa latencia también podrían verse afectada por otros factores, como la hora del día o la ubicación del dispositivo.
- Un aumento de la latencia probablemente tendría un impacto en el volumen de transacciones que cada instancia de microservicio podría procesar.
Aplicación del enfoque y los resultados
- El equipo decide implementar una POC en Azure para validar sus hipótesis y recopilar métricas que se pueden usar para optimizar la configuración. Crean una aplicación de Azure Spring de prueba para comunicarse con dispositivos IoT distribuidos en la planta de fabricación. Los dispositivos IoT están conectados a la red local y se registran con Azure IoT Hub. La aplicación de prueba se conecta aleatoriamente a los dispositivos durante todo el día enviando un ping sencillo y registra el tiempo necesario para recibir una respuesta.
- Los datos capturados durante esta POC, combinados con los resultados de las pruebas de carga, permitirán al equipo calcular con mayor precisión la capacidad de proceso necesaria, ya que se preparan para el lanzamiento inicial de producción.
- El equipo también está examinando formas de mejorar aún más los casos de prueba utilizados para las pruebas de carga, para simular tiempos de respuesta más realistas en función de los aprendizajes de la POC.