Pull to refresh

За кулисами Hotmail

Reading time5 min
Views2.4K
Original author: Arthur de Haan
imageПривет, меня зовут Артур де Хаан, и я отвечаю за тестирование и системное проектирование в Windows Live. Я бы хотел дать вам заглянуть за кулисы Hotmail, и рассказать вам больше о том, что необходимо для создания, развертывания и запуска Windows Live Hotmail в таких глобальных масштабах.

Хранение вашей почты и данных (и наших собственных данных) на наших серверах это большая ответственность и мы очень большое внимание уделяем качеству, производительности и надежности. Мы делаем значительные инвестиции в область инженерии и инфраструктуры для того, чтобы Hotmail работал 24 часа в сутки, изо дня в день, из года в год. Вы редко будете слышать об этих усилиях, вы будете слышать о них в тех редких случаях, когда что-то пойдет не так, и наш сервис столкнётся с проблемой.

Hotmail представляет собой гигантскую службу во всех измерениях. Вот некоторые из основных:
  • Наш сервис присутствует по всему миру. Hotmail поставляется на 59 региональных рынка, на 36 языках
  • Мы предоставляем свыше 1.3 миллиарда почтовых ящиков (некоторые пользователи имеют несколько ящиков)
  • Более 350 миллионов людей активно используют Hotmail ежемесячно (по данным comScore, август 2009)
  • Мы обрабатываем свыше 3 миллиардов сообщений в день и фильтруем более 1 миллиарда спамерских писем
  • Объем данных растет на 2 петабайта в месяц
  • В настоящий момент у нас хранится свыше 155 петабайт данных(70% этого объема вложения, обычно фотографии)
  • У нас крупнейшая в мире база данных SQL Server 2008, мы контролируем и управляем многими тысячами Sql серверов

Вы можете представить, что пользовательских интерфейс Hotmail это лишь верхушка айсберга, большинство инноваций происходят внутри и не видны для пользователя. В этой заметке я дам высокоуровневый обзор архитектуры всей системы. Мы сделаем более глубокое погружение в некоторые особенности в последующих постах (от переводчика: если данная статья понравится сообществу, я могу перевести эти последующие посты)

Архитектура


Hotmail и другие сервисы Windows Live размещены в нескольких дата центрах по всему миру. Hotmail организуется в логические масштабируемые элементы – кластеры. Кроме того, у нас есть инфраструктура, которая распределяет нагрузку между кластерами в каждом дата центре:

  • Сервера для обработки входящей и исходящей почты
  • Спам фильтры (от переводчика: если данная статья понравится сообществу, я могу перевести блог пост о спам фильтрах в Hotmail)
  • Хранилище пользовательских данных и данных полученных с наших мониторинговых систем
  • Инфраструктура мониторинга и реагирования на инциденты
  • Инфраструктура для управления автоматизированным развертыванием кода и настройки обновлений


На одном кластере расположено несколько миллионов пользователей (как много зависит от возраста аппаратного обеспечения) и автономный набор серверов, включая:

  • Frontend серверы – серверы, которые проверяют сообщение на наличие вирусов и размещают код, который отвечает за общение с вашим браузером или почтовым клиентом, используя такие протоколы как POP3 и DeltaSync
  • Backend серверы – SQL серверы, файловые серверы, фильтры спама, хранилище данных мониторинга и спам фильтров, каталог агентов и серверов, обработка входящей и исходящей почты
  • Балансировщик нагрузки – аппаратное и программное обеспечение, используемое для равномерного распределения нагрузки для повышения общей производительности.


Предотвращение сбоев в работе и потери данных, является нашим наивысшим приоритетом, и мы принимаем все меры предосторожности, чтобы этого не случилось. Мы спроектировали наш сервис так, чтобы эффективно обрабатывать сбои, учитывая наше предположение о том, что все, что может дать сбой сделает это со временем. Мы сталкиваемся со сбоями в оборудовании, среди сотен тысяч жестких дисков, которые мы используем, находятся те, которые дают сбой. К счастью, из-за особенностей архитектуры и своевременной обработки сбоев, клиенты редко заметят такого рода сбой.

Вот несколько способов предотвращения сбоев:

  • Избыточность – мы используем сочетание массивов хранилищ SQL Server для сохранности ваших данных. Мы пользуемся активной и пассивной отказоустойчивой технологией. Это необычный способ сказать, что у нас есть много серверов и копии ваших данных, которые постоянно синхронизируются. В целом мы храним 4 копии ваших данных на разных дисках и серверах, чтобы минимизировать вероятность потери данных в случае ошибки оборудования.
  • Еще одно преимущество данной архитектуры в том, что мы можем производить плановое обслуживание, такое как развертывание обновлений или исправление безопасности, без простоя.
  • Мониторинг — у нас есть разветвленная система мониторинга программного и аппаратного обеспечения. Тысячи серверов наблюдают за состоянием “здоровья” сервиса, транзакциями, общей производительностью системы. Поскольку наш сервис настолько огромен, мы отслеживаем производительность и uptime в совокупности, а также на уровне кластера и по географическому положению. Мы хотим быть уверены, что ваш персональный опыт вернется назад к нам и не потеряется, когда мы будем смотреть общие показатели системы. Мы заботимся о каждом из пользователей. В будущих постах мы поговорим больше о мониторинге и производительности.
  • Группа реагирования – у нас есть круглосуточная группа реагирования, которая следит за нашей глобальной системой мониторинга и принимает меры всякий раз, когда есть проблема. У нас есть процесс расширения, которым могут заниматься наши инженеры в течение нескольких минут в случае необходимости.


Технологический процесс



Я рассказал немного о нашей архитектуре, и тех шагах, которые мы предпринимаем, чтобы обеспечить бесперебойное обслуживание. Однако наш сервис не статичен; помимо роста за счет использования, мы регулярно вносим обновления. Таким образом, наши технологические процессы также важны, как и архитектура, чтобы обеспечить вас бесперебойной услугой. Мы соблюдаем определенные меры предосторожности при развертывании нового кода, от патчей и небольших обновлений до крупных релизов.

Тестирование и развертывание. Для каждого разработчика у нас есть инженер по тестированию, который работает рука об руку с разработчиком, что бы внести свой вклад разработку и написание спецификаций, создание инфраструктуры тестирования, написание автоматических тестов для проверки новых возможностей, обеспечение качества. Когда мы говорим о качестве, мы говорим не просто о стабильности и надежности, а также о простоте использования, производительности, безопасности, доступности (для пользователей с ограниченными возможностями), конфиденциальности, масштабируемости и функциональности во всех браузерах.

Так как мы являемся бесплатной службой, финансируемой за счет рекламы, мы должны быть высокоэффективными. Поэтому развертывание, настройка и сопровождение наших систем является высоко автоматизированным процессом. Автоматизация также снижает риск человеческой ошибки.

Развертывание кода и изменение управления. У нас тысячи серверов в тестовой лаборатории, где мы развертываем и тестируем код, задолго до того, как он попадет клиенту. В дата центрах у нас так же есть кластеры, специально зарезервированные для тестирования “dogfood” и бета версий на заключительном этапе разработки. Мы проверяем все изменения в наших лабораториях, будь то обновление аппаратного или программного обеспечения, или исправление безопасности.

Когда все инженерные группы подпишут релиз (включая тестеров и инженеров), мы начинаем постепенное развертывание обновлений на кластерах по всему миру. Обычно мы это делаем в течение нескольких месяцев, не только потому, что это занимает много времени, но и чтобы убедится, что это не влияет на качество и производительность службы.

Также мы можем включать или выключать некоторые возможности по-отдельности. Иногда мы развертываем обновления, но откладываем их включение. В редких случаях мы блокируем некоторые возможности по соображениям безопасности или производительности.

Заключение



Этот топик должен дать вам понимание тех масштабов разработки, которые подразумевает развитие Hotmail. Мы посвящаем себя техническому превосходству и непрерывным усовершенствованиям наших служб для вас. Мы продолжаем изучать, как растет служба, и прислушиваемся к вашим отзывам, серьезно, вы можете оставить мне здесь комментарии с вашими мыслями и вопросами. Я страстный поклонник наших сервисов, как и вся команда Windows Live – мы можем быть инженерами, но мы используем службы сами, наряду с миллионами наших пользователей.
Tags:
Hubs:
+18
Comments44

Articles