Сергей Кузнецов

Редактор

Почему падают интернет-сервисы

В четверг, 29 марта, популярный мессенджер Telegram на три часа вышел из строя в ряде стран Европы, СНГ и Ближнего Востока. Попала в число пострадавших и Россия. Вскоре создатель сервиса Павел Дуров сообщил в своем твиттере, что причина сбоя — отключение питания в одном из дата-центров сервиса. «Любой быстрорастущий сервис будет испытывать болезни роста. К несчастью, Telegram здесь не исключение, хотя мы и стремимся быть таковым», — цитирует газета «Ведомости» личный англоязычный канал Дурова. Почему дата-центры такого крупного сервиса оказываются уязвимы? Можно ли обеспечить стопроцентную защиту от подобных сбоев? От чего вообще зависит надежность работы интернет-мессенджеров? С этими вопросами N + 1 обратился в IXcellerate, компанию — оператора ведущего российского дата-центра, расположенного в Москве. На наши вопросы ответили технический директор IXcellerate Сергей Вышемирский и руководитель департамента ИТ инфраструктуры Lazada Владимир Иванов.

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

Чтобы понять суть работы дата-центров и причины перебоев в работе онлайн-сервисов, следует представить себе возможные точки отказа, то есть зоны рисков.

Инженерная модель и работоспособность любого центра обработки данных (ЦОД) опирается на «четыре кита»:

  • обеспечение необходимых мощностей электроэнергией с организацией резерва;
  • обязательный климат-контроль в машинных залах (охлаждение оборудования);
  • коннективность — наличие нескольких каналов связи от разных операторов;
  • система пожарной и физической безопасности.

Эти «четыре кита» должны быть организованы и обеспечены с определенной гарантией для клиентов. Попробуйте представить себе ЦОД как отель или даже аэропорт для интернета. Так же как невозможно расселить большое количество постояльцев на долгий срок в своей квартире или организовать международный аэропорт на поле в сельской местности, так и невозможно обеспечить надежное хранение объемной IT-инфраструктуры в условиях офисного помещения. 

Любой дата-центр дает обязательства клиенту. Он гарантирует, что в год не будет больше такого-то количества минут или часов простоя. В индустрии дата-центров есть собственная градация по «звездам» (как у отелей), только они называются здесь Tier (англ. «уровень»). Чем выше «уровень» дата-центра, тем выше показатель отказоустойчивости, которую он обеспечивает своим клиентам. Если ЦОД соответствует Tier III, то его доступность должна быть на уровне 99,982 процента, или возможный простой в год — не более 1,6 часа.

У дата-центра уровня Tier III уровень резервирования активных компонентов, в том числе электроснабжения, должен быть организован по схеме не ниже N+1, включая резервирование дизельных генераторов и источников бесперебойного питания (ИБП). Это комплексные инженерные системы, которые автоматически задействуются при возникновении нештатных ситуаций.

Возможно, при отключении электроснабжения от города произошел сбой и не запустились резервные источники электроэнергии, что привело к отключению кластера. Telegram логично было бы иметь в наличии резервный дата-центр и, возможно, он даже существует. Но в таком случае у них проблема с балансировкой нагрузки, когда все запросы поступают на основной ЦОД, а не распределяются на несколько.

Компании, у которых IT-инфраструктура должна работать круглосуточно, особенно когда речь идет о сервисе с сотнями миллионов пользователей, обязаны позаботиться о резерве не только основных систем, но и резерве самих серверов. Это решается через размещение серверов в нескольких ЦОДах. Но процесс организации и налаживания системы дублирующих дата-центров очень затратный и комплексный. Если возникает аварийная ситуация, то возможны следующие варианты:

  • при наличии резервного ЦОДа для репликации данных между ЦОДами должен существовать специальный канал со скоростью не менее гигабита в секунду. В случае «падения» основного дата-центра дублирующее «зеркало» может не «подхватить» нагрузку, это зависит от распределения и балансировки нагрузки между ними;
  • сервера у Telegram, скорее всего, не виртуализированные. Следовательно, отключение питания и последующий сбой, вероятнее всего, связаны с проблемой запуска всей системы, которая попросту не справляется со слишком большим количеством запросов.

Основные проблемы, из-за которых и происходят «падения» сайтов, возникают из-за человеческого фактора. Невнимательность и некомпетентность могут привести к выходу из строя батарей, незапуску или остановке генераторов и так далее. Поэтому обеспечить абсолютную, 100-процентную защиту от инцидентов невозможно. Само наличие человека в данном уравнении уже вносит определенный риск. Однако практически любую проблему можно предугадать или предупредить, для этого должны проводиться тестирования, тренинги и постоянные проверки и учения всех служб.

Например, в Яндексе учения по выключению одного из дата-центров проходят примерно два раза в месяц, чтобы на практике проверить, как поведет себя система. Все сервисы иногда «падают» — бывает, что кто-то из команды допускает ошибку (например, Яндекс однажды «падал» из-за ошибки сетевого инженера, помноженной на баг в сетевом оборудовании, а Gmail падал из за ошибки SRE). Скорее всего, команда Telegram разберется в причинах сбоя и опубликует так называемый post-mortem report («результаты вскрытия»), в котором раскроет причины падения и другие детали инцидента. Это является общепринятой практикой.

Ранее в этом блоге

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.