Назад | Перейти на главную страницу

Лучший способ развернуть / обновить производственный веб-код

Как лучше всего развернуть или обновить код из среды разработки в рабочую среду?

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

Я также думал об использовании VCS, такого как Mercurial или git. Это лучший метод для добавления живого кода?

Спасибо за понимание.

Независимо от вашей экосистемы разработки (Rails, Java) или VCS (GIT, SVN), наиболее важным аспектом развертывания вашего кода в любой среде является непрерывная интеграция.

Вот что следует учитывать:

  • Поддерживайте исходный репозиторий. Достаточно очевидно. Я работаю в магазине Java, и мы используем SVN. Независимо от того, какой VCS вы используете, важно уметь тег / версия ваш код, чтобы убедиться, что вы развернули право код в разных средах. Имейте в виду, что вы не выполняете развертывание от разработки к производству, а скорее переносите код из системы управления версиями на машину сборки и создаете определенный пакет для каждой из ваших сред.
  • Автоматизируйте процесс сборки. Мы развертываем наши приложения как файлы WAR и используем Ant для создания наших пакетов развертывания.
  • Выполняйте модульные тесты во время сборки. В случае сбоя модульных тестов важно прервать развертывание.
  • Используйте сервер непрерывной интеграции. Мы используем Hudson и добились большого успеха. Это позволяет нам не только выполнять развертывание во всех средах (DEV, SIT, UAT, PROD) одним щелчком мыши, но также планировать сборки и развертывания в течение дня, чтобы обеспечить работоспособность всего процесса доставки.

В зависимости от вашей производственной среды реализация этого может быть довольно тривиальной или довольно сложной. Вот еще несколько ресурсов, с которых можно начать:

Оба этих ресурса должны дать вам достаточно идей для создания вашего собственного процесса.

Использование распределенных VCS, таких как mercurial, git или bzr, - хорошая идея.

У вас может быть отдельная ветка для производства (или даже ветка для конкретного клиента в случае настройки).

Преимущества, которые я вижу:

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

Мы используем репозиторий Git вместе с Webistrano.

Git позволяет разработчикам управлять своим кодом децентрализованно и со всеми преимуществами VCS.

Webistrano позволяет разработчикам или соответствующим менеджерам загружать код на платформу разработки, а затем на производственную платформу, просто щелкнув веб-интерфейс. Это инструмент, разработанный для сред RoR, но он будет работать с небольшой настройкой практически в любой среде. Еще одним преимуществом Webistrano является то, что он позволяет легко откатывать в случае сбоев развертывания, что является очень хорошей функцией.

Как системный администратор, я больше не могу жить без webistrano. Это позволяет мне перестать беспокоиться о том, что разработчики (или системные администраторы!) Делают глупости с производственными серверами во время развертывания. Он автоматизирован и прост. Еще одно большое преимущество состоит в том, что разработчикам не нужен системный администратор для чистого ввода кода, они просто щелкают мышью.

Больше информации о Webistrano: Вот.