Путь джедая по деплою django проекта на digitalocean?

У меня есть Django приложение.
Цель настроить подобие continuous delivery на дроплет в digitalocean.
В кавычках "continuous" потому, что при пуше в мастер не хочу, что бы приложение собиралось автоматически, для этого могу зайти на сервер и запустить команду.
Приложение состоит из собствоенно django проекта и БД Postgresql, ElasticSearch, и в качестве сервера хочу использовать gunicorn и nginx для статики.
У меня всего один дроплет и тут вопрос лучше организовать staging и production хост рядом на одном дроплете или на дроплете оставить один production хост, но при этом у себя на development машине разворачивать окружение приближенное к production.
При этом все настройки сервера хочу что бы хранились в репозитории тоесть нужен Ansible или Puppet.
Подитожу цель:
1. получить возможность быстро получить окружение на любом ноуте или компьютере, где захочу ввести разроботку
2. быстро деплоить на сервер, подразумеваю стягивание с репозитория кода, накатывание миграций, установка скирптов в крон, и тд

Могу ли я обойтись для первой цели без docker'а? Мне не нравится, что существенно сложнее управлять настройками, заставляет делать все правильно, для моего маленького проекта не всегда оправдано по времени(деньгам)

Для второй цели думаю мне будет достаточно Fabric?
  • Вопрос задан
  • 875 просмотров
Пригласить эксперта
Ответы на вопрос 1
icCE
@icCE
youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
Не совсем моя тема.

Вынести отдельно БД,Elastic.
Я предполагаю, что настройки там будут меняться давольно редко.

Вторая машина nginx,gunicor (хотя я лично за uwsgi, но вам виднее)
Тут если я правильно понял, меняться будет только APP.

Есть несколько путей как идти дальше:

Докер - самый тупой путь. У себя все собираем, смотрим как работает, перезаливаем свой докер на DO.
При этом БД у нас сохраняется (я думаю она же актуальна постоянно ?) и получаем новое окружение.

Второй путь простой диплой через Ansible или скриптами замены вашего app.

>При этом все настройки сервера хочу что бы хранились в репозитории тоесть нужен Ansible или Puppet.
Кто мешает все настройки хранить в git ? и мержить через git ? Да тут и откатится можно через git :D

>получить возможность быстро получить окружение на любом ноуте или компьютере, где захочу ввести разроботку
Тут только путь контейнера. Если вы хотите иметь всегда одну среду, которая будет работать заведомо везде.

>Могу ли я обойтись для первой цели без docker'а? Мне не нравится, что существенно сложнее управлять настройками, заставляет делать все правильно, для моего маленького проекта не всегда оправдано по времени(деньгам)

Вы один раз делаете образ контейнера с нужными вам настройками, без APP.
Делаете git в котором находится ваш код и уже например через Ansible разворачиваете где надо.
Берем докер, кидаем туда свежий код из git и через API в DO.

>Для второй цели думаю мне будет достаточно Fabric?
Дело вкуса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы