Mejoras en la confiabilidad de Microsoft Azure

Publicado el 15 julio, 2019

Chief Technology Officer, Microsoft Azure

La dependencia de los servicios en la nube continúa aumentando para las industrias, las organizaciones y las personas de todo el mundo. Por tanto, ahora es más importante que nunca poder confiar en que las soluciones en la nube que utiliza son seguras, cumplen los estándares internacionales y las normativas locales, mantienen la privacidad y la seguridad de los datos y son, fundamentalmente, confiables. En Microsoft, nos comprometemos a proporcionar un conjunto de servicios en la nube de confianza, lo que le proporciona seguridad para descubrir el potencial de la nube.

A lo largo del último año, Azure ha operado los servicios de proceso principales de nuestra infraestructura en la nube mundial con un tiempo de actividad medio del 99,995 %. Sin embargo, a la escala a la que funciona Azure, sabemos que el tiempo de actividad por sí solo no ofrece una imagen completa. Hemos experimentado tres incidentes únicos e importantes que afectaron a los clientes durante este período, una interrupción en el centro de datos de la región Centro-sur de EE. UU. en septiembre de 2018, dificultades en Multi-Factor Authentication (MFA) de Azure Active Directory (Azure AD) en noviembre de 2018 y problemas de mantenimiento de los servidores DNS en mayo de 2019.

La creación y el funcionamiento de una infraestructura en la nube mundial con 54 regiones compuestas por cientos de servicios en constante evolución es una tarea grande y compleja, por lo que tratamos cada incidente como un momento de aprendizaje importante. Las interrupciones y otros incidentes en el servicio suponen un reto para todos los proveedores de nube pública. Seguimos mejorando nuestro conocimiento de las maneras complejas en las que factores como los procesos operativos, los diseños de la arquitectura, los problemas de hardware, los errores de software y los factores humanos se pueden alinear para producir incidentes en el servicio. Los tres incidentes mencionados fueron el resultado de varios errores que, solo a través de interacciones complejas, dieron lugar a una interrupción del servicio que afectó a los clientes. En respuesta, estamos creando mejores formas de mitigar los incidentes, como la redundancia en la plataforma, el control de calidad en la canalización de versión y la automatización de los procesos. La capacidad de mejora continua y en tiempo real es una de las grandes ventajas de los servicios en la nube y, aunque nunca eliminaremos todos estos riesgos, hacemos un gran esfuerzo por reducir tanto la frecuencia como el impacto de los problemas en los servicios, al tiempo que somos transparentes para nuestros clientes, asociados y todo el sector.

Garantizar la confiabilidad es una responsabilidad fundamental para cada ingeniero de Azure. Con el fin de ampliar estos esfuerzos, hemos formado un nuevo equipo de ingeniería de calidad dentro de mi oficina de director de tecnología, que trabaja junto con el equipo de ingeniería de confiabilidad de sitios (SRE) en soluciones innovadoras que nos permitan ofrecer una plataforma aún más confiable. Las siguientes son algunas de las iniciativas que ya tenemos en marcha para seguir mejorando nuestra confiabilidad:

  • Prácticas de implementación seguras. En Azure, la automatización de los cambios se lleva a cabo en un marco de prácticas de implementación seguras cuyo objetivo es asegurar que todos los cambios de código y configuración pasen por un ciclo de fases específicas. Estas fases son: desarrollo y pruebas, ensayo, versiones preliminares privadas, un piloto de diversidad de hardware y períodos de validación más largos antes de realizar una implementación más amplia en pares de regiones. Esto ha reducido drásticamente el riesgo de que los cambios de software tengan efectos negativos y estamos ampliando este mecanismo para incluir los cambios en la infraestructura definida por software, como las redes y los servidores DNS.
  • Conmutación por error a nivel de cuenta de almacenamiento. Durante la interrupción del servicio en el centro de datos en septiembre de 2018, se dañaron físicamente varias marcas de almacenamiento, lo que supuso su apagado inmediato. Puesto que nuestra política es dar prioridad a la retención de los datos por encima del tiempo de restauración, decidimos soportar una interrupción más prolongada con el fin de asegurarnos de que podríamos restaurar todos los datos de los clientes correctamente. Algunos de nuestros clientes nos han dicho que quieren disponer de más flexibilidad para tomar esta decisión en nombre de sus organizaciones. Por eso, vamos a ofrecer a los clientes la capacidad en versión preliminar de iniciar su propia conmutación por error a nivel de cuenta de almacenamiento.
  • Ampliación de las zonas de disponibilidad. Actualmente, tenemos zonas de disponibilidad activas en las diez regiones más grandes de Azure, que proporcionan una opción más de confiabilidad para la mayoría de nuestros clientes. También estamos trabajando para incorporar zonas de disponibilidad a las segundas diez regiones de Azure más grandes entre ahora y 2021.
  • Project Tardigrade. En Build el mes pasado, hablé sobre Project Tardigrade, un nuevo servicio de Azure que toma este nombre de los tardígrados (tardigrades en inglés), unos animalitos microscópicos casi indestructibles que también se conocen como osos de agua. Esta solución detecta errores de hardware o fugas de memoria que pueden provocar bloqueos del sistema operativo justo antes de que se produzcan, de forma que Azure puede detener las máquinas virtuales durante unos segundos para poder mover las cargas de trabajo a un host con un estado correcto.  
  • Mantenimiento con poco o ningún impacto. Estamos invirtiendo en mejorar las tecnologías de bajo impacto o ningún impacto, como la aplicación de revisiones en caliente, la migración en vivo y la migración en contexto. Hemos implementado decenas de revisiones de seguridad y confiabilidad en la infraestructura de host en el último año, muchas de las cuales se implementaron sin impacto ni tiempo de inactividad para el cliente. Seguimos invirtiendo en estas tecnologías para incorporar sus ventajas a más servicios de Azure.
  • Inserción de errores y pruebas de esfuerzo. Validar que los sistemas funcionarán según lo previsto en el caso de que se produzcan errores solo es posible sometiéndolos a esos errores. Cada vez insertamos más errores en nuestros servicios antes de enviarlos a producción, tanto a pequeña escala con errores y esfuerzo de carga específicos del servicio, como a escala regional y de zona de disponibilidad, con simulacros de errores que afectan a toda una región o una zona de disponibilidad en nuestras regiones controladas privadas. Nuestro plan es hacer que estos servicios de inserción de errores estén finalmente a disposición de los clientes para que puedan realizar la misma validación en sus propios servicios y aplicaciones.

Esté atento, porque seguiremos publicando más detalles sobre nuestra arquitectura y nuestras operaciones internas. Mientras damos estos pasos para mejorar la confiabilidad básica, Azure también proporciona alta disponibilidad, recuperación ante desastres y soluciones de copia de seguridad con las que sus aplicaciones pueden cumplir los requisitos de disponibilidad y los objetivos de recuperación de su empresa. Mantenemos instrucciones detalladas sobre cómo diseñar aplicaciones confiables, incluidos los procedimientos recomendados para el diseño de la arquitectura, la supervisión del estado de las aplicaciones y la respuesta a errores y desastres.

La confiabilidad es y sigue siendo un principio básico de nuestro compromiso por ofrecer una nube de confianza, junto con el cumplimiento normativo, la seguridad, la privacidad y la transparencia. En todas estas áreas, sabemos que la confianza de los clientes se gana y debe mantenerse, no solo diciendo lo correcto, sino haciendo lo correcto. Microsoft considera que una nube de confianza, responsable e inclusiva se basa en cómo nos involucramos como empresa, cómo desarrollamos nuestra tecnología y nuestra labor de promoción y divulgación, y cómo atendemos a las comunidades en las que operamos. Microsoft se compromete a proporcionar un conjunto de servicios en la nube de confianza, lo que le proporciona seguridad para descubrir el potencial de la nube.