Probar las aplicaciones de Azure para la resistencia y disponibilidadTesting Azure applications for resiliency and availability

Para probar la resistencia, debe comprobar cómo se realiza la carga de trabajo de extremo a otro en condiciones de error intermitente.To test resiliency, you should verify how the end-to-end workload performs under intermittent failure conditions.

Ejecutar pruebas en producción con los datos de usuario reales y sintéticos.Run tests in production using both synthetic and real user data. Prueba y producción rara vez son idénticos, por lo que es importante validar la aplicación en el entorno de producción con un verde azulado o implementación canary.Test and production are rarely identical, so it's important to validate your application in production using a blue-green or canary deployment. De este modo, está probando la aplicación en condiciones reales, por lo que puede estar seguro de que funcionará según lo esperado cuando esté completamente implementada.This way, you're testing the application under real conditions, so you can be sure that it will function as expected when fully deployed.

Como parte del plan de pruebas, incluya:As part of your test plan, include:

  • Pruebas previas a la implementación automatizadasAutomated predeployment testing
  • Pruebas de inyección de erroresFault injection testing
  • Las pruebas de carga máximaPeak load testing
  • Pruebas de recuperación ante desastresDisaster recovery testing
  • Prueba del servicio de tercerosThird-party service testing

Las pruebas son un proceso iterativo.Testing is an iterative process. Pruebe la aplicación, mida el resultado, analice y resuelva los errores que se producen, y repita el proceso.Test the application, measure the outcome, analyze and address any failures that result, and repeat the process.

Realizar pruebas de inyección de erroresPerform fault injection testing

Para pruebas de inyección de errores, compruebe la resistencia del sistema durante los errores, desencadenando errores reales o mediante su simulación.For fault injection testing, check the resiliency of the system during failures, either by triggering actual failures or by simulating them. Estas son algunas estrategias inducir errores:Here are some strategies to induce failures:

  • Apague las instancias de máquina virtual (VM).Shut down virtual machine (VM) instances.
  • Bloqueo de procesos.Crash processes.
  • Expiración de certificados.Expire certificates.
  • Cambio de claves de acceso.Change access keys.
  • Cierre del servicio DNS en controladores de dominio.Shut down the DNS service on domain controllers.
  • Límite de los recursos del sistema disponibles, como RAM o número de subprocesos.Limit available system resources, such as RAM or number of threads.
  • Desmontaje de discos.Unmount disks.
  • Reimplementación de una máquina virtual.Redeploy a VM.

El plan de pruebas debe incorporar posibles puntos de error identificados durante la fase de diseño, además de escenarios comunes de error:Your test plan should incorporate possible failure points identified during the design phase, in addition to common failure scenarios:

  • Probar la aplicación en un entorno tan parecido como sea posible.Test your application in an environment as close to production as possible.
  • Errores en la combinación de pruebas.Test failures in combination.
  • Medir los tiempos de recuperación y asegúrese de que se cumplen sus requisitos empresariales.Measure the recovery times, and be sure that your business requirements are met.
  • Compruebe que los errores no podrán actuar en cascada y se tratan de forma aislada.Verify that failures don't cascade and are handled in an isolated way.

Para obtener más información acerca de escenarios de error, consulte error y recuperación ante desastres para aplicaciones de Azure.For more information about failure scenarios, see Failure and disaster recovery for Azure applications.

Prueba con cargas de picoTest under peak loads

Las pruebas de carga son fundamental para identificar los errores que se producen solo bajo carga, como la base de datos de back-end que se desborda o limitación del servicio.Load testing is crucial for identifying failures that only happen under load, such as the back-end database being overwhelmed or service throttling. Prueba de carga máxima y aumento previsto de pico de carga, utilizando los datos de producción o datos sintéticos que estén lo más cerca de los datos de producción como sea posible.Test for peak load and anticipated increase in peak load, using production data or synthetic data that is as close to production data as possible. El objetivo es ver cómo se comporta la aplicación en condiciones reales.Your goal is to see how the application behaves under real-world conditions.

Realizar maniobras de recuperación ante desastresConduct disaster recovery drills

Comience con un plan de recuperación ante desastres conveniente y probarlo periódicamente para asegurarse de que funciona.Start with a good disaster recovery plan, and test it periodically to make sure it works.

Para Azure Virtual Machines, puede usar Azure Site Recovery para replicar y realizar maniobras de recuperación ante desastres sin afectar las aplicaciones de producción ni la replicación en curso.For Azure Virtual Machines, you can use Azure Site Recovery to replicate and perform disaster recovery drills without affecting production applications or ongoing replication.

Conmutación por error y conmutación por recuperación las pruebasFailover and failback testing

Probar la conmutación por error y conmutación por recuperación para comprobar que los servicios dependientes de la aplicación se recuperen de manera sincronizada durante la recuperación ante desastres.Test failover and failback to verify that your application's dependent services come back up in a synchronized manner during disaster recovery. Los cambios realizados en los sistemas y operaciones pueden afectar a las funciones de conmutación por error y conmutación por recuperación, pero el impacto que podrían no detectarse hasta que el sistema principal produce un error o se sobrecargue.Changes to systems and operations may affect failover and failback functions, but the impact may not be detected until the main system fails or becomes overloaded. Probar las capacidades de conmutación por error antes son necesarias para compensar un problema en vivo.Test failover capabilities before they are required to compensate for a live problem. También asegúrese de que los servicios dependientes conmutarán por error y se producirá un error en el orden correcto.Also be sure that dependent services fail over and fail back in the correct order.

Si usas Azure Site Recovery para replicar máquinas virtuales, ejecute ante desastres maniobras de recuperación periódicamente haciendo las conmutaciones por error de prueba para validar la estrategia de replicación.If you are using Azure Site Recovery to replicate VMs, run disaster recovery drills periodically by doing test failovers to validate your replication strategy. Una conmutación por error de prueba no afecta a la replicación de máquinas virtuales en curso ni al entorno de producción.A test failover does not affect the ongoing VM replication or your production environment. Para obtener más información, consulte ejecutar una exploración de recuperación ante desastres en Azure.For more information, see Run a disaster recovery drill to Azure.

Las pruebas de simulaciónSimulation testing

Las pruebas de simulación implican crear situaciones pequeño, la vida real.Simulation testing involves creating small, real-life situations. Simulaciones de demostración la eficacia de las soluciones en el plan de recuperación y resaltan los problemas que no estaban convenientemente.Simulations demonstrate the effectiveness of the solutions in the recovery plan and highlight any issues that weren't adequately addressed.

Al realizar las pruebas de simulación, siga los procedimientos recomendados:As you perform simulation testing, follow best practices:

  • Lleve a cabo simulaciones de manera que no interrumpan el negocio real pero se siente igual a una situación real.Conduct simulations in a manner that doesn't disrupt actual business but feels like a real situation.
  • Asegúrese de que están completamente controlables escenarios simulados.Make sure that simulated scenarios are completely controllable. Si parece que el plan de recuperación de conmutaciones por error, puede restaurar la situación normal sin provocar daños.If the recovery plan seems to be failing, you can restore the situation back to normal without causing damage.
  • Informar a la administración sobre cuándo y cómo se llevará a cabo los ejercicios de simulación.Inform management about when and how the simulation exercises will be conducted. El plan debe detallar el período de tiempo y los recursos afectados durante la simulación.Your plan should detail the time frame and the resources affected during the simulation.

Los sondeos de estado para los equilibradores de carga y administradores de tráfico de pruebaTest health probes for load balancers and traffic managers

Configurar y probar los sondeos de estado para los equilibradores de carga y administradores de tráfico.Configure and test health probes for your load balancers and traffic managers. Asegúrese de que el punto de conexión de mantenimiento comprueba las partes críticas del sistema y responde adecuadamente.Ensure that your health endpoint checks the critical parts of the system and responds appropriately.

  • Para Azure Traffic Manager, el sondeo de estado determina la conmutación por error a otra región.For Azure Traffic Manager, the health probe determines whether to fail over to another region. El punto de conexión de estado debe comprobar las dependencias críticas que se implementan en la misma región.Your health endpoint should check any critical dependencies that are deployed within the same region.
  • Para Azure Load Balancer, el sondeo de estado determina si se debe quitar una máquina virtual de la rotación.For Azure Load Balancer, the health probe determines whether to remove a VM from rotation. El punto de conexión de estado debe informar del estado de la máquina virtual.The health endpoint should report the health of the VM. No se incluyen otros niveles o servicios externos.Don't include other tiers or external services. De lo contrario, un error que se produzca fuera de la máquina virtual hará que el equilibrador de carga quite la máquina virtual de la rotación.Otherwise, a failure that occurs outside the VM will cause the load balancer to remove the VM from rotation.

Para obtener una guía sobre la implementación de la supervisión del estado en la aplicación, consulte el patrón de supervisión del punto de conexión de mantenimiento.For guidance on implementing health monitoring in your application, see Health Endpoint Monitoring pattern.

Probar sistemas de supervisiónTest monitoring systems

Incluir sistemas de supervisión en el plan de pruebas.Include monitoring systems in your test plan. Dependen de sistemas automatizados de conmutación por error y el funcionamiento correcto de supervisión e instrumentación.Automated failover and failback systems depend on the correct functioning of monitoring and instrumentation. Los paneles para visualizar alertas de estado y el operador de sistema también dependen de instrumentación y supervisión precisa.Dashboards to visualize system health and operator alerts also depend on having accurate monitoring and instrumentation. Si estos elementos generan un error, pierden información fundamental o informan de datos imprecisos, es posible que un operador no se dé cuenta de que el sistema está en mal estado o de que tiene errores.If these elements fail, miss critical information, or report inaccurate data, an operator might not realize that the system is unhealthy or failing.

Incluir servicios de terceros en escenarios de pruebaInclude third-party services in test scenarios

Si la aplicación tiene dependencias de servicios de terceros, identifique dónde y cómo estos servicios pueden producir un error y lo que afecta a esos errores tendrá en su aplicación.If your application has dependencies on third-party services, identify where and how these services can fail and what effect those failures will have on your application. Tenga en cuenta el acuerdo de nivel de servicio (SLA) para el servicio de terceros y el efecto que podría tener en su plan de recuperación ante desastres.Keep in mind the service-level agreement (SLA) for the third-party service and the effect it might have on your disaster recovery plan.

Un servicio de terceros podría no proporcionar capacidades de supervisión y diagnóstico, por lo que es importante registrar sus invocaciones y póngalos en correlación con el estado de la aplicación y el registro de diagnóstico mediante un identificador único.A third-party service might not provide monitoring and diagnostics capabilities, so it's important to log your invocations of them and to correlate them with your application's health and diagnostic logging using a unique identifier. Para obtener más información sobre las prácticas probadas para la supervisión y diagnóstico, consulte Guía de supervisión y diagnóstico.For more information on proven practices for monitoring and diagnostics, see Monitoring and diagnostics guidance.

Pasos siguientesNext steps