Данат Кузьменко
ML-сервис
← все проекты

Инфраструктура

Состояние проектов

Все проекты живут на одной машине, и любой из них может слечь незаметно. Здесь видно, что отвечает прямо сейчас — и как быстро.

Читаю снимок состояния…

Зачем эта страница

Zoo-Land пролежал с ошибкой 500 неизвестно сколько времени и нашёлся случайно — при обходе сайтов глазами по другой задаче. По кодам ответа страница выглядела целой, потому что никто их не смотрел. После этого появился deploy/check.sh: двадцать адресов за один прогон. Эта страница — его продолжение, чтобы результат был виден не только в терминале.

Почему это снимок, а не монитор

Опрашивать демо-сайты прямо из браузера не получится: запросы кросс-доменные, и CORS у них закрыт — первая попытка сделать страницу живой дала «Failed to fetch» на все адреса. Проверяет curl, результат сохраняется в status.json рядом с сайтом, страница его читает. Настоящий монитор — это служба с расписанием и историей; её здесь нет, и выдавать снимок за неё нечестно.

Откуда берётся версия

Только из того, что сайт объявляет о себе сам — тега <meta name="generator">. Пять WordPress-сайтов из шести его отдают; тема Melanj этот тег убирает, а Laravel, Angular, React и FastAPI своей версии наружу не сообщают вовсе. В таких строках стоит «не сообщает»: подставить версию из своих записей означало бы показывать не проверенное, а запомненное.

Что означает время ответа

Полное время запроса из Казахстана до сервера во Франкфурте, включая установку TLS-соединения, — а не время работы PHP. Отсюда секунда с лишним даже у статической страницы. WordPress-сайты медленнее не из-за тем: у всех шести общий MariaDB и общий PHP-FPM на двух ядрах ARM.