docs(architecture): операторские разделы README переехали в справочники
Зачем: README служил складом для двух зон без своих справочников — «службы и доступ» и «мир и его пульт». Раскладка принята резолюцией #211: README остается лицом, устройство живет в docs/architecture/. Что: новые docs/architecture/stand.md («Стенд: службы, доступ, настройка», доводы — ADR 0001 и 0007) и docs/architecture/world.md («Мир и его пульт», доводы — ADR 0009 и 0013). Доводы смоука и описания целей make слиты в testing.md без повторов: фраза о check_containers_survived и абзац про config-test умерли как дубли. На месте каждого переехавшего раздела README — абзац со ссылкой, адреса и пароли интерфейсов остались. Путеводитель и README генератора ссылаются на world.md вместо якорей README. Переехавший текст не правился, только относительные ссылки. Проверка: скрипт ссылок из тикета — пустой вывод; make config-test — ЗЕЛЁНО; подиффовая сверка переехавших диапазонов с README@2588515 — без расхождений (слепое ревью); в новой прозе нет «ё». Closes #212 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014QBCtU38qSHg5DvgtnKXcW
This commit is contained in:
1 parent
2588515b9a
commit
bad5981904
6 files changed
+346
-295
No files matched your search
@@ -76,6 +76,15 @@
|
||||
Airflow. В цену целей она не входит. На готовом мире подъём больше не
|
||||
пересчитывает данные: `world_initialize` зеленеет без изменений.
|
||||
|
||||
`make up` собирает локальные образы Airflow, Superset и Grafana, поднимает весь
|
||||
стенд и ждёт здорового состояния долгоживущих контейнеров. В образ Airflow
|
||||
добавлены закреплённые клиенты ClickHouse и Kafka. Одноразовые `airflow-init` и
|
||||
`superset-init` завершаются с кодом 0. Первый обновляет схему Airflow,
|
||||
подготавливает администратора и два подключения к `clickhouse-01`. Второй
|
||||
обновляет Superset, создаёт администратора и импортирует подключение к
|
||||
`clickhouse-02`. На ноутбуке в режиме энергосбережения приёмочный подъём с
|
||||
пустых томов занял около десяти минут, повторный на живом стенде — около трёх.
|
||||
|
||||
`make rebuild-storage` тоже не проверка. Команда через Airflow удаляет
|
||||
прикладные базы ClickHouse, топики и позиции групп Kafka, заново применяет DDL,
|
||||
заливает стартовый мир и возвращает его пульт к концу стартовых дней. Службы и
|
||||
@@ -237,6 +246,45 @@ Kafka → STG → ODS, и живёт он в `make check-clickhouse`.
|
||||
скриптов нет. Отдельной проверкой этот вход тоже не считается: то же самое
|
||||
утверждает смоук.
|
||||
|
||||
### Что спрашивает смоук
|
||||
|
||||
`make smoke` за секунды спрашивает, собран ли стенд: зависимости машины,
|
||||
здоровье контейнеров, устройство keeper, ответ Kafka с машины через отображённый
|
||||
порт, четыре цели Prometheus, два источника Grafana, компоненты Airflow и
|
||||
подготовленное подключение к `clickhouse-01`.
|
||||
|
||||
Двенадцать проверок здоровья сразу после `make up --wait` повторяют то, чего
|
||||
Compose уже дождался: у каждой долгоживущей службы есть своя `healthcheck`.
|
||||
Оставлены они потому, что первый вопрос к стенду всё равно «всё ли живо», а
|
||||
ответ на него стоит меньше секунды. Устройство keeper — другое дело: он должен
|
||||
работать от пользователя `clickhouse`, с пределом в 262144 открытых файла и со
|
||||
своим томом под данные. Всё это объявлено в `compose.yaml`, но здоровым keeper
|
||||
выглядит и без этого, поэтому смоук спрашивает у живого контейнера, дошли ли
|
||||
объявленные настройки до процесса.
|
||||
|
||||
Kafka по той же причине спрашивают снаружи. Её `healthcheck` обращается к
|
||||
брокеру изнутри контейнера и по внутреннему слушателю, поэтому здоровой Kafka
|
||||
остаётся и тогда, когда объявленный наружу адрес ведёт не туда. Клиент с машины
|
||||
в этом случае подключается, получает метаданные и молча виснет на адресе,
|
||||
которого с его стороны не существует. Смоук идёт тем же путём, что и будущий
|
||||
генератор: стучится в отображённый порт и просит список топиков.
|
||||
|
||||
### Что спрашивают глубокие проверки
|
||||
|
||||
`make check-services` проверяет то, ради чего приходится ждать службу: работу с
|
||||
топиком Kafka с машины — создан, найден, удалён, — ручной запуск пробников
|
||||
`test_clickhouse` и `test_kafka`, вход в Superset, его метаданные и подключение
|
||||
к `clickhouse-02`. Первый пробник создаёт таблицы на обеих нодах и читает через
|
||||
`Distributed` на ноде 2 строку из локальной таблицы ноды 1. Второй пишет в Kafka
|
||||
и читает свой маркер. Временный топик проверки с машины и запуски DAG удаляются;
|
||||
постоянный топик пробника сохраняется, а старые записи чистит Kafka.
|
||||
|
||||
`make check-clickhouse` запускает отдельную глубокую проверку ClickHouse:
|
||||
описание кластера, макросы, связь с keeper, `ReplicatedMergeTree`,
|
||||
`Distributed`, очередь распределённых DDL и очистку временных таблиц. Девятая
|
||||
из десяти проверок спрашивает словарь товаров на обеих нодах. Последняя —
|
||||
подневный счёт событий против описи, о нем сказано выше.
|
||||
|
||||
## Что проверено
|
||||
|
||||
**Калибровка заказной стороны 30 августа 2026 года при исполнении #194.**
|
||||
|
||||
Reference in new issue
Block a user