Три повторяющихся операционных боли
1) Перемешанное чтение/запись. Новый HTML со старыми ассетами или наоборот.
2) Неясное восстановление. Без версионных каталогов сложно назвать последний хороший снимок.
3) Грубый аудит. Общие учётки SFTP и ротация ключей усложняются.
Почему in-place SFTP остаётся опасным в 2026
Проблема не в протоколе, а в непрерывной мутации корня, который отдаёт веб-сервер. Нужен полный снимок в новом каталоге и одна метаданная операция видимости.
Матрица решений
| Измерение | In-place | releases + symlink |
|---|---|---|
| Смешанное состояние | высокое | низкое |
| Откат | минуты | секунды при сохранённом N-1 |
| CI | порядок шагов ломается | sync → gate → cutover |
Пять шагов
TS=$(date +%Y%m%d%H%M)
mkdir -p /srv/app/releases/$TS
rsync -av --delete-after --exclude '.git' ./dist/ deploy@remote-mac:/srv/app/releases/$TS/
ssh deploy@remote-mac "test -f /srv/app/releases/$TS/index.html && shasum -a 256 /srv/app/releases/$TS/index.html"
ssh deploy@remote-mac "ln -sfn /srv/app/releases/$TS /srv/app/current && readlink /srv/app/current"
Гейты и аудит
Держите запас диска не менее 2,5× максимального релиза; таймаут CI — около тройной медианы длительности rsync. Логируйте субъект, UTC, хост, $TS, readlink до/после; храните 90 дней.
Откат и аренда Mac через SFTPMAC
- Проверить целостность каталога N-1
- Вернуть symlink
- Выборочно сверить хэши и мониторить ошибки
Схема одинакова на собственном Mac mini, облаке или управляемом узле; отличается то, кто следит за диском и доступностью. Для команд, желающих выжимать производительность Apple Silicon в CI без ночных тревог, выгодно вынести SFTP-изоляцию и аптайм на сторону провайдера.
SFTPMAC предоставляет удалённые Mac с SFTP для разработчиков и CI: вы сохраняете привычный rsync и symlink в изолированных путях, а базовую доступность доверяете сервису. Это часто быстрее и стабильнее, чем удерживать тот же уровень на самособранной инфраструктуре.
Ознакомьтесь с тарифами SFTPMAC, если нужно масштабировать атомарные релизы без роста операционной нагрузки.
