Я начинаю работать как независимый веб-разработчик, и недавно я отпугнул клиента, предоставив цитату для довольно простой сайт, который был немного выше, чем они ожидали. Это было в основном брошюру, что они могли бы сделать себя в размещенном решении как Wordpress.com или сайты Google. За исключением одной важной функции, заставило меня подумать, что Django будет хорошо подходить, и что некоторая правильная сеть развитие может быть мотивированным.
Когда я смотрю на задачи, перечисленные мной в моей приблизительной оценке, это довольно мне очевидно, что в большинстве часов там есть вещи, которые не являются специально для этого веб-сайта клиентов. Это заставило меня подумать, что я должен иметь script для автоматизации процесса настройки и развертывания новых Проекты Django.
Несколько вещей все равно придется делать вручную, например:
-
Настройте новый VPS (или, в большинстве случаев, просто запустите виртуальные хосты на существующем VPS).
-
Отредактируйте настройки DNS, чтобы указать clientdomain.com и test.clientsdomain.com. к новому VPS.
-
Настройка SSH-клавиш
-
Отредактируйте файл конфигурации.
script будет делать такие вещи, как:
-
Установите некоторые необходимые пакеты на новый VPS
-
Установите по умолчанию брандмауэр iptables на новом VPS
-
Добавьте конфигурацию nginx/apache для клиентовdomain.com и test.clientsdomain.com
-
Настройте новые базы данных для производства и тестирования на VPS и для разработки на моей локальной машине.
-
Создайте новый проект Django и поместите его в Bitbucket.
-
Настройте settings.py и local_settings.py для создания, тестирования и разработки
-
Создайте автономные резервные копии для каталога производственной базы данных и загруженных файлов.
-
Включить некоторые приложения по умолчанию: flatpages, admin
-
Добавьте некоторые шаблоны шаблонов, пару платных площадок и навигационную панель.
-
Добавьте 960.gs CSS-framework
-
Добавить jQuery
-
Установите djapian или Haystack (включая задание cron для автоматического обновления) для поиска.
-
Настройте новый профиль аналитики Google.
-
Включить возможность репликации баз данных между производством, тестированием и разработкой
-
Настройка мониторинга Pingdom
Я использовал Rake и Fabric для несколько схожих (но менее амбициозных) вещей в прошлом, и я думаю, что Fabric может быть очень хорошо подходит для этой задачи, но мне все равно нравится ваш вход. Есть ли другие инструменты, которые я должен изучить? Я слышал хорошие вещи о Puppet, но просто глядя на их сайт (он содержит слово "Предприятие" ) дает мне ощущение, что это может быть излишним для одного человека операции.