mashletov
@mashletov
Программист

Как деплоить сайт на хостинг правильно, быстро и удобно?

Я всегда использовал синхронизацию файлов по FTP/SFTP нажатию Ctrl+S в PhpStorm'е. Собирание фронтенда — локально, через вотчеры. Тесты тоже локально. Но, как я уже понял, это не тру-способ, зато удобно.
В сети прочитал, что нужно использовать CI/CD, который будет скачивать последнюю версию из гита, устанавливать зависимости, тесты, перекачивать на сервер, разархивировать в отдельную папку, тесты, и в конце концов переключить симлинк вебрута на эту папку. Но такой способ мне не очень удобный показался. Как делать хот-фиксы тогда? Изменение одной буквы в коде — целый процесс. Что делать с БД? Что делать с загруженными файлами от пользователей? Копировать из предыдущей версии?
  • Вопрос задан
  • 3045 просмотров
Решения вопроса 2
toxicmt
@toxicmt
CTO at hexlet.io
> Но такой способ мне не очень удобный показался. Как делать хот-фиксы тогда? Изменение одной буквы в коде — целый процесс.

В хорошем процессе это не проблема. Если изменение критичное вы просто деплоите старую версию (не откат, а именно деплой старой). Хот фиксы это уход от проблемы, а нее решение.

> В сети прочитал, что нужно использовать CI/CD, который будет скачивать последнюю версию из гита, устанавливать зависимости, тесты, перекачивать на сервер, разархивировать в отдельную папку, тесты, и в конце концов переключить симлинк вебрута на эту папку

У наиболее продвинутых ребят вся эта история уже делается (и довольно давно) используя docker. Вы можете хотя бы немного познакомиться с ним здесь guides.hexlet.io/docker/. Если докер для вас пока рано, то можно реализовать процесс используя Ansible и его специальный модуль docs.ansible.com/ansible/latest/deploy_helper_modu...

Там вы заодно увидите ответ на вопрос "что делать с состоянием".

> Что делать с БД? Что делать с загруженными файлами от пользователей? Копировать из предыдущей версии?

Состояние никак не связано с деплоем, оно должно быть шареное. Если у вас есть файлы от пользователей, то возможно вы захотите использовать aws s3. Как минимум про него надо знать.

Рекомендую заодно посмотреть вебинар про stateless vs statefull чтобы немного понимать эту тему: https://www.youtube.com/watch?v=WPCz_U7D8PI
Ответ написан
xzdshr
@xzdshr
Покурите про миграции - это вопрос с БД. Например Phinx.
По поводу заливки кода на сервак - Deployer.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Когда работаете в одиночку:
1. Для миграции/синхронизации базы:
1.1. Раз
1.2. Два
1.3. Три

2. Для файлов:
2.1. Раз
2.2. Два (с визуальным сравнением контента перед синхронизацией!)
-----------------------------------
Когда работаете в команде (или без) - подключаемся через систему контроля версий (VCS) из того IDE, с которым привыкли работать:
PhpStorm VCS Help
Ответ написан
402d
@402d
Программирую с 1989 года
ну во первых структура папок . типа
/app
/var
/public
/log

а не все в www
пользовательский контент и статика вообще может быть на субдоменах без права исполнения.
Ответ написан
В сети прочитал, что нужно

ну, Сеть нужно уметь читать..
может, это?
https://habrahabr.ru/company/infopulse/blog/330708/
Ответ написан
zooks
@zooks
Frontend и Django
Через Git.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы