Примерно в 2004 году я наблюдал потрясающую катастрофу в IT-системе одного крупного учебного заведения.
Одна сотрудница решила поискать квартиру поблизости и разослать письмо коллегам. Каким-то образом она обнаружила адрес вроде all-employees@org.edu и отправила запрос туда.
Нюанс заключался в том, что этот адрес включал абсолютно всех сотрудников организации. Всех 30 тысяч человек, от генерального директора до рядовых работников.
И каждый получил письмо о том, что какой-то женщине нужна квартира.
Разумеется, началось веселье.
«Почему мне это прислали?»
«Уберите меня из рассылки!»
«Да перестаньте уже отвечать всем!»
И каждый такой возмущённый сотрудник нажимал «Ответить всем». То есть отправлял своё возмущение ещё 30 тысячам человек.
Почта начала заметно тормозить. По ящикам уже разлетелось около полумиллиона писем.
Ошибка айтишников №1: создать общий адрес для всех сотрудников — вполне нормально. Но разрешить писать на него кому угодно — уже не очень. Почтовый сервер должен был проверять отправителя и отвечать неуполномоченным людям отказом.
Впрочем, это ещё не настоящая катастрофа. Люди могли повозмущаться, устать и перестать отвечать.
Но в организации на 30 тысяч человек всегда найдутся сотрудники в отпуске.
Допустим, человек двадцать из них предусмотрительно включили автоответчик: «Меня нет на месте, вернусь в ноябре».
И эти автоответчики отвечали не только отправителю, а сразу всем адресатам письма. Включая общий адрес на 30 тысяч сотрудников.
Теперь каждое новое возмущённое письмо не просто разлеталось в 30 тысяч ящиков. Оно вызывало ещё двадцать автоматических ответов, каждый из которых тоже рассылался 30 тысячам человек.
Итого ещё 600 тысяч писем.
В какой-то момент сообщения о поиске квартиры просто затерялись среди бесконечных уведомлений о том, кто когда вернётся из отпуска.
Но даже это ещё не главная проблема. Теоретически рассылка могла постепенно затихнуть.
Настоящая беда заключалась в том, что почтовые серверы оказались невероятно исполнительными.
Автоответчики отправляли сообщение об отпуске не один раз каждому человеку, а в ответ на КАЖДОЕ входящее письмо.
В том числе на автоматические ответы других автоответчиков.
Представьте: один автоответчик сообщает всем, что сотрудник в отпуске. Второй получает это сообщение и сообщает всем, что другой сотрудник тоже в отпуске. Первый получает ответ второго и снова сообщает всем, что первый сотрудник в отпуске.
Вся почтовая система превратилась в фабрику по размножению сообщений, словно агент Смит из «Матрицы», создающий бесконечные копии самого себя.
Автоответчики старательно информировали об отпусках не только всех сотрудников, но и друг друга.
Почтовые серверы окончательно легли. Всё отключилось.
Организация с 30 тысячами сотрудников осталась без электронной почты примерно на 24 часа.
Но история на этом не заканчивается.
Айтишники героически разгребали миллионы писем, чистили почтовые ящики и отключали автоответчики.
Наконец систему удалось восстановить.
Первым делом IT-отдел решил разослать сотрудникам официальное объяснение произошедшего. Что сломалось, почему и как всё исправили.
И отправил это письмо на адрес all-employees@org.edu.
Ошибка айтишников №2: перед отправкой они отключили почти все автоответчики.
Но как минимум один пропустили.
Если история зашла — подпишитесь, чтобы не пропустить следующую: новые переводы выходят каждый день. Переводы остаются бесплатными, а угостить переводчика кофе можно здесь.