feat(tandemmebel): cutover LIVE on VDS — last snolla site migrated
DNS reg.ru flipped, traefik Host-rule staging->prod, LE cert issued. Live-smoke GREEN: all pages 200, sitemap 184 locs, sharp media OK. Gotham-Pro.css latent prod bug fixed by cutover (0B->4436B). Snolla 0.42.x tirazh now fully alive (5/5 stacks on VDS).
This commit is contained in:
@@ -1,54 +1,48 @@
|
||||
---
|
||||
_last_updated_: 2026-07-05T11:45:00Z
|
||||
session_id: 2026-07-05-snolla-tirazh-mem-limits
|
||||
_last_updated_: 2026-07-12T00:00:00Z
|
||||
session_id: 2026-07-12-tandemmebel-cutover-live
|
||||
---
|
||||
|
||||
# Next session handoff
|
||||
|
||||
## Итог сессии: метрики тиража snolla + mem_limit 512m всем 5 стекам
|
||||
## Итог сессии: tandemmebel.ru cutover → LIVE на VDS (тираж snolla 0.42.x закрыт полностью)
|
||||
|
||||
Начали со съёма health-метрик тиража (user: «не распухает ли память, не жрут ли ЦПУ»). Вывод: все snolla-сайты здоровы — CPU ~0.5% одного ядра в среднем, RAM 100–206 MB, нет reclaim-трэша / OOM-давления. На машину (13 GiB, 6 vCPU) влияние в пределах шума; главный едок RAM на боксе — `mssql` (2.1 GB).
|
||||
Финальный сайт тиража. Владелец флипанул DNS reg.ru → собрал контекст по вики/борду/рунбуку → cutover. Порядок из `snolla-live-prod-inplace-image-bump` / `[tandemmebel-web-vds-deploy]` соблюдён строго (LE-критичность):
|
||||
|
||||
**Нашёл дыру:** ни один snolla-стек не нёс `mem_limit` → cgroup-cap = вся память хоста (12.9 GiB). Течь в любом контейнере могла съесть весь бокс. По просьбе user'а выставил **`mem_limit: 512m`** всем пяти (env-preserving Portainer PUT, секреты вернул verbatim) + синхронизировал source-of-truth compose в репо.
|
||||
1. **Verify авторит.NS** — `nslookup tandemmebel.ru ns1/ns2.reg.ru` = оба `89.253.255.94` (apex + www), не только резолвер.
|
||||
2. **GET стек 20** — образ `tandemmebel:ed96b18` (0.42.0), env 8/8, rule staging `Host(tandemmebel.vds.kzntsv.site)`.
|
||||
3. **PUT стек 20** — `Host(tandemmebel.ru) || Host(www.tandemmebel.ru)`, env-preserving (name+value), `prune:false`, `pullImage:false`. Python urllib UTF-8 (НЕ PS Invoke-RestMethod — gotcha кириллицы). → 200.
|
||||
4. **Poll** — контейнер `healthy`, LE-серт issued on first hit: CN=tandemmebel.ru, SAN оба, issuer YR2, until 2026-10-10.
|
||||
5. **Live-smoke С VDS** — GREEN (см. STATUS top-line).
|
||||
6. Compose source-of-truth + борд обновлены.
|
||||
|
||||
| Стек | Id | limit | статус |
|
||||
|---|---|---|---|
|
||||
| labtools.ru | 17 | 512 MiB ✓ | healthy |
|
||||
| emspb | 18 | 512 MiB ✓ | healthy |
|
||||
| labtools.pro | 19 | 512 MiB ✓ | healthy (200 внешним smoke) |
|
||||
| tandemmebel | 20 | 512 MiB ✓ | healthy (ещё staging-хост) |
|
||||
| kupimknigi | 21 | 512 MiB ✓ | healthy |
|
||||
**Решение оператора:** бамп до 0.42.1 НЕ делаем — катим 0.42.0 как есть, без пересборки (образ уже стоял). Версии тиража разъехались: kupimknigi (21) + tandemmebel (20) на 0.42.0, три остальных на 0.42.1 (order-фикс) — принято.
|
||||
|
||||
Проверено: `ops.docker.stats` → `limit`=536870912 на всех. Пересоздание = секунды простоя, теги не поехали (`pullImage:false`).
|
||||
**Латентный прод-баг починен cutover'ом:** `Gotham-Pro.css` был 0B на RUVDS → теперь 200/4436B.
|
||||
|
||||
**Durable-правило закреплено** (user: «дальше не забывать выставлять лимиты»):
|
||||
- вики-канон [`portainer-stack-management-vds § Convention`](../.wiki/concepts/portainer-stack-management-vds.md) — app-стек обязан нести mem_limit;
|
||||
- [`snolla-live-prod-inplace-image-bump`](../.wiki/concepts/snolla-live-prod-inplace-image-bump.md) step 6 — пункт чеклиста;
|
||||
- авто-память `vds-app-stacks-need-mem-limit`.
|
||||
|
||||
## Recent commits
|
||||
- `9a92ff0b` chore(vds): mem_limit 512m всему тиражу snolla (5 стеков + compose + вики)
|
||||
- `3bc99923` meta(handoff): тираж 0.42.1 закрыт
|
||||
- `8e3e5b43` wiki(snolla-0.42.1): рецепт + 3 рунбука
|
||||
Rollback = revert DNS → 80.64.31.36 (RUVDS IIS жив, не тронут) ИЛИ PUT стека 20 назад на staging-host.
|
||||
|
||||
## Open треки
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| **tandemmebel.ru cutover** (последний из тиража) | staging GREEN, стек 20 `tandemmebel:ed96b18` (0.42.0), mem_limit стоит, ждёт DNS | Триггер = **владелец флипает reg.ru `tandemmebel.ru`+www→89.253.255.94**. Порядок в STATUS.md-блоке `[tandemmebel-web-vds-deploy]`: verify авторит.NS → ТОЛЬКО ПОТОМ боевой `Host()` в стек 20 (LE-порядок критичен) → live-smoke (gallery-DoD 12/12). Если origin уехал — пересобрать HEAD, ре-DoD. К cutover можно сразу бампнуть до 0.42.1. |
|
||||
| **tandemmebel.ru cutover** | 🟢 **DONE 2026-07-12** — LIVE на VDS, см. итог сессии выше | — (закрыт) |
|
||||
| **0.42.1-бамп kupimknigi+tandemmebel** | ⚪ решено: НЕ делаем (оператор) — катим 0.42.0 | — (закрыт) |
|
||||
| morethencms-s3-filestorage-provider | 🟡 ждёт `.dll` от прога MoreThenCms | STATUS.md-блок |
|
||||
| fix-nl-vds-reality-pq-dest | 🟡 ждёт client-side (user меняет SNI) | STATUS.md-блок |
|
||||
| harden-books-vds-exposed-ports / kreknin-self-backup | ⚪ backlog | STATUS.md-блоки |
|
||||
|
||||
## Спроси user'а
|
||||
- **Версии тиража разъехались:** kupimknigi (21) + tandemmebel (20) на **0.42.0**, три остальных на **0.42.1** (order-фикс). Добампить оба до 0.42.1 для единого пина, или оставить? tandemmebel всё равно пересобирать к cutover — там сразу 0.42.1.
|
||||
- Опционально: поставить периодический снапшот RAM трёх свежих (17/18/19) на пару суток, чтобы поймать дрейф во времени (одним снимком течь за дни не доказать). Не просили — предложение висит.
|
||||
- Опционально: периодический снапшот RAM трёх свежих (17/18/19) на пару суток, чтобы поймать дрейф во времени (одним снимком течь за дни не доказать). Не просили — предложение висит.
|
||||
|
||||
## Не делать (preemptive guards)
|
||||
- **tandemmebel:** НЕ трогать стек 20 / НЕ вставлять боевой Host ДО подтверждённого DNS-флипа на **обоих** авторит.NS (иначе LE HTTP-01 упадёт на RUVDS → сожжём rate-limit). Флип делает владелец.
|
||||
- **RUVDS IIS 80.64.31.36** — НЕ декоммишн (rollback всех мигрированных). Биндинги labtools.ru/pro оставлены как rollback.
|
||||
- **RUVDS IIS 80.64.31.36** — НЕ декоммишн (rollback всех мигрированных). Биндинги оставлены как rollback, в т.ч. tandemmebel/labtools.ru/pro.
|
||||
- Новые app-стеки / правки существующих — **всегда с `mem_limit`** (см. вики-конвенцию), синхронно в Portainer И compose-копию.
|
||||
- Смоук snolla-доменов гнать **С VDS** (воркстейшн ловит LAN-DNS-перехват прод-доменов).
|
||||
|
||||
## Recent commits
|
||||
- _(этот коммит)_ feat(tandemmebel): cutover LIVE — traefik Host-rule staging→boevoy + compose/board/wiki
|
||||
- `9a92ff0b` chore(vds): mem_limit 512m всему тиражу snolla (5 стеков + compose + вики)
|
||||
- `3adbe839` meta(handoff): mem_limit 512m тираж snolla + durable-конвенция
|
||||
|
||||
## Memory updates за сессию
|
||||
- Новая: `vds-app-stacks-need-mem-limit` (durable-правило про лимиты).
|
||||
- Подтвердились: `ps51-iso8859-corrupts-portainer-stackfile` (обошёл PS-грабли, PUT слал UTF-8-байтами), `workstation-lan-dns-serves-local-cms-copy` (smoke через `--resolve`).
|
||||
- Подтвердились: `ps51-iso8859-corrupts-portainer-stackfile` (обошёл PS-грабли, PUT слал UTF-8-байтами через python urllib), `workstation-lan-dns-serves-local-cms-copy` (smoke гнал С VDS по SSH), `vds-app-stacks-need-mem-limit` (стек 20 уже нёс 512m, не трогал).
|
||||
|
||||
Reference in New Issue
Block a user