Diseño de aplicaciones de Azure confiablesDesigning reliable Azure applications

La compilación de una aplicación confiable en la nube es diferente al desarrollo de aplicaciones tradicionales.Building a reliable application in the cloud is different from traditional application development. Si bien históricamente puede haber adquirido hardware de gama superior para escalar verticalmente, en un entorno de nube debe escalar horizontalmente en lugar de verticalmente.While historically you may have purchased higher-end hardware to scale up, in a cloud environment you scale out instead of up. En lugar de intentar evitar todos los errores, el objetivo es minimizar los efectos que pueden provocar los errores de un único componente.Instead of trying to prevent failures altogether, the goal is to minimize the effects of a single failing component.

Las aplicaciones confiables:Reliable applications are:

  • Son resistentes y se recuperan con facilidad de los errores, y siguen funcionando con un tiempo de inactividad y una pérdida de datos mínimos antes de la recuperación total.Resilient and recover gracefully from failures, and they continue to function with minimal downtime and data loss before full recovery.
  • Tienen alta disponibilidad y se ejecutan según lo previsto en un estado correcto sin tiempos de inactividad significativos.Highly available (HA) and run as designed in a healthy state with no significant downtime.

Comprender cómo funcionan juntos estos elementos — y cómo afectan al costo — es esencial para crear una aplicación confiable.Understanding how these elements work together — and how they affect cost — is essential to building a reliable application. Puede ayudarle a determinar cuánto tiempo de inactividad es aceptable, el costo potencial para su negocio y las funciones que son necesarias durante la recuperación.It can help you determine how much downtime is acceptable, the potential cost to your business, and which functions are necessary during a recovery.

En este artículo se proporciona una breve descripción general sobre cómo generar esta confiabilidad en cada paso del proceso de diseño de la aplicación de Azure.This article provides a brief overview of building reliability into each step of the Azure application design process. Cada sección incluye un vínculo a un artículo detallado sobre cómo integrar la confiabilidad en ese paso específico del proceso.Each section includes a link to an in-depth article on how to integrate reliability into that specific step in the process. Si está buscando alguna observación sobre confiabilidad para servicios individuales de Azure, revise la lista de comprobación de resistencia para servicios de Azure específicos.If you're looking for reliability considerations for individual Azure services, review the Resiliency checklist for specific Azure services.

Generación de confiabilidadBuild for reliability

En esta sección se describen seis pasos para compilar una aplicación de Azure confiable.This section describes six steps for building a reliable Azure application. Cada paso se vincula a una sección que define con más detalle el proceso y los términos.Each step links to a section that further defines the process and terms.

  1. Definición de los requisitos.Define requirements. Desarrolle los requisitos de disponibilidad y recuperación en función de las cargas de trabajo descompuestas y de las necesidades empresariales.Develop availability and recovery requirements based on decomposed workloads and business needs.
  2. Uso de los procedimientos recomendados de arquitectura.Use architectural best practices. Siga los procedimientos demostrados, identifique los puntos de error posibles de la arquitectura y determine cómo responderá la aplicación ante un error.Follow proven practices, identify possible failure points in the architecture, and determine how the application will respond to failure.
  3. Prueba con simulaciones y conmutaciones por error forzadas.Test with simulations and forced failovers. Simule errores, desencadene conmutaciones por error forzadas y pruebe la detección y recuperación a partir de estos errores.Simulate faults, trigger forced failovers, and test detection and recovery from these failures.
  4. Implementación coherente de la aplicación.Deploy the application consistently. Publique la versión en producción mediante procesos confiables y repetibles.Release to production using reliable and repeatable processes.
  5. Supervisión del estado de la aplicación.Monitor application health. Detecte errores, supervise posibles indicadores de error y controle el estado de las aplicaciones.Detect failures, monitor indicators of potential failures, and gauge the health of your applications.
  6. Respuesta a errores y desastres.Respond to failures and disasters. Identifique cuándo se produce un error y determine cómo solucionarlo según estrategias establecidas.Identify when a failure occurs, and determine how to address it based on established strategies.

Definición de los requisitosDefine requirements

Identifique sus necesidades empresariales y cree su plan de confiabilidad para afrontarlas.Identify your business needs, and build your reliability plan to address them. Tenga en cuenta lo siguiente.Consider the following:

  • Identificación de las cargas de trabajo y el uso.Identify workloads and usage. Una carga de trabajo es una funcionalidad o tarea independiente que está separada de forma lógica de otras tareas, en términos de requisitos de lógica de negocios y de almacenamiento de datos.A workload is a distinct capability or task that is logically separated from other tasks, in terms of business logic and data storage requirements. Cada carga de trabajo puede tener diferentes requisitos de disponibilidad, escalabilidad, coherencia de datos y recuperación ante desastres.Each workload has different requirements for availability, scalability, data consistency, and disaster recovery.

  • Planeamiento de patrones de uso.Plan for usage patterns. Los patrones de uso también desempeñan un papel en los requisitos.Usage patterns also play a role in requirements. Identifique las diferencias en los requisitos durante los períodos críticos y no críticos.Identify differences in requirements during critical and non-critical periods. Por ejemplo, una aplicación de declaración de impuestos no puede tener un error justo antes de una fecha límite de presentación.For example, a tax-filing application can't fail during a filing deadline. Para garantizar el tiempo de actividad, planee redundancia en varias regiones en caso de que se produzca un error en una de ellas.To ensure uptime, plan redundancy across several regions in case one fails. Por el contrario, para minimizar los costos durante los períodos no críticos, puede ejecutar la aplicación en una única región.Conversely, to minimize costs during non-critical periods, you can run your application in a single region.

  • Establecimiento de métricas de disponibilidad — tiempo medio para recuperación (MTTR) y tiempo medio entre errores (MTBF).Establish availability metrics — mean time to recovery (MTTR) and mean time between failures (MTBF). MTTR es el tiempo medio necesario para restaurar un componente después de un error.MTTR is the average time it takes to restore a component after a failure. MTBF es lo que razonablemente es previsible esperar que dure un componente entre dos interrupciones.MTBF is now long a component can reasonably expect to last between outages. Utilice estas medidas para determinar dónde agregar redundancia y para crear los Acuerdos de Nivel de Servicio para los clientes.Use these measures to determine where to add redundancy and to determine service-level agreements (SLAs) for customers.

  • Establecimiento de métricas de recuperación — objetivo de tiempo de recuperación (RTO) y objetivo de punto de recuperación (RPO).Establish recovery metrics — recovery time objective and recovery point objective (RPO). El RTO es el tiempo máximo aceptable que una aplicación puede no estar disponible después de un incidente.RTO is the maximum acceptable time an application can be unavailable after an incident. El RPO es la duración máxima de la pérdida de datos que es aceptable durante un desastre.RPO is the maximum duration of data loss that is acceptable during a disaster. Para obtener estos valores, realice una valoración de riesgos y asegúrese de que comprende los costos y posibles riesgos que puede suponer una pérdida de datos o un tiempo de inactividad para la organización.To derive these values, conduct a risk assessment and make sure you understand the cost and risk of downtime or data loss in your organization.

    Nota

    Si el MTTR de cualquier componente crítico de una configuración de alta disponibilidad supera el RTO del sistema, un error en el sistema podría provocar una interrupción inaceptable del negocio.If the MTTR of any critical component in a highly available setup exceeds the system RTO, a failure in the system might cause an unacceptable business disruption. Es decir, no podrá restaurar el sistema dentro del RTO que se ha definido.That is, you can't restore the system within the defined RTO.

  • Determinación de los objetivos de disponibilidad de la carga de trabajo.Determine workload availability targets. Para garantizar que la arquitectura de la aplicación se adapta a sus requisitos empresariales, defina los Acuerdos de Nivel de Servicio de cada carga de trabajo.To ensure that application architecture meets your business requirements, define target SLAs for each workload. Analice el costo y la complejidad que supone satisfacer los requisitos de disponibilidad además de las dependencias de la aplicación.Account for the cost and complexity of meeting availability requirements, in addition to application dependencies.

  • Descripción de los Acuerdos de Nivel de Servicio.Understand service-level agreements. En Azure, el Acuerdo de Nivel de Servicio describe los compromisos de Microsoft en cuanto a tiempo de actividad y conectividad.In Azure, the SLA describes the Microsoft commitments for uptime and connectivity. Si el Acuerdo de Nivel de Servicio de un servicio determinado es del 99,9 %, significa que lo esperable es que el servicio esté disponible un 99,9 % del tiempo.If the SLA for a particular service is 99.9 percent, you should expect the service to be available 99.9 percent of the time.

    Defina sus propios Acuerdos de Nivel de Servicio para cada carga de trabajo de la solución de forma que pueda determinar si la arquitectura satisface los requisitos empresariales.Define your own target SLAs for each workload in your solution, so you can determine whether the architecture meets the business requirements. Por ejemplo, si una carga de trabajo requiere un tiempo de actividad del 99,99 %, pero depende de un servicio con un Acuerdo de Nivel de Servicio del 99,9 %, ese servicio no puede ser un único punto de error en el sistema.For example, if a workload requires 99.99 percent uptime but depends on a service with a 99.9 percent SLA, that service can't be a single point of failure in the system.

Para más información sobre los requisitos de desarrollo de las aplicaciones confiables, consulte Developing requirements for resilient Azure applications (Requisitos de desarrollo para aplicaciones de Azure resistentes).For more information about developing requirements for reliable applications, see Developing requirements for resilient Azure applications.

Uso de los procedimientos recomendados de arquitecturaUse architectural best practices

Durante la fase de arquitectura, concéntrese en implementar procedimientos que satisfagan los requisitos empresariales, identifique puntos de error y minimice el alcance de los errores.During the architectural phase, focus on implementing practices that meet your business requirements, identify failure points, and minimize the scope of failures.

  • Análisis del modo de error (FMA) de la aplicación.Perform a failure mode analysis (FMA). El análisis del modo de error genera resistencia en una aplicación al principio de la etapa de diseño.FMA builds resiliency into an application early in the design stage. Le ayuda a identificar los tipos de errores que podría experimentar la aplicación, los posibles efectos de cada uno y las estrategias de recuperación posibles.It helps you identify the types of failures your application might experience, the potential effects of each, and possible recovery strategies.

  • Creación de un plan de redundancia.Create a redundancy plan. El nivel de redundancia necesario para cada carga de trabajo depende de sus necesidades empresariales y de factores de costo general de la aplicación.The level of redundancy required for each workload depends on your business needs and factors into the overall cost of your application.

  • Diseño de la escalabilidad.Design for scalability. Se debe poder escalar una aplicación en la nube para adaptarse a los cambios de uso.A cloud application must be able to scale to accommodate changes in usage. Empiece con componentes discretos y diseñe la aplicación para responder automáticamente a los cambios de carga siempre que sea posible.Begin with discrete components, and design the application to respond automatically to load changes whenever possible. Tenga en cuenta los límites de escalado durante el diseño de manera que puede expandirse fácilmente en el futuro.Keep scaling limits in mind during design so you can expand easily in the future.

  • Planeamiento de los requisitos de suscripción y de servicio.Plan for subscription and service requirements. Puede que necesite suscripciones adicionales para aprovisionar recursos suficientes para satisfacer los requisitos empresariales de almacenamiento, conexiones, rendimiento, etc.You might need additional subscriptions to provision enough resources to meet your business requirements for storage, connections, throughput, and more.

  • Uso del equilibrio de carga para distribuir las solicitudes.Use load-balancing to distribute requests. El equilibrio de carga distribuye las solicitudes de la aplicación a las instancias de servicio correctas mediante la eliminación de la rotación de las instancias no correctas.Load-balancing distributes your application's requests to healthy service instances by removing unhealthy instances from rotation.

  • Implementación de estrategias de resistencia.Implement resiliency strategies. Resistencia es la capacidad de un sistema de recuperarse de los errores y seguir funcionando.Resiliency is the ability of a system to recover from failures and continue to function. Implemente patrones de diseño de resistencia, como aislar recursos críticos, mediante transacciones de compensación y realice operaciones asincrónicas siempre que sea posible.Implement resiliency design patterns, such as isolating critical resources, using compensating transactions, and performing asynchronous operations whenever possible.

  • Requisitos de disponibilidad en el diseño.Build availability requirements into your design. La disponibilidad es la proporción de tiempo que un sistema es funcional y está operativo.Availability is the proportion of time your system is functional and working. Tome medidas para garantizar que la disponibilidad de la aplicación coincide con la que se indica en el Acuerdo de Nivel de Servicio.Take steps to ensure that application availability conforms to your service-level agreement. Por ejemplo, evite puntos únicos de error, descomponga las cargas de trabajo por objetivo de nivel de servicio y limite a los usuarios de gran volumen.For example, avoid single points of failure, decompose workloads by service-level objective, and throttle high-volume users.

  • Administración de los datos.Manage your data. La forma de almacenar, hacer copia de seguridad y replicar los datos es fundamental.How you store, back up, and replicate data is critical.

    • Elija los métodos de replicación para los datos de la aplicación.Choose replication methods for your application data. Los datos de la aplicación se almacenan en varios orígenes de datos y pueden tener distintos requisitos de disponibilidad.Your application data is stored in various data stores and might have different availability requirements. Evalúe los métodos de replicación y las ubicaciones para cada tipo de almacén de datos para asegurarse de que cumplen sus requisitos.Evaluate the replication methods and locations for each type of data store to ensure that they satisfy your requirements.
    • Documente y pruebe los procesos de conmutación por error y conmutación por recuperación.Document and test your failover and failback processes. Documente claramente las instrucciones para conmutar por error a un nuevo almacén de datos y compruébelas con regularidad para asegurarse de que son adecuadas y fáciles de seguir.Clearly document instructions to fail over to a new data store, and test them regularly to make sure they are accurate and easy to follow.
    • Proteja sus datos.Protect your data. Realice copias de seguridad y valide los datos regularmente y asegúrese de que ninguna cuenta de usuario tiene acceso a los datos de producción y a los de la copia de seguridad.Back up and validate data regularly, and make sure no single user account has access to both production and backup data.
    • Planee la recuperación de datos.Plan for data recovery. Asegúrese de que la estrategia de copia de seguridad y replicación proporciona tiempos de recuperación de los datos que cumplen con los requisitos del Acuerdo de Nivel de Servicio.Make sure that your backup and replication strategy provides for data recovery times that meet your service-level requirements. Tenga en cuenta todos los tipos de datos que usa la aplicación, incluidos los datos de referencia y las bases de datos.Account for all types of data your application uses, including reference data and databases.

Para más información sobre la organización de la arquitectura de aplicaciones confiables, consulte Architecting Azure applications for resiliency and availability (Arquitectura de aplicaciones de Azure para conseguir resistencia y disponibilidad).For more information about architecting reliable applications, see Architecting Azure applications for resiliency and availability.

Prueba con simulaciones y conmutaciones por error forzadasTest with simulations and forced failovers

La prueba de confiabilidad requiere medir cómo se realiza la carga de trabajo de un extremo a otro en condiciones de error que solo se producen de forma intermitente.Testing for reliability requires measuring how the end-to-end workload performs under failure conditions that only occur intermittently.

  • Pruebe escenarios comunes de error desencadenando errores reales o simulándolos.Test for common failure scenarios by triggering actual failures or by simulating them. Use pruebas de inserción de errores para probar escenarios comunes (se pueden incluir combinaciones de errores) y el tiempo de recuperación.Use fault injection testing to test common scenarios (including combinations of failures) and recovery time.
  • Identifique los errores que solo se producen con carga.Identify failures that occur only under load. Realice pruebas de carga máxima, mediante el uso de datos de producción o datos sintéticos que sean lo más parecido posible a los datos de producción, para ver el comportamiento de la aplicación en condiciones reales.Test for peak load, using production data or synthetic data that is as close to production data as possible, to see how the application behaves under real-world conditions.
  • Ejecute operaciones de recuperación ante desastres.Run disaster recovery drills. Tenga un plan de recuperación ante desastres vigente y compruébelo periódicamente para asegurarse de que funciona.Have a disaster recovery plan in place, and test it periodically to make sure it works.
  • Realice pruebas de conmutación por error y de conmutación por recuperación.Perform failover and failback testing. Asegúrese de que los servicios dependientes de la aplicación realizan la conmutación por error y la conmutación por recuperación en el orden correcto.Ensure that your application's dependent services fail over and fail back in the correct order.
  • Ejecute pruebas de simulación.Run simulation tests. Probar escenarios reales puede sacar a la luz problemas que se deben resolver.Testing real-life scenarios can highlight issues that need to be addressed. Estos escenarios deben ser controlables y no interrumpir el negocio.Scenarios should be controllable and non-disruptive to the business. Informe al equipo directivo de los planes de prueba de simulaciones.Inform management of simulation testing plans.
  • Pruebe sondeos de mantenimiento.Test health probes. Configure sondeos de mantenimiento para los equilibradores de carga y las instancias de Traffic Manager para comprobar los componentes críticos del sistema.Configure health probes for load balancers and traffic managers to check critical system components. Pruébelos para asegurarse de que responden adecuadamente.Test them to make sure that they respond appropriately.
  • Pruebe los sistemas de supervisión.Test monitoring systems. Asegúrese de que los sistemas de supervisión notifican de manera confiable información crítica y datos adecuados para ayudar a identificar posibles errores.Be sure that monitoring systems are reliably reporting critical information and accurate data to help identify potential failures.
  • Incluya servicios de terceros en escenarios de prueba.Include third-party services in test scenarios. Pruebe posibles puntos de error debido a interrupciones de servicios de terceros, además de la recuperación.Test possible points of failure due to third-party service disruption, in addition to recovery.

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

Para más información sobre la confiabilidad de la aplicación, consulte Testing Azure applications for resiliency and availability (Prueba de aplicaciones de Azure para evaluar la resistencia y disponibilidad).For more information about testing for application reliability, see Testing Azure applications for resiliency and availability.

Implementación coherente de la aplicaciónDeploy the application consistently

La implementación incluye el aprovisionamiento de recursos de Azure, la implementación del código de aplicación y la aplicación de las opciones de configuración.Deployment includes provisioning Azure resources, deploying application code, and applying configuration settings. Una actualización puede incluir las tres tareas o un subconjunto de ellas.An update may involve all three tasks or a subset of them.

Una vez que una aplicación se implementa en producción, las actualizaciones son un posible origen de errores.After an application is deployed to production, updates are a possible source of errors. Minimice los errores con procesos de implementación predecibles y repetibles.Minimize errors with predictable and repeatable deployment processes.

  • Automatice el proceso de implementación de la aplicación.Automate your application deployment process. Automatice tantos procesos como sea posible.Automate as many processes as possible.
  • Diseñe el proceso de lanzamiento para maximizar la disponibilidad.Design your release process to maximize availability. Si su proceso de lanzamiento requiere que los servicios se desconecten durante la implementación, la aplicación no estará disponible hasta que vuelvan a conectarse.If your release process requires services to go offline during deployment, your application is unavailable until they come back online. Aproveche las características de ensayo y producción de la plataforma.Take advantage of platform staging and production features. Use implementaciones tipo Blue-Green o lanzamientos controlados de manera que, si se produce un error, pueda revertir rápidamente la actualización.Use blue-green or canary releases to deploy updates, so if a failure occurs, you can quickly roll back the update.
  • Tenga un plan de reversión para la implementación.Have a rollback plan for deployment. Diseñe un proceso de reversión para regresar a una última versión buena conocida y minimizar el tiempo de inactividad en caso de error de una implementación.Design a rollback process to return to a last known good version and to minimize downtime if a deployment fails.
  • Registre y audite implementaciones.Log and audit deployments. Si utiliza técnicas de implementación por etapas, habrá más de una versión de su aplicación en ejecución en producción.If you use staged deployment techniques, more than one version of your application is running in production. Implemente una estrategia de registro robusta para capturar tanta información específica de la versión como sea posible.Implement a robust logging strategy to capture as much version-specific information as possible.
  • Documente el proceso de lanzamiento de la aplicación.Document the application release process. Defina y documente claramente el proceso de lanzamiento y asegúrese de que esté disponible para todo el equipo de operaciones.Clearly define and document your release process, and ensure that it's available to the entire operations team.

Para más información sobre la confiabilidad e implementación de la aplicación, consulte Deploying Azure applications for resiliency and availability (Implementación de aplicaciones de Azure para lograr resistencia y disponibilidad).For more information about application reliability and deployment, see Deploying Azure applications for resiliency and availability.

Supervisión del estado de la aplicaciónMonitor application health

Implemente procedimientos recomendados para la supervisión y alertas en su aplicación para que pueda detectar errores y avisar a un operador para que los corrija.Implement best practices for monitoring and alerts in your application so you can detect failures and alert an operator to fix them.

  • Implemente sondeos de mantenimiento y funciones de comprobación.Implement health probes and check functions. Ejecútelos con regularidad desde fuera de la aplicación para identificar una degradación del rendimiento y el mantenimiento de la aplicación.Run them regularly from outside the application to identify degradation of application health and performance.

  • Compruebe los flujos de trabajo de larga ejecución.Check long-running workflows. Detectar los problemas al principio puede minimizar la necesidad de revertir todo el flujo de trabajo o de ejecutar varias transacciones de compensación.Catching issues early can minimize the need to roll back the entire workflow or to execute multiple compensating transactions.

  • Mantenga los registros de aplicaciones.Maintain application logs.

    • Registre las aplicaciones en producción y en los límites del servicio.Log applications in production and at service boundaries.
    • Use registros semánticos y asincrónicos.Use semantic and asynchronous logging.
    • Separe los registros de aplicaciones de los registros de auditoría.Separate application logs from audit logs.
  • Mida las estadísticas de llamadas remotas y comparta los datos con el equipo de la aplicación.Measure remote call statistics, and share the data with the application team. Todo eso sirve para proporcionar al equipo de operaciones una vista instantánea del estado de la aplicación y para ofrecer un resumen de las métricas de llamadas remotas como, por ejemplo, la latencia, el rendimiento y los errores en los percentiles 99 y 95.To give your operations team an instantaneous view into application health, summarize remote call metrics, such as latency, throughput, and errors in the 99 and 95 percentiles. Realice un análisis estadístico de las métricas para descubrir los errores que ocurren dentro de cada percentil.Perform statistical analysis on the metrics to uncover errors that occur within each percentile.

  • Realice un seguimiento de las excepciones transitorias y de los reintentos durante un período de tiempo apropiado.Track transient exceptions and retries over an appropriate time frame. Una tendencia al aumento de las excepciones con el tiempo indica que el servicio tiene un problema y puede producir errores.A trend of increasing exceptions over time indicates that the service is having an issue and may fail.

  • Configure un sistema de advertencia temprana.Set up an early warning system. Identifique los indicadores clave de rendimiento del estado de la aplicación, como las excepciones transitorias y la latencia de llamadas remotas, y establezca los valores de umbral apropiados para cada uno de ellos.Identify the key performance indicators (KPIs) of an application's health, such as transient exceptions and remote call latency, and set appropriate threshold values for each of them. Envíe una alerta a las operaciones cuando se alcanza el valor de umbral.Send an alert to operations when the threshold value is reached.

  • Opere dentro de los límites de la suscripción de Azure.Operate within Azure subscription limits. Las suscripciones a Azure tienen límites en ciertos tipos de recursos, como el número de grupos de recursos, de núcleos y de cuentas de almacenamiento.Azure subscriptions have limits on certain resource types, such as the number of resource groups, cores, and storage accounts. Vea su uso de los tipos de recursos.Watch your use of resource types.

  • Supervise los servicios de terceros.Monitor third-party services. Registre las invocaciones y correlaciónelas con los registros de estado y de diagnóstico de la aplicación mediante un identificador único.Log your invocations and correlate them with your application's health and diagnostic logging using a unique identifier.

  • Forme a varios operadores para supervisar la aplicación y realizar los pasos de recuperación manual.Train multiple operators to monitor the application and to perform manual recovery steps. Asegúrese de que siempre hay al menos un operador con la formación necesaria activo.Make sure there is always at least one trained operator active.

Para más información acerca de la supervisión de la confiabilidad de la aplicación, consulte Monitoring Azure application health (Supervisión del estado de la aplicación).For more information about monitoring for application reliability, see Monitoring Azure application health.

Respuesta a errores y desastresRespond to failures and disasters

Cree un plan de recuperación y asegúrese de que este incluye restauración de datos, interrupciones de red, errores de servicios dependientes e interrupciones de servicio regionales.Create a recovery plan, and make sure that it covers data restoration, network outages, dependent service failures, and region-wide service disruptions. Tenga en cuenta las máquinas virtuales, el almacenamiento, las bases de datos y otros servicios de plataforma de Azure en su estrategia de recuperación.Consider your VMs, storage, databases, and other Azure platform services in your recovery strategy.

  • Planee interacciones con el soporte técnico de Azure.Plan for Azure support interactions. Antes de que surja la necesidad, establezca un proceso para ponerse en contacto con el equipo de soporte técnico de Azure.Before the need arises, establish a process for contacting Azure support.
  • Documente y pruebe el plan de recuperación ante desastres.Document and test your disaster recovery plan. Escriba un plan de recuperación ante desastres que refleje el impacto en el negocio de los errores de la aplicación.Write a disaster recovery plan that reflects the business impact of application failures. Automatice el proceso de recuperación el máximo posible y documente los pasos manualmente.Automate the recovery process as much as possible, and document any manual steps. Pruebe regularmente el proceso de recuperación ante desastres para validar y mejorar el plan.Regularly test your disaster recovery process to validate and improve the plan.
  • Realice una conmutación por error manualmente cuando sea necesario.Fail over manually when required. Algunos sistemas no pueden conmutar por error automáticamente y requieren una conmutación por error manual.Some systems can't fail over automatically and require a manual failover. Si una aplicación conmuta por error a una región secundaria, realice una prueba de preparación operativa.If an application fails over to a secondary region, perform an operational readiness test. Compruebe que la región primaria es correcta y que está lista para recibir tráfico de nuevo antes de conmutar por recuperación.Verify that the primary region is healthy and ready to receive traffic again before failing back. Determine cuál es la funcionalidad reducida de la aplicación y cómo esta informa a los usuarios de problemas temporales.Determine what the reduced application functionality is and how the app informs users of temporary problems.
  • Prepárese para un error de la aplicación.Prepare for application failure. Prepárese para una amplia gama de errores, incluidos los errores que se administran automáticamente, aquellos que dan lugar a una funcionalidad reducida o aquellos que hacen que la aplicación no esté disponible.Prepare for a range of failures, including faults that are handled automatically, those that result in reduced functionality, and those that cause the application to become unavailable. La aplicación debe informar a los usuarios de los problemas temporales.The application should inform users of temporary issues.
  • Recuperación a partir de datos dañados.Recover from data corruption. Si se produce un error en un almacén de datos, compruebe si hay incoherencias de datos cuando el almacén vuelve a estar disponible, especialmente si los datos se han replicado.If a failure happens in a data store, check for data inconsistencies when the store becomes available again, especially if the data was replicated. Restaure los datos dañados a partir de una copia de seguridad.Restore corrupt data from a backup.
  • Recuperación después de una interrupción de red.Recover from a network outage. Puede usar los datos en caché para ejecutar localmente la aplicación con una funcionalidad reducida.You might be able to use cached data to run locally with reduced application functionality. Si no es así, tenga en cuenta el tiempo de inactividad de la aplicación o realice una conmutación por error a otra región.If not, consider application downtime or fail over to another region. Almacene los datos en una ubicación alternativa hasta que se restaure la conectividad.Store your data in an alternate location until connectivity is restored.
  • Recuperación después de un error de servicio dependiente.Recover from a dependent service failure. Determine qué funcionalidad está disponible aún y cómo debe responder la aplicación.Determine which functionality is still available and how the application should respond.
  • Recuperación después de una interrupción del servicio en toda la región.Recover from a region-wide service disruption. Las interrupciones del servicio en toda la región son poco frecuentes, pero debe tener una estrategia para solucionarlas, especialmente para las aplicaciones críticas.Region-wide service disruptions are uncommon, but you should have a strategy to address them, especially for critical applications. Podría volver a implementar la aplicación en otra región o redistribuir el tráfico.You might be able to redeploy the application to another region or redistribute traffic.

Para más información sobre cómo responder a errores y sobre la recuperación ante desastres, consulte Recuperación ante desastres y errores de aplicaciones para Azure.For more information about responding to failures and disaster recovery, see Failure and disaster recovery for Azure applications.

Pasos siguientesNext steps