Cómo funciona Hotmail: Arquitectura, infraestructura, rendimiento, almacenamiento, seguridad

28 12 2009

Un post en el blog de Windows Team ha permitido conocer algunos de los detalles que rodean a Windows Live Hotmail, uno de los servicios de correo electrónico web más populares y extendidos en todo el mundo. Por Javier Pastor.

Arthur de Haan, responsable de Pruebas e Ingeniería de Sistemas en la división Windows Live de Microsoft ha publicado un artículo en el que ofrece algunas de las características de la infraestructura necesaria para poder hacer que este servicio esté en marcha.

Según ese artículo Hotmail está disponible en 59 “mercados regionales” y en 36 idiomas, y en los servidores de Microsoft se salvaguardan 1.300 millones de buzones correo, aunque muchos usuarios hacen uso de más de una cuenta. Según las cifras de comScore para agosto de 2009 más de 350 millones de personas utilizan Hotmail cada mes… y se transfieren más de 3.000 millones de mensajes de correo a diario, filtrando además otros 1.000 millones de ellos que nunca llegan a nuestros buzones porque se detectan como spam.

Fuente: TheInquirer. ¿Cómo funciona Hotmail?

El Articulo ha sido traducido: Articulo Orginal en la fuente.

Hola, mi nombre es Arthur de Haan y yo soy responsable de pruebas y de ingeniería de sistemas en Windows Live. Para iniciar las cosas, me gustaría darle un vistazo entre bastidores a Hotmail y decirles más acerca de lo que se necesita para crear, implementar y ejecutar el servicio de Windows Live Hotmail en una escala global tan masiva.

Alberga su correo y datos (y nuestros propios datos!) en nuestros servidores es una gran responsabilidad y nos tomamos calidad, rendimiento y fiabilidad muy en serio. Hacemos importantes inversiones en ingeniería y infraestructura para ayudar a mantener Hotmail y en funcionamiento las 24 horas del día, día a día y en que, año tras año. Rara vez escuchará acerca de estos esfuerzos – usted sólo leerá sobre ellos en las escasas ocasiones en que algo salga mal y nuestro servicio ha tropezado con un problema.

Hotmail es un servicio gigantesco en todas las dimensiones. Éstos son algunos de los aspectos más destacados:

  • Somos un servicio en todo el mundo, entrega las versiones localizadas de Hotmail a 59 de los mercados regionales, en 36 idiomas.
  • Alojar a más de 1300 millones de buzones (algunos usuarios tienen varias bandejas de entrada)
  • Más de 350 millones de personas están usando activamente Hotmail en forma mensual (fuente: comScore, agosto de 2009).
  • Manejamos más de 3 millones de mensajes al día y filtrar mensajes de spam de más de 1.000 millones – correo que nunca ve en su bandeja de entrada.
  • Estamos creciendo de almacenamiento en más de 2 petabytes al mes (un petabyte es gigabytes de 1 millón de ~ o ~ 1000 terabytes).
  • Actualmente tenemos más de 155 petabytes de almacenamiento de información implementado (70 % de almacenamiento de información está ocupado con archivos adjuntos, normalmente fotos).
  • Somos la implementación de SQL Server 2008 más grande del mundo (que supervisar y administrar muchos miles de servidores SQL).

Se puede imaginar que la interfaz de usuario de Hotmail que verá en el navegador es sólo la punta del iceberg, una gran cantidad de innovaciones pasar por debajo de la superficie.En este post voy a dar un descripción de cómo está diseñado el sistema de alto nivel.Vamos a hacer más profundas inmersiones en algunas características específicas en los puestos más tarde.

Arquitectura

Hotmail y nuestros otros servicios de Windows Live se hospedan en múltiples centros de datos de todo el mundo. Nuestro servicio de Hotmail es organizado en lógica “unidades de escala”, o grupos. Además, Hotmail cuenta con infraestructura que se comparte entre los grupos en cada centro de datos:

  • Servidores para controlar el correo entrante y saliente.
  • Spam filtros (hablaremos más sobre correo basura en un futuro blog).
  • Almacenamiento de datos y agregación de nuestra sistemas de seguimiento de la salud de servicio.
  • Infraestructura de respuesta de vigilancia y incidentes.
  • Infraestructura para gestionar la actualización de implementación y configuración de código automatizado.

Un clúster aloja millones de usuarios (cuántos depende de la edad del hardware) y es un conjunto independiente de servidores, incluyendo:

  • Servidores de frontend: servidores que comprobar en busca de virus y host el código que habla con tu navegador o cliente de correo, mediante el uso de protocolos, como POP3 y DeltaSync.
  • Servidores de back-end – SQL y archivo de servidores de almacenamiento, filtros de correo basura, almacenamiento de información de vigilancia – y datos, agentes de directorios y servidores de correo entrante y saliente de manipulación de spam.
  • Equilibradores – de hardware y software que se utiliza para distribuir la carga más uniformemente para un rendimiento más rápido de la carga.

Evitar la pérdida de datos y las interrupciones es nuestra prioridad y tomamos máximo cuidado para evitar que ocurra. Hemos diseñado nuestro servicio para manejar el fallo –our suposición es que cualquier cosa que puede fallar lo hagan finalmente. Tenemos fallas de hardware, con cientos de miles de unidades de disco duro en uso, algunos son abocadas al fracaso. Afortunadamente, debido a los procesos de administración de arquitectura y no tenemos en el lugar, los clientes rara vez experimentar cualquier impacto de estos fracasos.

Aquí son algunas de las maneras que mantenemos fallas figuran:

  • Redundancia – utilizamos una combinación de arreglos de discos de almacenamiento de información de servidor SQL para alojar nuestros datos. Utilizamos tecnologías de failover activo/pasivo. Esto es una manera elegante de decir que tenemos varios servidores y copias de sus datos que constantemente están sincronizados. Si un servidor tiene una falla, otro está listo para asumir en segundos. Todo mantenemos cuatro copias de sus datos en varios discos y servidores para minimizar la posibilidad de pérdida de datos debido a un fallo de hardware.
  • Otro beneficio de esta arquitectura es que podemos realizar mantenimiento planificado(tales como la implementación de versiones de código o parches de seguridad) sin tiempo de inactividad para usted. También se duplican piezas clave de nuestros equipos de red para minimizar la posibilidad de que las interrupciones relacionadas con la red.
  • Monitoreo: tenemos un elaborado sistema de vigilancia de hardware y software.Miles de servidores monitorear el estado de servicio, las transacciones (por ejemplo, enviar un mensaje de correo electrónico) y rendimiento del sistema para clientes de todo el mundo. Dado que somos tan grandes, nos estamos seguimiento de métricas de rendimiento y tiempo de actividad en su conjunto, así como en el nivel de clúster y por la geografía. Queremos para asegurarse de que sus experiencias individuales se reflejan a nosotros, y no perderse si nos fijamos en promedio para todo el sistema.Nos preocupamos por la experiencia de cada usuario único. Hablaremos más acerca del rendimiento y la supervisión en un futuro post.
  • Centro de respuesta: contamos con un equipo de centro de respuesta durante las 24 horas del día que vigila a nuestros sistemas de vigilancia globales y toma medidas inmediatamente cuando hay problema. Tenemos un proceso de escalada que puede involucrar a nuestro personal de ingeniería en pocos minutos cuando sea necesario.

Proceso de ingeniería

He hablado un poco acerca de nuestra arquitectura y los pasos que estamos tomando para que no se interrumpa el servicio. Sin embargo, ningún servicio es estático; además de crecimiento debido al uso, nos expulsar la actualizaciones de forma regular. Por lo tanto, nuestros procesos de ingeniería son tan importantes como nuestra arquitectura para proporcionarle un gran servicio. De parches para actualizaciones menores a versiones principales, tomamos muchas precauciones durante nuestro proceso de desarrollo y puesta en servicio.

Pruebas e implementación – para todos los desarrolladores en nuestro personal tenemos un ingeniero de prueba que trabaja de la mano con él o ella dar entrada en el diseño y especificaciones, configurar una infraestructura de prueba, escribir y automatizar casos de pruebas para las nuevas características y medir la calidad. Cuando hablamos de calidad, nos referimos en la definición más amplia de la palabra: no sólo estabilidad y confiabilidad, sino también la facilidad de uso, rendimiento, seguridad, accesibilidad (para clientes con discapacidades), privacidad, escalabilidad y funcionalidad en todos los navegadores y clientes que apoyamos, en todo el mundo. Dada nuestra escala, no es una hazaña fácil.

Y dado que somos un servicio gratuito financiado en gran parte por la publicidad, tenemos que ser muy eficiente en una base operacional. Por lo tanto la implementación, configuración y mantenimiento de nuestros sistemas son altamente automatizados.Automatización también reduce el riesgo de error humano.

Implementación de código y cambiar administración – tenemos miles de servidores en nuestro laboratorio de pruebas en el que desplegar y probar el código bien antes de enviarlos directo a nuestros clientes. En el centro de datos tenemos algunos grupos reservados para las pruebas de versiones “dogfood” y beta en las últimas etapas de un proyecto. Probamos cada cambio en nuestros laboratorios, ya sea una actualización de código, cambio de hardware o revisión, antes de implementarlo a los clientes.

Después de que todos los equipos de ingeniería han firmado en un comunicado (incluyendo ingeniería de sistemas de pruebas y) empezamos actualizar gradualmente los clústeres en el centro de datos para impulsar los cambios a clientes en todo el mundo.Normalmente lo hacemos durante un período de pocos meses, no sólo porque se necesita tiempo para realizar las actualizaciones sin afectar a los clientes con tiempo de inactividad, sino que también permite ver y asegúrese de que no existe pérdida de calidad y rendimiento.

También nos podemos activar las funciones de encendido o apagado. A veces nos implementar actualizaciones pero aplazar o retrasar convirtiéndolos. En raras ocasiones que hemos convertido temporalmente características fuera, decir por razones de seguridad o rendimiento.

Conclusión

Esto debería comenzar a darle un sentido del tamaño y el alcance de la ingeniería que entra en la entrega y mantenimiento del servicio de Hotmail. Estamos comprometidos con la excelencia de ingeniería y mejoras continuas de nuestros servicios para usted.Seguimos aprender a medida que crece el servicio, y tomamos todos sus comentarios muy en serio, por lo que me debe dejar un comentario con sus pensamientos y preguntas. Soy apasionado sobre nuestros servicios y por lo tanto son todos los miembros del equipo de Windows Live: seamos ingenieros pero utilizamos los servicios de nosotros mismos, junto con cientos de millones de nuestros clientes.

Arthur de Haan
Director, Windows Live prueba e ingeniería de sistema

Fuente: WindowsTeamBlog. A peek behind the scenes at Hotmail

About these ads

Acciones

Information




Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 82 seguidores

%d personas les gusta esto: