Привет, меня зовут Артур де Хаан, и я отвечаю за тестирование и системное проектирование в 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 – мы можем быть инженерами, но мы используем службы сами, наряду с миллионами наших пользователей.
Комментариев нет:
Отправить комментарий