Аналитика Telegram-канала
Подписчики
1 049
Охват за 24 ч
103
ER за 24 ч
9,82%
Публикаций
648
Динамика подписчиков
7 дней
30 дней
6 месяцев
Больше
28 окт31 окт3 ноя
Показаны последние 7 дней
Больше истории →
Охваты публикаций
31.1002.11
20
Средний охват
24
Лучший результат
Показаны 2 публикации — последние в канале
Больше статистики →
Упоминания
29
Упоминаний
26
Из них репостов
12
Каналов
23
Упоминаний
5
Из них репостов
12
Каналов
Последние посты
2 из 648 2 из 648
43 лишние секунды, которые стоили целой лунной станции
Невыдуманные истории. Эпизод № 2: «Луна-25»
В космосе катастрофы происходят беззвучно...
19 августа 2023 года.
Российская автоматическая станция «Луна-25» уже преодолела сотни тысяч километров, добралась до Луны и готовилась к одному из самых ответственных этапов своей миссии - переходу на предпосадочную орбиту.
Все должно было решиться за 84 секунды.
Двигатель включился.
Прошло 84 секунды.
Но он не выключился.
Работал дальше.
И дальше.
Остановился только на 127-й секунде.
Казалось бы, каких-то 43 лишних секунды. В обычной жизни за это время едва успеешь налить себе кофе. В космосе их оказалось достаточно, чтобы потерять целую станцию. Пупупу...
Что произошло с бортовой системой?
Бортовая система управления должна вычислить необходимое изменение скорости по данным измерительных приборов и в нужный момент отдать команду на отключение двигателя. А она получала нули 🤡
По предварительным выводам Роскосмоса, в приборе БИУС-Л не включился блок акселерометров. Двигатель продолжал работать, а система управления не могла определить, что необходимое изменение скорости уже достигнуто. Команда на отключение по расчетному изменению скорости так и не была сформирована. В итоге двигатель выключился по временной уставке.
127 секунд вместо 84...
Почему не включились акселерометры?
Представьте систему, в которой команды имеют разные приоритеты исполнения. Но что произойдет, если несколько команд с разными приоритетами окажутся в одном массиве данных? По опубликованной Роскосмосом версии, именно такая ситуация могла стать наиболее вероятной причиной сбоя.
Распределение команд по массивам носило вероятностный характер. Иными словами, ошибка могла проявляться не всегда. Сегодня определенная последовательность команд отрабатывает корректно. Завтра - та же операция при другом распределении команд приводит к нештатному результату.
Для разработчиков embedded-систем и тестировщиков это особенно неприятный сценарий. А потом она проявляется именно тогда, когда права на ошибку уже нет.
Чем все закончилось?
Дополнительные секунды работы двигателя изменили траекторию станции. Вместо запланированной предпосадочной орбиты «Луна-25» оказалась на нерасчетной незамкнутой траектории. Аппарат столкнулся с поверхностью Луны. Миссия, к которой готовились годами, закончилась ещё до мягкой посадки. Никаких хакеров. Никакого злого умысла. Никакой мистики.
Чему она может научить инженеров?
1. Проверяйте не только штатные сценарии. Команды с разными приоритетами и их сочетания могут приводить к неожиданным результатам.
2. Не доверяйте всему безоговорочно. Отсутствие данных от датчика и реальное нулевое измерение - не одно и то же. Проверяйте, как система реагирует на подобные ситуации.
3. Всегда тестируйте защитные механизмы. Что произойдет, если основной алгоритм не сможет завершить операцию? Как сработает резервное условие отключения?
4. Моделируйте редкие сбои. Fault injection, нестандартные последовательности команд и стресс-тестирование критического ПО помогают выявлять проблемы, которые легко пропустить в штатных условиях.
Самое страшное в этой истории даже не столкновение с Луной. А то, насколько незаметным может быть начало катастрофы. Иногда она начинается не со взрыва, не с красного экрана и даже не с сообщения об ошибке. Иногда она начинается с нуля в данных, который система не смогла правильно обработать.
🔥 А до 11 ноября включительно на все курсы действует скидка 30% по промокоду BOO30
Учитесь на чужих ошибках — это гораздо дешевле, чем на своих.
➡️Выбрать курс со скидкой -30%
ещё
24
1
3 2 ноя, 16:08
👻 45 минут. Минус $460 миллионов. И ни одного хакера.
Эпизод № 1: Релиз, который стоил почти полмиллиарда долларов.
1 августа 2012 года в американской компании Knight Capital произошёл один из самых дорогостоящих программных сбоев в истории биржевой торговли. Всё началось с обновления торговой системы.
Компания готовилась к запуску новой функциональности для Нью-Йоркской фондовой биржи. Инженерам необходимо было обновить систему маршрутизации заявок SMARS, работавшую на восьми серверах.
Но новый код попал только на семь из восьми серверов. В системе оставался старый алгоритм Power Peg, который перестали использовать ещё в 2003 году. При разработке новой функциональности инженеры повторно использовали управляющий флаг, который раньше запускал Power Peg. На семи обновлённых серверах этот флаг активировал новую логику. А на восьмом, где остался старый код, - запустил давно забытый алгоритм.
Но это была вершина айсберга.
Ещё в 2005 году разработчики изменили расположение функции, которая отслеживала количество исполненных акций по заявке. После этого старый Power Peg не протестировали повторно. В результате при его случайной активации система перестала корректно контролировать, когда нужно прекратить отправку заявок.
Представьте:
Клиент отправляет заявку на покупку акций. Система разбивает её на небольшие дочерние заявки и направляет их на биржу. Заявка исполнена. Другая часть торговой платформы это уже знает. Но SMARS не получает необходимую информацию. Алгоритм продолжает отправлять заявки. И снова. И снова. ☠️
Ну и на десерт.
Ещё до открытия торгов внутренняя система Knight Capital отправила сотрудникам 97 автоматических писем с сообщением Power Peg disabled. Но эти письма не были настроены как критические оповещения, а сотрудники обычно не проверяли их в режиме реального времени. Проблему не обнаружили до открытия биржи. огда торги начались, ситуация быстро вышла из-под контроля.
Всего за 45 минут:
- 212 исходных клиентских заявок привели к отправке миллионов дочерних заявок.
- Произошло более 4 миллионов исполнений сделок.
- Общий объём сделок превысил 397 миллионов акций.
- Убыток компании составил более $460 миллионов.
Инженеры пытались исправить ситуацию прямо во время торгов. В какой-то момент они удалили новое обновление с семи исправно работавших серверов. Но попытка отката только усугубила проблему. Теперь старый алгоритм Power Peg мог активироваться и на этих серверах.
🎃 Страшно? А ведь это невыдуманная история!
Ни хакерской атаки, ни мистики. Просто цепочка инженерных ошибок: неполный деплой, забытый legacy-код, отсутствие достаточных проверок, неэффективный мониторинг и неудачный rollback. Прочитать полное расследование можно тут
В честь Хэллоуина мы запускаем серию «Невыдуманные истории» - о реальных IT-катастрофах, технических провалах и инженерных решениях, которые обошлись компаниям в миллионы.
Новые истории будут выходить через день до 11 ноября включительно. 👻
🔥 Скидка 30% на все курсы и тренажёры по промокоду BOO30 действует до 11 ноября включительно.
Учитесь на чужих ошибках — это гораздо дешевле, чем на своих 😉️️️️️️
➡️Выбрать курс со скидкой 30%
ещё
16
1
1 31 окт, 13:41
Продолжить анализ этого канала
- История роста подписчиков
- Просмотры и охваты публикаций
- Кто упоминает канал и кого упоминает он
- Похожие каналы и подбор для рекламы
Открыть аналитику
Демо до 14 дней