Почему происходят сбои в соцсетях?
Недавний шестичасовой сбой в работе Facebook, Instagram и WhatsApp по всему миру напугал пользователей — в некоторых странах интернет считается синонимом этих сервисов.
Это заставило задуматься: почему настолько крупные площадки могут допустить такие продолжительные неполадки.
Что может сломаться?
Самое простое — технические неполадки с оборудованием. Соцсеть — это дата-центры, то есть физические объекты. Представляют собой большие промышленные ангары с серверами, на которых все работает. Если дата-центр вывести из строя — например, его могут отключить от электричества, там могут сломаться системы кабелей, системы охлаждения, — то он отключается от мира. У каждой соцсети несколько дата-центров. Функции того, что вышел из строя, подхватывают другие.
Второе — программный сбой. Здесь больше вариантов. Оттолкнемся от недавнего инцидента с Facebook. В официальном сообщении руководство Facebook объясняет, что проблемы возникли после неудачного изменения конфигурации, которое привело к сбою в работе DNS-маршрутизаторов, координирующих сетевой трафик. Что это значит?
Интернет — это набор сетей, связанных друг с другом. Существуют протоколы, которые позволяют устройствам понять, как правильно отправить информацию из одной части сети в другую, например, со смартфона пользователя на сервер сайта, куда он собирается зайти. К примеру, протокол BGP (Border Gateway Protocol, протокол пограничного шлюза), по стандартам которого обмениваются информацией маршрутизаторы. У больших маршрутизаторов, благодаря которым работает интернет, есть постоянно обновляемые списки возможных маршрутов, используемых для доставки каждого сигнала от пользователя до мест их назначения. Без BGP маршрутизаторы не знают, что делать, и интернет просто не будет работать.
Первый в этой цепочке — пользователь с устройством. Когда он пытается зайти на какой-либо сайт — не важно, через браузер или приложение, — он отправляет сигнал. Этот сигнал идет на распределяющий сервер провайдера — один из следующих этапов в цепочке. Этот сервер определяет, какой сайт запрашивает устройство, ищет его в своей базе и переправляет туда сигнал. В последнем инциденте с Facebook неполадки произошли на этом этапе — сервер провайдера потерял из виду Facebook, WhatsApp и Instagram. Третье — неполадки могут возникнуть уже непосредственно на сайте.
Какие неполадки?
На следующем этапе сигнал приходит на сервер сайта, который уже внутри распределяет их. То, как устроена архитектура площадки, тоже имеет значение. Есть два варианта: микросервисная архитектура и монолит. Сегодня многие современные соцсети построены на микросервисной архитектуре — взаимодействии небольших, слабо связанных и легко изменяемых модулей — микросервисов. Такое устройство сайтов получило распространение в середине 2010-х годов. Каждый микросервис отвечает за маленькую часть сайта, например, один — за вкладку с сообщениями, другой — за ленту новостей и так далее. В таком варианте удобнее устранять неполадки: нужно починить один маленький кусочек вместо целого сайта, поломка одного не будет влечь за собой поломку всех остальных.
Крупные соцсети, которые появились давно, изначально были устроены иначе — их архитектуру можно сравнить с монолитом. Одна большая часть отвечает за несколько разных функций. Если ломается монолит — перестают работать все сервисы, привязанные к нему. Монолит — это как фишки домино, которые стоят друг за другом, и если падает любая фишка — падают по цепочке все. А микросервисы — как музыканты в оркестре: если перестает играть один, то это все еще может дать возможность произведению состояться, потому что другие его аккуратно поддержат и кто-то даже может подменить.
Почему сбои такие долгие?
Технические сбои в работе сайтов случаются почти каждый день, но мы это редко замечаем. Пример: какой-то сайт работает медленнее чем обычно. Или перестает работать одна функция, например, не загружаются фотографии. Чаще неполадки устраняют за несколько минут. Несколько раз в год происходят сбои, когда какие-либо популярные сервисы не работают в пределах одного-двух часов. Сбой в Facebook оказался одним из самых долгих в истории интернета. Почему такая крупная соцсеть допустила такой продолжительный простой? В большинстве случаев неполадки можно устранить удаленно и на уровне программного обеспечения. Но некоторые крупные сбои требуют перезапуска оборудования в дата-центрах. Поскольку оно не предназначено для включения/выключения и в таких процессах должны соблюдаться нормы безопасности в больших масштабах, это может происходить долго. В случае с шестичасовым сбоем в работе сервисов Facebook так и было — инженерам компании потребовалось попасть в центры обработки данных, решить проблему и перезапустить систему.
Может ли популярная соцсеть сломаться навсегда?
В любом случае у каждой платформы всегда есть возможность откатиться назад на предыдущую версию. На уровне дата-центров — вряд ли, но в случае не зависящих от людей причин в виде, например, природных катастроф, сбой может длиться довольно продолжительное время.