18.08.2022

Один разработчик чуть не сломал интернет. Почему веб такой хрупкий?

Большие сервисы часто зависимы от открытого ПО. Но иногда система даёт сбой. Недавно автор популярных бесплатных библиотек сознательно их испортил. Это привело к проблемам в работе всемирной паутины.

Почему веб такой хрупкий?

С чего всё началось

Разработчик под ником Marak выложил в общий доступ десятки библиотек. Особенно популярными оказались colors.js и faker.js. Первая добавляет в консоль отображение цветных символов, вторая генерирует случайные данные для тестирования софта. Сейчас colors.js загружают 23,1 млн раз в неделю, faker.js — 2,4 млн раз. Фрагменты плагинов используются в крупных IT-системах вроде Amazon Cloud Development Kit, без которой сложно представить современный онлайн.

8 января 2022 года Marak обновил библиотеки: они начали выводить в консоли слово LIBERTY и бессмысленный набор нечитабельных символов. Судя по всему, автор сделал это специально: ещё в ноябре 2020-го он писал, что больше «не собирается поддерживать компании из списка Fortune 500 своим бесплатным трудом». Сейчас все изменения отменены — видимо, с программистом удалось договориться.

Почему веб такой хрупкий?

Были и другие случаи

Почему сбой в одной библиотеке сказывается на общей работе известных интернет-сервисов? Среди разработчиков на языке JavaScript стандартом стал менеджер пакетов NPM. В нём хранятся массивы открытого кода с прописанными зависимостями.

Например, если программисту нужен плагин A, который задействует фрагменты плагинов B и C, менеджер пакетов загрузит их в одну команду. Эта система функционирует, пока не исчезнет одна из зависимых библиотек. Недавно нечто подобное случилось с пакетом kik.

Одноимённый мессенджер владеет товарным знаком Kik, поэтому автора библиотеки попросили сменить название проекта. Договориться не удалось, представители мессенджера потребовали у NPM удалить библиотеку из каталога. После этого программисты начали получать сообщения об ошибке. Проблема оказалась настолько серьёзной, что не было возможности обновлять большие приложения и сервисы. В итоге пришлось вернуть спорную библиотеку.

Почему веб такой хрупкий?

Интернет не такой надёжный, как кажется

Вырисовывается следующая ситуация: высоконагруженные веб-сервисы вроде Facebook и Google зависят от малоизвестных строк кода, написанных другими специалистами. Это удобно для разработчиков: не нужно создавать заново простые функции, которые уже опубликованы другими. Но стоит случиться тому, что произошло с colors.js или kik, — и вся пирамида рушится.

Поделиться ссылкой: