Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una carga de trabajo que cumple sus objetivos de rendimiento sin sobreaprovisionamiento es eficaz. El objetivo de la eficiencia del rendimiento es tener suficiente suministro para controlar la demanda en todo momento. Entre las estrategias clave para la eficiencia del rendimiento se incluyen el uso adecuado de optimizaciones de código, patrones de diseño, planeamiento de capacidad y escalado. Los objetivos de rendimiento claros y las pruebas respaldan este pilar.
Al negociar objetivos de rendimiento y diseñar una carga de trabajo para mejorar el rendimiento, tenga en cuenta cómo las decisiones basadas en los principios de diseño de la eficiencia del rendimiento y las recomendaciones de la lista de comprobación de revisión de diseño para la eficiencia del rendimiento podrían influir en los objetivos y optimizaciones de otros pilares. Algunas decisiones de eficiencia del rendimiento benefician a un pilar, pero constituyen inconvenientes para otro. En este artículo se describen los inconvenientes de ejemplo que un equipo de carga de trabajo podría encontrar al diseñar la arquitectura y las operaciones de carga de trabajo para lograr una eficiencia del rendimiento.
Compromisos de eficiencia de rendimiento con la fiabilidad
Compensación: replicación reducida y mayor densidad. Una piedra angular de la confiabilidad garantiza la resistencia mediante la replicación y limitando el radio de explosión de mal funcionamiento.
Una carga de trabajo que logra la eficacia retrasando el escalado hasta el último momento responsable satisface estrechamente la demanda, pero es vulnerable a errores imprevistos de nodo y retrasos de escalado.
La consolidación de los recursos de trabajo permite aprovechar el exceso de capacidad y mejorar la eficiencia. Sin embargo, aumenta el radio de explosión de un mal funcionamiento en el componente o la plataforma de aplicación ubicados conjuntamente.
El escalado hacia dentro o a la baja para minimizar la capacidad sobrante puede dejar una carga de trabajo infraaprovisionada durante los picos de uso, lo que provoca interrupciones del servicio debido a un suministro insuficiente.
Compensación: mayor complejidad. La confiabilidad prioriza la simplicidad.
El escalado automático para equilibrar el suministro de cargas de trabajo frente a la demanda introduce variabilidad en la topología de la carga de trabajo y agrega un componente que debe funcionar correctamente para que el sistema sea confiable. El escalado automático conduce a desencadenar más eventos de ciclo de vida de la aplicación, como iniciar y detener.
La creación de particiones de datos y el particionamiento ayudan a evitar problemas de rendimiento en conjuntos de datos grandes o a los que se accede con frecuencia, pero aumentan la complejidad porque (eventual) se debe mantener la coherencia entre recursos adicionales.
La desnormalización de datos para patrones de acceso optimizados puede mejorar el rendimiento, pero presenta complejidad porque es necesario mantener sincronizadas varias representaciones de datos.
En ocasiones, los patrones de diseño en la nube centrados en el rendimiento requieren la introducción de componentes adicionales. El uso de estos componentes aumenta el área expuesta de la carga de trabajo. A continuación, los componentes deben ser confiables para mantener toda la carga de trabajo confiable. Algunos ejemplos son:
- Un bus de mensajes para la nivelación de carga, que presenta un componente crítico y con estado persistente.
- Un equilibrador de carga para réplicas de escalado automático, que requiere un funcionamiento fiable y el registro de réplicas.
- Descarga de datos en caché, lo que requiere enfoques de invalidación de caché confiables.
Compensación: pruebas y observación en entornos activos. Evitar el uso innecesario de los sistemas de producción es un enfoque de prevención de riesgos y autoconservación para la confiabilidad.
Las pruebas de rendimiento en entornos activos, como el uso de transacciones sintéticas, conllevan el riesgo de causar errores de funcionamiento debido a las acciones o configuraciones de prueba.
Las cargas de trabajo deben instrumentarse con un sistema de supervisión del rendimiento de aplicaciones (APM) que permita a los equipos aprender de entornos activos. Las herramientas de APM se instalan y configuran en el código de aplicación o en el entorno de hospedaje. El uso incorrecto, la superación de las limitaciones o la configuración incorrecta de la herramienta pueden poner en peligro su funcionalidad y mantenimiento, lo que podría afectar a la confiabilidad.
Compensaciones de la eficiencia del rendimiento con la seguridad
Compensación: disminución de los controles de seguridad. Los controles de seguridad se establecen en varias capas, a veces de manera redundante, para proporcionar defensa en profundidad.
Una estrategia de optimización de rendimiento es quitar o omitir componentes o procesos que retrasan un flujo cuando el tiempo de procesamiento no está justificado. Esta estrategia puede poner en peligro la seguridad y requiere un análisis exhaustivo de riesgos. Considere los siguientes ejemplos:
La eliminación del cifrado en tránsito o en reposo para mejorar las velocidades de transferencia expone los datos a posibles infracciones de integridad o confidencialidad.
La eliminación o reducción del examen de seguridad o la inspección de herramientas para reducir los tiempos de procesamiento pueden poner en peligro la confidencialidad, la integridad o la disponibilidad que protegen esas herramientas.
Reducir la frecuencia de aplicación de revisiones de seguridad para limitar el impacto en el rendimiento puede dejar una carga de trabajo más vulnerable a las amenazas emergentes.
Eliminar las normas de cortafuegos del tráfico de red para mejorar la latencia de red puede permitir comunicación no deseada.
Minimizar la validación de datos o las comprobaciones de seguridad de contenido para un procesamiento de datos más rápido podría poner en peligro la integridad de los datos, especialmente si las entradas son malintencionadas.
El uso de menos entropía en algoritmos de cifrado o hash, por ejemplo, en el vector de inicialización (IV), es más eficaz, pero hace que el cifrado sea más fácil de descifrar.
Compensación: aumento del área expuesta de la carga de trabajo. La seguridad prioriza un área expuesta reducida y independiente para minimizar los vectores de ataque y reducir la administración de los controles de seguridad.
En ocasiones, los patrones de diseño en la nube centrados en el rendimiento requieren la introducción de componentes adicionales. Estos componentes aumentan el área expuesta de la carga de trabajo. Los nuevos componentes deben protegerse, posiblemente de maneras que aún no se usen en el sistema, y a menudo aumentan el ámbito de cumplimiento. Tenga en cuenta estos componentes agregados habitualmente:
Bus de mensajes para la ordenación de carga
Equilibrador de carga para réplicas escaladas automáticamente
Descarga de datos en cachés, redes de entrega de aplicaciones o redes de entrega de contenido
Desplazamiento del procesamiento a trabajos en segundo plano o incluso al cómputo del cliente
Compromiso: eliminación de la segmentación. El Pilar de Seguridad prioriza la segmentación fuerte para permitir controles de seguridad granulados y reducir el radio de explosión.
Compartir recursos a través de una mayor densidad es un enfoque para mejorar la eficiencia. Entre los ejemplos se incluyen escenarios multiinquilino o la combinación de aplicaciones dispares en una arquitectura en una plataforma de aplicaciones común. El aumento de la densidad puede dar lugar a los siguientes problemas de seguridad:
Mayor riesgo de movimiento lateral no autorizado de un inquilino a otro.
Una identidad de carga de trabajo compartida que infringe el principio de privilegios mínimos y oculta los registros de auditoría individuales en los registros de acceso.
Los controles de seguridad perimetral, por ejemplo, las reglas de red, que se reducen para cubrir todos los componentes ubicados conjuntamente, lo que proporciona más acceso a los componentes individuales de los necesarios.
Un compromiso del host de la plataforma de aplicaciones o de un componente individual debido a un mayor ámbito de impacto. Este aumento se debe a un acceso más sencillo a los componentes ubicados conjuntamente.
Colocación conjunta de componentes dispares que lleva a que más componentes estén dentro del ámbito de cumplimiento debido a su host compartido.
Compensación: estado de seguridad obsoleto. El pilar seguridad requiere decisiones de autorización, contenido y confianza para reflejar el estado actual del sistema.
El almacenamiento en caché, la precomputación y la distribución perimetral mejoran el rendimiento al atender las respuestas de una copia en lugar de volver a calcularlas o revalidarlas. Cuanto más se aleja una copia de la fuente de la verdad y cuanto mayor sea su tiempo de validez, más probable es que refleje un estado de seguridad que ya no se mantiene.
Los tokens de autenticación almacenados en caché, las decisiones de autorización o los datos de sesión pueden permitir el acceso después de deshabilitar un usuario, se revoca un rol o se gira un token. La ventana entre la revocación y la expiración de caché es una ventana de acceso no autorizado.
El contenido entregado desde una red CDN o caché del explorador puede seguir sirviendo datos que se han retirado o reclasificado en el origen. Esta persistencia puede infringir los requisitos de privacidad, retención o control de datos.
Eficiencia de rendimiento y optimización de costes
Equilibrio: demasiada oferta para la demanda. Tanto la optimización de costos como la eficiencia del rendimiento dan prioridad a tener la oferta justa para satisfacer la demanda.
El sobreaprovisionamiento es un riesgo cuando los equipos intentan mitigar los problemas de rendimiento en una carga de trabajo. Algunas causas comunes del sobreaprovisionamiento son:
- El planeamiento inicial de la capacidad se juzgó incorrectamente porque el equipo solo se centró en las estimaciones de carga máxima, descuidando las estrategias para la suavización de picos en el diseño del flujo de trabajo.
- Escalar vertical u horizontalmente un recurso durante un paso de resolución de problemas de una respuesta ante incidentes.
El escalado automático puede estar mal configurado. Algunos ejemplos de escalado automático mal configurado incluyen:
- Escalar con cambios mínimos en la demanda o un período de enfriamiento extendido puede incurrir en más costos de lo que requiere la demanda.
- El uso del escalado automático sin un límite superior establecido puede provocar un crecimiento no controlado debido a un mal funcionamiento del sistema o abuso y superar los requisitos esperados de la carga de trabajo.
La expansión en varias regiones puede mejorar el rendimiento al acercar las cargas de trabajo al usuario y puede evitar restricciones de capacidad de recursos temporales. Sin embargo, esa topología también agrega complejidad y duplicación de recursos.
Compensación: más componentes. Una técnica de optimización de costos consiste en consolidar usando un menor número de recursos al aumentar la densidad, eliminando la duplicación y localizando funciones.
Los patrones de diseño en la nube centrados en el rendimiento a veces requieren la introducción de componentes adicionales. Estos componentes adicionales suelen dar lugar a un aumento general del costo de la carga de trabajo. Por ejemplo, puede incluir un sistema de mensajería para la nivelación de carga o para delegar tareas en una aplicación o red de entrega de contenido para mejorar los tiempos de respuesta.
La segmentación de recursos permite que diferentes partes de una carga de trabajo tengan características de rendimiento distintas, lo que permite el ajuste independiente para cada segmento. Sin embargo, puede aumentar los costos de propiedad total porque requiere varios segmentos optimizados en lugar de un solo componente generalizado.
Compensación: mayor inversión en artículos que no están alineados con los requisitos funcionales. Un enfoque para la optimización de costos es evaluar el valor proporcionado por cualquier solución que se implemente.
Los servicios premium y las SKU pueden ayudar a una carga de trabajo a cumplir los objetivos de rendimiento. Normalmente, estos servicios cuestan más y pueden proporcionar características adicionales. Pueden estar infrautilizados si muchas de las características premium no se usan específicamente para cumplir los objetivos de rendimiento.
Una carga de trabajo eficaz requiere datos de telemetría para la observabilidad que se deben transferir y almacenar. Un aumento de la telemetría de rendimiento que se recopila puede aumentar el costo de la transferencia y el almacenamiento de datos de telemetría.
Las actividades de pruebas de rendimiento agregan costos que no están asociados al valor del sistema de producción. Entre los ejemplos de costos de pruebas de rendimiento se incluyen:
- Instanciación de entornos dedicados a pruebas centradas en el rendimiento.
- Uso de herramientas de rendimiento especializadas.
- Dedicar tiempo a ejecutar las pruebas.
Formar a los miembros del equipo para tareas especializadas de ajuste de rendimiento o pagar por servicios de ajuste de rendimiento añaden al coste de una carga de trabajo.
Eficiencia del rendimiento y sus compensaciones con la excelencia operativa
Compensación: reducción de la observabilidad. La observabilidad es necesaria para proporcionar una carga de trabajo con alertas significativas y ayudar a garantizar una respuesta correcta a los incidentes.
La reducción del volumen de registros y métricas para dedicar menos tiempo de procesamiento a la recopilación de telemetría reduce la observabilidad general. Algunos ejemplos son:
- Menos puntos de datos para crear alertas significativas.
- Brechas de cobertura en las actividades de respuesta a incidentes.
- Observabilidad limitada en interacciones y límites sensibles a la seguridad o de cumplimiento.
Los patrones de diseño de rendimiento suelen agregar complejidad al introducir componentes en flujos críticos. La estrategia de supervisión de cargas de trabajo debe incluir esos componentes. Cuando un flujo abarca varios componentes o límites de aplicación, el rendimiento debe estar correlacionado entre todos ellos.
Compensación: mayor complejidad en las operaciones. Un entorno complejo tiene interacciones más complejas y una mayor probabilidad de un impacto negativo de las operaciones rutinarias, ad hoc y de emergencia.
Mejorar la eficiencia del rendimiento aumentando la densidad eleva el riesgo en las tareas operativas. Un error en un único proceso puede tener un radio de explosión grande.
A medida que se implementan patrones de diseño de rendimiento, influyen en procedimientos operativos como copias de seguridad, rotaciones de claves y estrategias de recuperación. Por ejemplo, la creación de particiones de datos y el particionamiento pueden complicar las tareas rutinarias cuando los equipos intentan asegurarse de que esas tareas no afectan a la coherencia de los datos.
Compensación: estrés cultural. La excelencia operativa se basa en una cultura de falta de culpa, respeto y mejora continua.
La realización del análisis de la causa principal de los problemas de rendimiento identifica deficiencias en procesos o implementaciones que requieren corrección. El equipo debe considerar el ejercicio una oportunidad de aprendizaje. Si los miembros del equipo son culpables de problemas, la moral puede verse afectada.
Los procesos rutinarios y ad hoc pueden afectar al rendimiento de la carga de trabajo. A menudo se considera preferible realizar estas actividades durante las horas de poca actividad. Sin embargo, las horas fuera del pico pueden ser inconvenientes o fuera del horario habitual para los miembros del equipo responsables o capacitados en estas tareas.
Vínculos relacionados
Explore los inconvenientes de los otros pilares: