Мнение редакции может не совпадать с мнением автора
В четверг, 29 марта, популярный мессенджер Telegram на три часа вышел из строя в ряде стран Европы, СНГ и Ближнего Востока. Попала в число пострадавших и Россия. Вскоре создатель сервиса Павел Дуров сообщил в своем твиттере, что причина сбоя — отключение питания в одном из дата-центров сервиса. «Любой быстрорастущий сервис будет испытывать болезни роста. К несчастью, Telegram здесь не исключение, хотя мы и стремимся быть таковым», — цитирует газета «Ведомости» личный англоязычный канал Дурова. Почему дата-центры такого крупного сервиса оказываются уязвимы? Можно ли обеспечить стопроцентную защиту от подобных сбоев? От чего вообще зависит надежность работы интернет-мессенджеров? С этими вопросами N + 1 обратился в IXcellerate, компанию — оператора ведущего российского дата-центра, расположенного в Москве. На наши вопросы ответили технический директор IXcellerate Сергей Вышемирский и руководитель департамента ИТ инфраструктуры Lazada Владимир Иванов.
Сегодня речь идет о локальном сбое в работе Telegram, который затронул десятки миллионов пользователей. При этом интернет у всех пользователей работал, а сервисы Telegram были доступны в других частях света. На локальном уровне, в масштабах Европы, причиной такого сбоя может быть физическая неработоспособность кластера серверов — из-за неисправности, отключения питания, перегрева или потери канала связи.
Чтобы понять суть работы дата-центров и причины перебоев в работе онлайн-сервисов, следует представить себе возможные точки отказа, то есть зоны рисков.
Инженерная модель и работоспособность любого центра обработки данных (ЦОД) опирается на «четыре кита»:
Эти «четыре кита» должны быть организованы и обеспечены с определенной гарантией для клиентов. Попробуйте представить себе ЦОД как отель или даже аэропорт для интернета. Так же как невозможно расселить большое количество постояльцев на долгий срок в своей квартире или организовать международный аэропорт на поле в сельской местности, так и невозможно обеспечить надежное хранение объемной IT-инфраструктуры в условиях офисного помещения.
Любой дата-центр дает обязательства клиенту. Он гарантирует, что в год не будет больше такого-то количества минут или часов простоя. В индустрии дата-центров есть собственная градация по «звездам» (как у отелей), только они называются здесь Tier (англ. «уровень»). Чем выше «уровень» дата-центра, тем выше показатель отказоустойчивости, которую он обеспечивает своим клиентам. Если ЦОД соответствует Tier III, то его доступность должна быть на уровне 99,982 процента, или возможный простой в год — не более 1,6 часа.
У дата-центра уровня Tier III уровень резервирования активных компонентов, в том числе электроснабжения, должен быть организован по схеме не ниже N+1, включая резервирование дизельных генераторов и источников бесперебойного питания (ИБП). Это комплексные инженерные системы, которые автоматически задействуются при возникновении нештатных ситуаций.
Возможно, при отключении электроснабжения от города произошел сбой и не запустились резервные источники электроэнергии, что привело к отключению кластера. Telegram логично было бы иметь в наличии резервный дата-центр и, возможно, он даже существует. Но в таком случае у них проблема с балансировкой нагрузки, когда все запросы поступают на основной ЦОД, а не распределяются на несколько.
Компании, у которых IT-инфраструктура должна работать круглосуточно, особенно когда речь идет о сервисе с сотнями миллионов пользователей, обязаны позаботиться о резерве не только основных систем, но и резерве самих серверов. Это решается через размещение серверов в нескольких ЦОДах. Но процесс организации и налаживания системы дублирующих дата-центров очень затратный и комплексный. Если возникает аварийная ситуация, то возможны следующие варианты:
Основные проблемы, из-за которых и происходят «падения» сайтов, возникают из-за человеческого фактора. Невнимательность и некомпетентность могут привести к выходу из строя батарей, незапуску или остановке генераторов и так далее. Поэтому обеспечить абсолютную, 100-процентную защиту от инцидентов невозможно. Само наличие человека в данном уравнении уже вносит определенный риск. Однако практически любую проблему можно предугадать или предупредить, для этого должны проводиться тестирования, тренинги и постоянные проверки и учения всех служб.
Например, в Яндексе учения по выключению одного из дата-центров проходят примерно два раза в месяц, чтобы на практике проверить, как поведет себя система. Все сервисы иногда «падают» — бывает, что кто-то из команды допускает ошибку (например, Яндекс однажды «падал» из-за ошибки сетевого инженера, помноженной на баг в сетевом оборудовании, а Gmail падал из за ошибки SRE). Скорее всего, команда Telegram разберется в причинах сбоя и опубликует так называемый post-mortem report («результаты вскрытия»), в котором раскроет причины падения и другие детали инцидента. Это является общепринятой практикой.