Что такое Capistrano, для чего его использовать и какие у него преимущества

Capistrano — это программа для удалённого развёртывания приложений. Я использую этот инструмент для того, чтобы безопасно публиковать и обновлять свои сайты.

Зачем использовать Capistrano

В процессе работы с сайтами возникает задача доставки кода с вашего компьютера на сервер сайта. В идеале этот процесс должен быть удобным, быстрым и безопасным. Простая отправка файлов по протоколу FTP или SFTP занимает много времени и во время отправки может возникнуть ситуация, когда на сайте одновременно находятся и новые и старые файлы, что может привести к ошибкам при выполнении кода в них. Кроме того, в современной разработке веб сайтов активно используются менеджеры зависимостей (NPM, Bower, Composer) и нужен удобный инструмент их запуска на сервере.

Преимущества  использования Capistrano

  1. Быстро — при использовании Capistrano весь код и содержимое сайта передаётся на рабочий сервер не с вашего компьютера, а с репозитория (например Github или Bitbucket). А значит скорость и качество вашего интернет-соединения практически не играют никакой роли;
  2. Гибко — Capistrano при развёртывании позволяет выполнять произвольные команды на вашем сервере. В основном это установка пакетов (NPM, Bower, Composer), сборка проекта с помощью Gulp и создание символьных ссылок в файловой системе сервера;
  3. Безопасно — Для доступа к каталогу, куда Capistrano устанавливает код, используется символьная ссылка. После того, как весь код был скопирован с репозитория и были выполнены все прописанные команды, Capistrano перенаправялет ссылку со старого каталога на новый. Эта операция атомарна поэтому при развёртывании не может произойти такого, что часть вашего кода уже обновилась, а часть ещё от старой версии.
  4. Удобно — Capistrano работает под Windows, поэтому для развёртывания сайта не нужно иметь отдельную *nix-систему или виртуальную среду.

Типичный порядок публикации кода с помощью Capistrano

  1. Отправляем код в репзиторий Git;
  2. В командной строке запускаем: cap production deploy;
  3. Через пару минут ваш сайт опубликован на сервере.

Среда разработки

Я работаю из под Windows. Вот мои основные рабочие инструменты для создания сайтов:

  • редактор: PHPStorm;
  • языки программирования:
    • PHP;
    • Bash;
    • CoffeeScript;
    • Sass;
  • бэкенд фрэймворки и CMS:
    • Yii2/Yii;
    • WordPress;
    • ModX Revo;
  • фронтенд фрэймворки:
    • Twitter bootstrap 3;
    • Polymer;
  • менеджеры пакетов:
  • сборщик: Gulp;
  • деплой: Capistrano;
  • система управления версиями Git;
  • виртуальная среда: Vagrant.

Не то что бы это был необходимый запас для веб-разработки. Но если начал использовать технологии, становится трудно остановиться.

Все инструкции по установке компонентов среди разработки перечислены на странице «Настройка среды разработки на PHP под Windows».