Как-то я писал о том, что не люблю Cloud Driven Development. Это когда разработчик тестирует код в облаке. Написал код, задеплоил, дернул апишку. Она упала. Он смотрит логи, исправляет код, деплоит, дергает апишку. Она снова упала. Он смотрит логи, исправляет… короче, вы поняли. На девятой итерации код работает, и разработчик закрывает задачу.

Беда в том, что это долго и хрупко. Пока бегут тесты и деплой, проходит минут 7-10. Вроде бы это немного, но достаточно, чтобы без конца отвлекаться. Разработчик смотрит ютуб или бегает курить. Формально он работает, но на самом деле большую часть времени ожидает. И конечно, это хрупко. Когда код сломается и ты деплоишь себе, обнаружится, что нужно сделать сто вещей: тут накатить миграции, здесь создать в базе записи, там положить токен и так далее. Это нигде не написано, нужно бегать искать тех, кто знает.

Ирония в том, что последние три месяца я занимаюсь Cloud Driven Development. Пишу код, гружу в облако, дергаю. Смотрю логи, правлю, гружу, дергаю. И так по кругу. Я пытался писать тесты, но обнаружил, что они не отражают действительности. В облаке случается много того, чего не ожидаешь. То сервис отвалится, то файла нет, то внезапно троттлинг. Очень непредсказуемы очереди задач. Параллелится то, что не должно. Не параллелится то, что должно.

Амазон — огромный и непознанный, буквально как другая планета. Там все живет по своим правилам. Нужна ассимиляция по аналогии с переездом в другую страну. Выучи язык, культуру, порядки, тогда с тобой будут иметь дело.

У нас есть служебная страница, где вводишь трассировочный заголовок, и она покажет дерево обращений: от какого сервиса к какому, задержки, тайминги и так далее. Моя задача порождает дерево из 50 тысяч взаимных обращений. В результате страница не работает: либо падает вкладка (клиентский рендер на Кложа-скрипте), либо бекенд: данные не пролазят в лимит 6 мегабайтов (с учетом сжатия).

Теперь я остался без трассировщика. Только логи, только хардкор.

Что со всем этим делать — я не знаю. Видимо, остается только клауд-дривен-девелопить, чтобы в будущем про меня сказали: этот облачный чудак даже тестов не написал.