1
1
1-800-IT2015-01-21 07:00:48
PHP
1-800-IT, 2015-01-21 07:00:48

How to properly develop web-projects?

It so happened that (for now) we have to lead the development alone, but replenishment in the team is expected, and the scheme of actions that we have now is completely unprepared for this.
Now all coding goes in PHPStorm, without a local server, Ctrl + S is deployed via SFTP to a production server, in my mind and in order to avoid problems, I began to think about git and a separate server for testing. How well should everything look?
So far my view is:

  1. The save editor uploads to the second server, as close as possible in configs to the first
  2. Checking the functionality and absence of errors
  3. Submit from editor to git
  4. From git, we deploy to the production server.
  5. In order to avoid discrepancies and edits in emergency cases, right on the combat - we merge the combat as some "slices" in git, copying from there to computers and the test server
  6. Once every N time, synchronize the base of the test server from the production version

Проект специфичен (серверная часть для JS-скриптов, установленных на паре других сайтах) и переключение между тестовым и боевым, скорее всего, будет проводиться bat'ником, вписывающим разные IP (боевой/тестовый) для домена серверной части в hosts и сбрасывающий DNS-кеш локального компьютера.
А как разворачивать автоматически на боевой сервер последние ревизии с GIT'а? Как поступать с пользовательскими файлами и прочим, что не относится непосредственно к движку: аватары, временные файлы, файлы кеша?
Есть ли более совершенные схемы или готовые руководства по настройке такой схемы работы?

Answer the question

In order to leave comments, you need to log in

4 answer(s)
O
OnYourLips, 2015-01-21
@1-800-IT

From git, we deploy to the production server.
Under no circumstances should this be done.
The rest of the items are also not allowed.
You should read continuous integration - all your problems are solved there.
Of the software, the most newbie friendly is TeamCity, and it's free for tiny teams.

Матвей Кукуй, 2015-01-21
@Matvey-Kuk

Не понятен пункт 5. Зачем сливать из боевого в гит? В гите должны храниться только исходные коды, по этому там всегда самая актуальная версия. И суть тестового сервера теряется из-за пункта 3. Обычно строится так:
Локальная машина разработчика -> пуш в git ветку test -> ci сервер сам накатывает ветку test на тестовый сервер -> разраб проверяет обновление -> мерж git ветки test с master -> ci накатывает ветку master на боевой сервер.
Параллельно по таймауту работают джобы по бэкапу боевого сервера на резервный, базы данных(mysqldump) и статики(rsync), например, раз в день с 3:00 до 4:00. Обновление базы на тестовом сервере обычно никак не автоматизируется, ибо там всегда каша из мусорных данных, которые наплодили автотесты.

L
Leonid Fedotov, 2015-01-21
@iLeonidze

А чем Вас не устраивает локальная сеть? Разворачиваете проект в локальной сети, расшариваете между машинами. Пишите код, на стейбл-релизах постите в гит. В качестве бэкапа в Вашем случае пойдет самый обычный крон, копирующий всё на второй винт.
ЗЫ. Пользуюсь WebStorm, схема примерно такая же, всё работает. Единственное, все операции делаются через VPN-туннелирование из-за сервера на другом конце света :D

I
index0h, 2015-01-21
@index0h

Недавно был подобный вопрос

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question