Как правильно деплоить веб-приложения на Windows Server?
Доброе утро!
Есть VDS с Windows Server 2003, на которой крутится веб-приложение на Yii (Apache+PHP+MySQL). Для выкладки используется консоль git, подтягивающая изменения из master-ветки репозитория на Bitbucket'e. Для тестирования новых фич используется ручной fetch && checkout в боевых условиях.
Это всё, как мне кажется, не есть правильно.
Вопросов накопилось много:
1) Стоит ли продолжать работу с Windows Server 2003 только из-за того, что она ест мало памяти (200-350 Мб) и использует удобный GUI для установки компонентов? Или лучше перейти на Windows Server 2008-2012/Linux? С Linux опыта не имею, только git'овая консоль.
2) Как лучше развернуть машину с конфигурацией сервера для тестирования? Использовать виртуальную машину (VirtualBox) с идентичной ОСью (Windows Server 2003) на своём компьютере? Или поднять на сервере организации некую вещь, с которой могли бы работать несколько человек по сети?
3) Как лучше организовать выкладку кода на VDS с Windows Server? Использовать master-ветку репозитория и делать git pull в консоли? Или есть более правильный путь - с предварительным сжатием и оптимизацией файлов, превращением т.н. Dev-версии в Production и последующей отправки на сервер?
Понимаю, что вопрос довольно обширный и совсем не пятничный. Рассчитываю на помощь и опыт читающих :)
1) Вообще все рекомендуют для сервером использовать линукс. Я тоже в этом деле новичок и могу назвать только несколько причин:
- Линукс по большей части бесплатный
- Там все куда лучше с безопасностью
- Устанавливать компоненты куда проще через пакетный менеджер
- Файловая система быстрее чем у винды да и памяти он должен кушать меньше.
2) Если будете использовать линукс ну например CentOs или Debian, гляньте в сторону виртуализации openvz. Можно пробросить порты и авторизацию таким образом, что бы любой пользователь попадал в свой виртуальный контейнер (контейнер может быть любой *nix осью, за винду не знаю)