Хороший инструмент для автоматической настройки и развертывания проектов Django

StackOverflow https://stackoverflow.com/questions/5485352

Вопрос

Я начинаю как независимый веб-разработчик, и я недавно напугал клиента, давая цитату для довольно простого Сайт, который был немного выше, чем ожидал. Это было в основном Брочаума, что они могли бы сделать себя в хостированном решении как WordPress.com или сайты Google. Кроме один критической функции, что заставил меня думать, что Django будет хорошая подходящая, и что какая-то правильная сеть Развитие может быть мотивировано.

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

Пара вещей все равно должна быть сделана вручную:

    .
  • Установите новый VPS (или в большинстве случаев, просто идут с Virtualhosts на существующем VPS).

  • Редактировать настройки DNS, чтобы указать клиентыdomain.com и test.clientsdomain.com к новым VPS.

  • Настройка ssh-ключей

  • Редактировать файл конфигурации.

    Сценарий будет делать такие вещи, как:

      .
    • Установите некоторые необходимые пакеты на новом VPS

    • Установите по умолчанию брандмауэр iptables на новом VPS

    • Добавить конфигурацию Nginx / Apache для ClientsDomain.com и test.clientsdomain.com

    • Настройте новые базы данных для производства и тестирования на VPS и для разработки на моей локальной машине.

    • Создайте новый проект Django и положите его на Bitbucket.

    • Настройка настроек .py и local_settings.py для производства, тестирования и разработки

    • Настройка Offsite Backuureutines для производственной базы данных и загруженного каталога файлов.

    • Включить некоторые приложения по умолчанию: Flatpages, Admin

    • Добавьте несколько шаблонов для котельной, пару flatpages flatplate и navbar.

    • Добавить 960.GS CSS-Framework

    • Добавить jquery

    • Настройка djapian или Haystack (включая работу Cron для автоматического обновления) для поиска.

    • Настройте новый профиль Google Analytics.

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

    • Настройка мониторинга Pingdom

      Я использовал Rake и Ткань для несколько подобных (но менее амбициозных) вещей в прошлом, и я думаю, что ткань может быть довольно хорошей подходящей для этой задачи, но я все равно хотел бы ваш вклад. Есть ли другие инструменты, которые я должен заглянуть? Я слышал хорошо вещи о Кукольный но просто глядя на их сайт (он содержит слово Enterprise) дает мне ощущение, что это может быть Переполнение для работы одного человека.

Это было полезно?

Решение

В настоящее время мы делаем это с помощью ткани + сборки.Другие говорят, что шеф-повар или марионетка лучше подходит (и она, вероятно, есть, если вы хотите сделать вещи на уровне сервера, не только уровень приложения).

Также для Django есть несколько выделенных хостеров, которые принимают много нагрузки от вас, мне особенно нравится http://ep.io Что мы используем для питания наших полностью автоматизированных развертываний для демонстраций демонстрации django-cms , так что, возможно, вы должны посмотреть в тех хостинг-провайдеров, а не ограничивающих себя VPS, которые для вас более накладки.

Другие советы

Кукольный марионетки может показаться пугающим и излишним для небольших проектов, поскольку он часто используется для огромных развертываний, но я использую его для управления только одной машиной в Автономный режим без настройки клиентского сервера, чтобы мне не нужно было иметь дело с SSL Certs и несколько машин , Что делает вещи намного проще, но все же дает мне преимущество, что я могу сделать действительно быстрое восстановление бедствий или переместить мой хостинг без большого усилия. Есть некоторые Великие причины (Idempotents, кросс-платформенная поддержка, Полное управление жизненным циклом, абстракция, лаконичные DSLS) для использования современных систем управления конфигурацией по системам, которые по существу являются сценариями, которые выполняют SSH в петле или полагаться на платформы, которые заставляют вас.

Проверить Учащиеся марионетки для быстрого нагрева, включая примеры и игровую площадку. Вы можете получить действительно полезные вещи, сделанные с помощью простых кукольных сценариев (проявляются), которые запускают автономный, а затем начните изучать все расширенные функции, как только вам понадобится.

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

Я рассматривал много этого недавно, как кто-то в аналогичной позиции.

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

Посмотрите на это для хорошей отправной точки для универсального проекта Django Code Code

http://blog.zacharyvoase.com/2010/02 / 03 / Django-проект-конвенции /

Я собрал что-то подобное, что позволяет мне быстро встать и работать, но и отделить материал сервера из проекта. Это очень важно, так как он позволяет версию контролировать каждый проект без включения файлов System / Server. Это здесь (все еще очень много в процессе). Это заботится о макете папок, дополнительных CSS, Boilerplate HTML, GRID / 960 вещей, jQuery, Development VS Настройки производства, настройки базы данных (в основном), устанавливаемые по умолчанию и т. Д. Вот Объясняется макет

Использование virtualenv , VirtualenVWrapper & pip позволяет вам Настройте автономный, инкапсулированные окапномеры Python, которые отлично подходят для работы нескольких проектов на одном VPS. PIP позволяет устанавливать пакеты в конкретный вируальенв, а также для вывода всех ваших пакетов к тексту, которое можно импортировать позже. Это делает передислушный код от разработки для производства очень быстро. Это также позволяет писать общие файлы требований в вашем скелетонном коде, который автоматически устанавливает все ваши обычные приложения Django I.E. Django-Tagging etc.

С точки зрения баз данных, я перестал пытаться иметь базы данных о разработке и производственным базам данных на разных машинах, слишком сложно импортировать / экспортные приспособления. Теперь у меня просто разделяют базы данных по производству и разработкам на VPS и удаленно подключаемся к SSH) к разработке. Вы можете легко скопировать один на другой, который также приятно.

Когда все готово, вы можете развернуть от разработки на производстве с использованием ткани (мне еще не застрять в этом, поэтому я не уверен в своей простоте использования)

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

Check out Silk Deployment, which is based on Fabric and is used to deploy Django (or any WSGI) + Nginx + Gunicorn:

http://pypi.python.org/pypi/silk-deployment/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top