Как правильно развёртывать серверное приложение на VPS?
=========================================================

 Пытаюсь разобраться с развёртыванием серверных приложений (например, веб-приложение на Laravel или игровой сервер для какой-нибудь игры).  

  

И хочу понять, правильно ли я понимаю следующие тезисы:  

1. Как я понимаю, лучше всего для этого подходит виртуальный сервер - VPS. Так ли это?  

  

2. Серверное приложение - это по сути программа, которая всегда работает на этом самом VPS. Например, которую запустили через линукс-команду screen, чтобы она не отрубалась, когда выходили из SSH. Или это неправильный подход?  

  

3. Для простоты работы с зависимостями и развёртывания классно использовать Docker, а не клонировать исходники, устанавливать зависимости и т.д. самостотельно.  

Но не отразится ли использование Docker на производительности веб-приложения или игрового сервера?  

  

4. У VPS есть определённый IP-адрес, по которому будет доступен мой сервер/сайт. А что случиться, если я захочу поменять VPS? Получается, у меня поменяется IP?  

Как это правильно хендлить? Ведь клиентская часть будет привязана к старому IP. Этот вопрос вызывает у меня наибольшее недоумение.  

  

5. Нужно ли на VPS ещё получать сертификат, чтобы было соединение по HTTPS? Как это правильно делается? Этот сертификат покупается на какое-то время и ставится в хостинге, или как это происходит? Или его нужно регистрировать где-то ещё?  

  

6. Какие принципы безопасности нужно соблюдать при работе с VPS, чтобы защитить его от взлома? 

> Как я понимаю, лучше всего для этого подходит виртуальный сервер - VPS. Так ли это?

  

Не обязательно. Возможны варианты.  

  

> Серверное приложение - это по сути программа, которая всегда работает на этом самом VPS. Например, которую запустили через линукс-команду screen, чтобы она не отрубалась

  

Это порнография, а не серверное приложение. Хотя направление мысли верное, но более правильно запускать приложение через systemd unit или что-то вроде supervisord, а не использовать screen.  

  

> Для простоты работы с зависимостями и развёртывания классно использовать Docker

  

Docker - это не магия, за всё придётся платить. Если где-то сложность уменьшилась, значит где-то она увеличилась.  

  

> Но не отразится ли использование Docker на производительности веб-приложения или игрового сервера?

  

Само по себе использование docker особого оверхеда не даст, а вот не лучшим образом собранные образы имеют место быть, как и полное непонимание того, как работает "эта фигня в докере".  

  

> У VPS есть определённый IP-адрес, по которому будет доступен мой сервер/сайт. А что случиться, если я захочу поменять VPS? Получается, у меня поменяется IP?

  

В пределах одного хостера IP может и получиться сохранить, но вообще всегда нужно быть готовым к тому, что IP придётся изменить (привет, роскомнадзор!).  

  

> Как это правильно хендлить? Ведь клиентская часть будет привязана к старому IP.

  

Пусть привязываются к доменному имени, а не к IP и проблем не будет.  

  

> Нужно ли на VPS ещё получать сертификат, чтобы было соединение по HTTPS?

  

Да  

  

> Как это правильно делается?

  

<https://letsencrypt.org/ru/>  

  

> Какие принципы безопасности нужно соблюдать при работе с VPS, чтобы защитить его от взлома?

  

[DigitalOcean как замена хостингу. Как всё грамотно настроить?](https://qna.habr.com/q/114037#answer_341887)  

  

PS Слишком много вопросов для одной темы.