В настоящее время у меня есть 3 сервера linode:
1: Кэш-сервер (Ubuntu, лак)
2: сервер приложений (Ubuntu, nginx, rabbitmq-server, python, php5-fpm, memcached)
3: сервер БД (Ubuntu, postgresql + pg_bouncer)
На моем сервере приложений у меня есть несколько сайтов (topdomains). Каждый сайт находится внутри виртуальной среды, созданной с помощью virtualenvwrapper. Некоторые сайты большие с большим трафиком, а некоторые сайты маленькие с небольшим трафиком.
Типичный сайт состоит из python (django), celery (beat, flower) и gunicorn.
Мой текущий шаблон разработки теперь работает внутри промежуточной среды на сервере приложений и фиксирует изменения в git. Затем измените среду на рабочую среду и выполните git pull
, ./manage.py migrate
и перезапустите процесс, выполнив sudo supervisorctl restart sitename:
, но это требует времени! Должен быть более простой метод!
Поэтому кажется, что докер может помочь упростить все, но я не могу выбрать лучший подход к тому, как я могу управлять всеми своими сайтами и контейнерами внутри каждого сайта.
Я просмотрел http://panamax.io и https://github.com/progrium/dokku, но не уверен, что один из них соответствует моим потребностям.
В идеале я бы запускал разрабатываемую версию каждого сайта на своем локальном компьютере (эмулируя сервер кеша, сервер приложений и сервер базы данных), вносил изменения в код и тестировал их. Когда я увижу, что изменения работают, я выполню команду, которая сделает всю тяжелую работу и отправит изменения на серверы linode (я думаю, в основном на сервер приложений), выполню всю миграцию и перезапущу проект на сервере. .
Может ли кто-нибудь указать мне в правильном направлении, как этого добиться?