2026Атомарный релизrsyncMetal

2026 Удалённый Mac: атомарный релиз артефактов — in-place SFTP против rsync-стадирования и symlink

Перезапись рабочего каталога по SFTP оставляет пользователей в «смешанном» дереве на всём интервале загрузки. Атомарная схема складывает полный снимок в releases/$TS, прогоняет гейты и только затем переключает current через ln -sfn. Ниже — матрица решений, пять воспроизводимых шагов, цифры для гейтов (свободный диск ≥ 2,5× размера крупнейшего релиза, таймаут CI ≈ медианы времени синхронизации), поля аудита и чеклист отката. См. также выбор SFTP и rsync GUI и права и аудит. Завершение: ограничения самостоятельных узлов на Apple Silicon и выгода арендуемого удалённого Mac (SFTPMAC) для предсказуемого CI/CD и минимизации ночных инцидентов.

Атомарный релизrsyncCI/CDУдалённый Mac
Удалённый Mac: rsync-стадирование и переключение symlink

Три повторяющихся операционных боли

1) Перемешанное чтение/запись. Новый HTML со старыми ассетами или наоборот.

2) Неясное восстановление. Без версионных каталогов сложно назвать последний хороший снимок.

3) Грубый аудит. Общие учётки SFTP и ротация ключей усложняются.

Почему in-place SFTP остаётся опасным в 2026

Проблема не в протоколе, а в непрерывной мутации корня, который отдаёт веб-сервер. Нужен полный снимок в новом каталоге и одна метаданная операция видимости.

Матрица решений

ИзмерениеIn-placereleases + 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, если нужно масштабировать атомарные релизы без роста операционной нагрузки.