Capistrano — это программа для удалённого развёртывания приложений. Я использую этот инструмент для того, чтобы безопасно публиковать и обновлять свои сайты.
Зачем использовать Capistrano
В процессе работы с сайтами возникает задача доставки кода с вашего компьютера на сервер сайта. В идеале этот процесс должен быть удобным, быстрым и безопасным. Простая отправка файлов по протоколу FTP или SFTP занимает много времени и во время отправки может возникнуть ситуация, когда на сайте одновременно находятся и новые и старые файлы, что может привести к ошибкам при выполнении кода в них. Кроме того, в современной разработке веб сайтов активно используются менеджеры зависимостей (NPM, Bower, Composer) и нужен удобный инструмент их запуска на сервере.
Преимущества использования Capistrano
- Быстро — при использовании Capistrano весь код и содержимое сайта передаётся на рабочий сервер не с вашего компьютера, а с репозитория (например Github или Bitbucket). А значит скорость и качество вашего интернет-соединения практически не играют никакой роли;
- Гибко — Capistrano при развёртывании позволяет выполнять произвольные команды на вашем сервере. В основном это установка пакетов (NPM, Bower, Composer), сборка проекта с помощью Gulp и создание символьных ссылок в файловой системе сервера;
- Безопасно — Для доступа к каталогу, куда Capistrano устанавливает код, используется символьная ссылка. После того, как весь код был скопирован с репозитория и были выполнены все прописанные команды, Capistrano перенаправялет ссылку со старого каталога на новый. Эта операция атомарна поэтому при развёртывании не может произойти такого, что часть вашего кода уже обновилась, а часть ещё от старой версии.
- Удобно — Capistrano работает под Windows, поэтому для развёртывания сайта не нужно иметь отдельную *nix-систему или виртуальную среду.
Типичный порядок публикации кода с помощью Capistrano
- Отправляем код в репзиторий Git;
- В командной строке запускаем:
cap production deploy
; - Через пару минут ваш сайт опубликован на сервере.