mashletov
@mashletov
Math.random()

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

Я всегда использовал синхронизацию файлов по FTP/SFTP нажатию Ctrl+S в PhpStorm'е. Собирание фронтенда — локально, через вотчеры. Тесты тоже локально. Но, как я уже понял, это не тру-способ, зато удобно.
В сети прочитал, что нужно использовать CI/CD, который будет скачивать последнюю версию из гита, устанавливать зависимости, тесты, перекачивать на сервер, разархивировать в отдельную папку, тесты, и в конце концов переключить симлинк вебрута на эту папку. Но такой способ мне не очень удобный показался. Как делать хот-фиксы тогда? Изменение одной буквы в коде — целый процесс. Что делать с БД? Что делать с загруженными файлами от пользователей? Копировать из предыдущей версии?
  • Вопрос задан
  • 4857 просмотров
Решения вопроса 1
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
Ответ написан
Пригласить эксперта
Ответы на вопрос 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
начинал с бейсика на УКНЦ в 1988
ну во первых структура папок . типа
/app
/var
/public
/log

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

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

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

Войти через центр авторизации
Похожие вопросы