Когда приложение состоит из одного app.py, жизнь кажется удивительно простой. Открываешь терминал, запускаешь tail -f, смотришь несколько строк логов и довольно быстро понимаешь, что происходит. Ошибка подключения к базе данных выглядит как ошибка подключения к базе данных. Исключение в коде находится ровно в том месте, где его выбросили. Если что-то сломалось, виновник обычно обнаруживается быстрее, чем успевает остыть кофе. Именно поэтому многие инженеры годами живут с ощущением, что логов достаточно для любых задач наблюдаемости.

А потом приложение начинает расти.