Implementación de aplicaciones de Azure para la resistencia y disponibilidadDeploying Azure applications for resiliency and availability

Aprovisionar y actualizar los recursos de Azure, el código de aplicación y opciones de configuración, un proceso repetible y predecible le ayudará a evitar errores y tiempo de inactividad.As you provision and update Azure resources, application code, and configuration settings, a repeatable and predictable process will help you avoid errors and downtime. Se recomienda que los procesos automatizados para la implementación que se puede ejecutar a petición y volver a ejecutar si se produce un error.We recommend automated processes for deployment that you can run on demand and rerun if something fails. Después de que los procesos de implementación se ejecutan sin problemas, documentación de procesos puede mantenerlos de este modo.After your deployment processes are running smoothly, process documentation can keep them that way.

Automatización de procesosAutomate processes

Para activar recursos a petición, implementar soluciones rápidamente, minimizar los errores humanos y producir resultados coherentes y repetibles, asegúrese de automatizar las implementaciones y actualizaciones.To activate resources on demand, deploy solutions rapidly, minimize human error, and produce consistent and repeatable results, be sure to automate deployments and updates.

Automatizar procesos tantos como sea posibleAutomate as many processes as possible

Se automatizan los procesos de implementación más confiables y idempotente — es decir, repetibles para producir los mismos resultados.The most reliable deployment processes are automated and idempotent — that is, repeatable to produce the same results.

Como práctica recomendada, cree un repositorio de scripts de automatización por categorías para un acceso rápido, documentadas con explicaciones de parámetros y ejemplos de uso de la secuencia de comandos.As a best practice, create a repository of categorized automation scripts for quick access, documented with explanations of parameters and examples of script use. Mantener sincronizadas con las implementaciones de Azure en esta documentación y designar una persona principal para administrar el repositorio.Keep this documentation in sync with your Azure deployments, and designate a primary person to manage the repository.

Los scripts de automatización también pueden activar recursos a petición para la recuperación ante desastres.Automation scripts can also activate resources on demand for disaster recovery.

Utilice código para aprovisionar y configurar la infraestructuraUse code to provision and configure infrastructure

Esta práctica, llamada infraestructura como código, puede usar un enfoque declarativo o un enfoque imperativo (o una combinación de ambos).This practice, called infrastructure as code, may use a declarative approach or an imperative approach (or a combination of both).

Infraestructura inmutable prácticaPractice immutable infrastructure

En otras palabras, no modifique ninguna infraestructura después de que se implemente en producción.In other words, don't modify infrastructure after it's deployed to production. Después de que se han aplicado cambios ad hoc, es posible que no sabe exactamente qué ha cambiado, por lo que puede ser difícil solucionar problemas del sistema.After ad hoc changes have been applied, you might not know exactly what has changed, so it can be difficult to troubleshoot the system.

Automatizar y probar las tareas de implementación y mantenimientoAutomate and test deployment and maintenance tasks

Las aplicaciones distribuidas constan de varias partes que deben funcionar en conjunto.Distributed applications consist of multiple parts that must work together. Implementación debe sacar partido de los mecanismos contrastados, como secuencias de comandos, que pueden actualizar y validar la configuración y automatizar el proceso de implementación.Deployment should take advantage of proven mechanisms, such as scripts, that can update and validate configuration and automate the deployment process. Probar todos los procesos por completo para asegurarse de que los errores no provocan tiempo de inactividad adicional.Test all processes fully to ensure that errors don't cause additional downtime.

Implementar medidas de seguridad de la implementaciónImplement deployment security measures

Todas las herramientas de implementación deben incorporar las restricciones de seguridad para proteger la aplicación implementada.All deployment tools must incorporate security restrictions to protect the deployed application. Definir y aplicar directivas de implementación con cuidado y minimizar la necesidad de intervención humana.Define and enforce deployment policies carefully, and minimize the need for human intervention.

Implementar en varias regiones e instanciasDeploy to multiple regions and instances

Una aplicación que depende de una sola instancia de un servicio crea un único punto de error.An application that depends on a single instance of a service creates a single point of failure. Para mejorar la escalabilidad y resistencia, aprovisionamiento de varias instancias.To improve resiliency and scalability, provision multiple instances.

Considere la posibilidad de implementar en varias regionesConsider deploying across multiple regions

Se recomienda implementar todos, pero las aplicaciones menos críticas y los servicios de aplicación en varias regiones.We recommend deploying all but the least critical applications and application services across multiple regions. Si la aplicación se implementa en una sola región, en el caso excepcional de que toda la región deja de estar disponible, la aplicación también estará disponible.If your application is deployed to a single region, in the rare event that the entire region becomes unavailable, the application will also be unavailable.

Si decide implementar en una sola región, considere la posibilidad de preparación volver a implementar en una región secundaria como respuesta a un error inesperado.If you choose to deploy to a single region, consider preparing to redeploy to a secondary region as a response to an unexpected failure.

Volver a implementar en una región secundariaRedeploy to a secondary region

Si ejecuta las aplicaciones y bases de datos en una región principal, única sin replicación, la estrategia de recuperación sería volver a implementar en otra región.If you run applications and databases in a single, primary region with no replication, your recovery strategy might be to redeploy to another region. Esta solución es rentable, pero más adecuada para las aplicaciones no críticas que pueden tolerar los tiempos de recuperación.This solution is affordable but most appropriate for non-critical applications that can tolerate longer recovery times.

Si elige esta estrategia, automatizar el proceso de volver a implementar tanto como sea posible e incluyen escenarios de reimplementación en las pruebas de respuesta ante desastres.If you choose this strategy, automate the redeployment process as much as possible and include redeployment scenarios in your disaster response testing.

Para automatizar el proceso de reimplementación, considere el uso de Azure Site Recovery.To automate your redeployment process, consider using Azure Site Recovery.

Usar entornos de ensayo y producciónUse staging and production environments

Con buen uso de entornos de ensayo y producción, puede insertar actualizaciones en el entorno de producción de forma altamente controlada y minimizar las interrupciones de problemas de implementación no anticipadas.With good use of staging and production environments, you can push updates to the production environment in a highly controlled way and minimize disruption from unanticipated deployment issues.

  • Implementación Blue-green implica la implementación de una actualización en un entorno de producción es independiente de la aplicación activa.Blue-green deployment involves deploying an update into a production environment that's separate from the live application. Después de validar la implementación, cambie el enrutamiento de tráfico a la versión actualizada.After you validate the deployment, switch the traffic routing to the updated version. Una forma de hacerlo es usar el ranuras de ensayo disponible en Azure App Service para almacenar provisionalmente una implementación antes de pasarlo a producción.One way to do this is to use the staging slots available in Azure App Service to stage a deployment before moving it to production.
  • Lanzamientos son similares a las implementaciones azul-verde.Canary releases are similar to blue-green deployments. En lugar de cambiar todo el tráfico a la aplicación actualizada, enrutará sólo una pequeña parte del tráfico a la nueva implementación.Instead of switching all traffic to the updated application, you route only a small portion of the traffic to the new deployment. Si hay un problema, vuelva a la implementación anterior.If there's a problem, revert to the old deployment. Si no es así, enrutar gradualmente más tráfico a la nueva versión.If not, gradually route more traffic to the new version. Si usa Azure App Service, puede usar las pruebas en función de producción para administrar un lanzamiento controlado.If you're using Azure App Service, you can use the Testing in production feature to manage a canary release.

Crear un plan de reversión para la implementación y las actualizacionesCreate a rollback plan for deployment and updates

Si se produce un error en una implementación, la aplicación dejen de estar disponible.If a deployment fails, your application could become unavailable. Para minimizar el tiempo de inactividad, diseñe un proceso de reversión para volver a una versión buena conocida de la última.To minimize downtime, design a rollback process to go back to a last-known good version. Incluir una estrategia para revertir los cambios en las bases de datos y cualquier otro servicio que depende la aplicación.Include a strategy to roll back changes to databases and any other services your app depends on.

Si usa Azure App Service, puede configurar una ranura de sitio en buen estado conocido de la última y usarla para revertir desde una implementación de aplicación de API o web.If you're using Azure App Service, you can set up a last-known good site slot and use it to roll back from a web or API app deployment.

Implementaciones de registro y auditoríaLog and audit deployments

Para capturar información muy específica de la versión como sea posible, implemente una estrategia de registro robusta.To capture as much version-specific information as possible, implement a robust logging strategy. Si usa técnicas de implementación de ensayo, se ejecutará más de una versión de la aplicación en producción.If you use staged deployment techniques, more than one version of your application will be running in production. Si se produce un problema, determine qué versión está bloqueándola.If a problem occurs, determine which version is causing it.

Procesos de versión de documentoDocument release processes

Sin la documentación del proceso de versiones detallados, un operador podría implementar una actualización incorrecta o podría configurar de manera incorrecta la configuración de la aplicación.Without detailed release process documentation, an operator might deploy a bad update or might improperly configure settings for your application. 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.

Pasos siguientesNext steps