Google дал разъяснения по поводу масштабного сбоя своих сервисов, который в течение 47 минут наблюдался 14 декабря. Проблема заключалась в работе службы аутентификации.
Как следует из сообщения, служба идентификации пользователей Google поддерживает уникальный идентификатор для каждой учетной записи и обрабатывает учетные данные аутентификации для токенов OAuth и файлов cookie. Она хранит данные учетной записи в распределенной базе данных, которая использует протоколы Paxos для координации обновлений. В целях безопасности эта служба отклоняет запросы при обнаружении устаревших данных.
Google использует постоянно обновляемый набор инструментов автоматизации для управления квотами различных ресурсов, выделяемых для служб. В октябре службу User ID Service начали переводить на новую систему квот, но с частичным сохранением прежней системы. Тогда возник первый сбой. Дело в том, что в системе присутствуют старые компоненты, которые ошибочно использовались при отправке запросов, а затем возвращались с ошибкой «о нулевом использовании».
Когда льготный период для принудительного применения новых квот истек, возник новый, более масштабный сбой. Существующая система проверки безопасности не выявила, что старая система выдавала сценарий нулевой заявленной нагрузки. В итоге это привело к изменению квоты для большого количества пользователей, снижению квоты ниже уровня использования, поскольку заявленное было ошибочно указано как ноль, чрезмерное сокращение квоты для систем хранения.
Масштабы проблемы стали очевидны сразу после вступления в силу действия новых квот. Начали поступать автоматические предупреждения о пределах емкости хранилищ и об ошибках службы User ID. Примененные исправления привели к отключению принудительного использования квоты в центрах обработки данных.
Google еще раз извинился перед своими пользователями и пообещал улучшить производительность и доступность платформы. В частности, автоматизация управления квотами будет проверяться, чтобы предотвратить быстрое внедрение глобальных изменений. Мониторинг и оповещения улучшатся для оперативного выявления неправильных конфигураций. Базу данных службы User ID сделают более устойчивой к сбоям записи, равно как и повысят устойчивость сервисов GCP.