19
Софт, который чинит себя
Пока вы читаете эту строчку, ваше сердце подстроило ритм под то, что вы сидите, зрачки подстроились под лампу, а почки отфильтровали очередную порцию крови, и ни одно из этих решений не потревожило ваше сознание. Вегетативная нервная система работает всю жизнь без выходных и беспокоит хозяина только тогда, когда сама не справляется: тогда он чувствует боль, жажду или страх и начинает что-то делать.
В 2001 году руководитель исследований IBM Пол Хорн предложил строить компьютерные системы так же и позаимствовал для этого у физиологов само слово: autonomic computing, самоуправляемые вычисления. Системы должны были сами себя настраивать, защищать и лечить. Следующие двадцать лет компьютеры действительно научились многому, включая умение перезагрузиться после падения, и почти ничему сверх этого. Чтобы найти в коде ошибку, из-за которой сервер упал, и исправить её, код надо понимать, а понимали его только люди, которых для этого будили посреди ночи.
Если вспомнить метод Резника из первой главы, становится видно, чего здесь не хватало. Отбор у серверов был давно: мониторинг видел, что что-то сломалось, тесты могли сказать, починилось ли. Не было генератора, который способен предложить хоть какой-нибудь вариант исправления для ошибки, которую никто заранее не описывал.
Первыми его сделали в Facebook. В 2018 году там работала система Sapienz, которая без устали тыкала в мобильные приложения компании и искала, от каких действий они падают. К ней пристроили вторую, SapFix: получив сообщение о падении, она сама сочиняла заплатку, сама проверяла, что падение ушло и ничего не сломалось, и клала готовое исправление на стол инженеру. Сочиняла она ещё по-простому, по шаблонам и мелкими правками чужого кода, но за девяностодневный пробный период предложила 165 заплаток для 57 падений, и от обнаружения падения до готового исправления проходило в среднем 69 минут. Это была первая ночная смена обезьяны Резника: она печатала варианты, а тесты решали, какой из них выпустить в мир.
После входа
Дальше книга открыта для тех, кто вошёл
Войдите через INITE или заведите аккаунт. Это займёт минуту, и книга откроется прямо здесь.