На чём лучше вести локальную разработку?

Я использую open server для разработки сайтов на php. Но узнал что это вроде как сейчас old school и вообще чуть ли не дурной тон, так ли это?

Я далёк от вагранта или докера, но вроде их используют для разработки? Получается на каждый проект у тебя будет своя виртуальная машина, не хлопотно ли это, по сравнению с локальной разработкой?

Какой из этих инструментов лучше использовать? Я так полагаю, докер - это альтернатива вагранту? Простите за детские вопросы, но очень хочется перейти на "серьёзную" или "современную" разработку, а я не знаю с чего начать?
  • Вопрос задан
  • 2842 просмотра
Решения вопроса 1
boramod
@boramod
Упрощенно.

Вагрант — система управлением конфигурацией конкретной машины.
Докер — запуск изолированных процессов на машине.

Докер.
Это не виртуальная машина, а запуск изолированных процессов. Т.е., запущенный процесс думает, что он один единственный, и ничего вокруг нет. Это работает на уровне ядра Linux. Без использования виртуальных машин.

В терминологии Докера есть Images и Containers.
Image — образ, шаблон, на основе которого запускается Container.
Image строится на основе какого-либо базового образа ОС.

Container — сервис, запущенный и построенный на базе Image.

Таким образом, вы можете построить несколько образов, например, образ для Nginx, образ для PHP, образ для MySQL. Вдобавок, вы можете построить несколько образо, для каждой желаемой версии PHP, MySQL и т.п.

Каждый из этих образов будет иметь у себя в базе какую-либо ОС. Т.е., происходит изолирование окружения, на котором работает Docker.
На базе построенных образов вы можете запускать Containers, т.е., непосредственно строить рабочее окружение. Каждый запущенный контейнер думает, что он запущен один, в образе наследуемой ОС. Но на самом деле, это всего лишь отдельный процесс, работающий на уровне ядра Linux, без виртуализации. Т.е., у вас нет накладных расходов на виртуальные машины. Изолирование контейнеров выполняется на уровне ядра.

При всем этом, ваша базовая система остается чиста от устанавливаемых пакетов, свободна от неразберихи с библиотеками, версиями и т.п.

Оба инструмента хороши. Но у каждого свое назначение.

Vagrant — великолепный инструмент для конфигурации удаленных машин с нуля, VDS/VPS и т.п.
Docker — великолепный инструмент для быстрого развертывания/переконфигурации рабочего окружения, практически без изменения системы, на которую он устанавливается.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
za4me
@za4me
Человек
На чём лучше вести локальную разработку?

На том что для вас более всего удобно.
Ответ написан
Комментировать
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Пацаны, почему вы все такие модные? Если вы сами не знаете зачем оно вам надо, то зачем этим пользоваться? Когда поймёте, что оно вам точно надо, что оно ускорит/упростит разработку, тогда пользуйтесь. А использовать ради того, чтобы просто использовать и учиться - это явно плохой путь.
Ответ написан
Jump
@Jump
Системный администратор со стажем.
Ну смотрите - вам что нужно?
Вам нужен сервер, на котором вы будете запускать код, и работать он должен на вашем компьютере.
Разрабатываете вы как я понимаю под winodws?
Раньше для этих целей запускали веб сервер под windows. Это добавляло целый пласт проблем - приходилось запускать и отлаживать код, в системе которая коренным образом отличается от боевого сервера, в результате излишние телодвижения при работе, и куча проблем при переносе на боевой сервер.
Сейчас с развитием виртуализации, гораздо проще и удобнее для этих целей запустить виртуальную машину с линуксом, и уж на ней веб сервер.

Поэтому все что вам нужно - это виртуальная машина с линуксом и веб-сервером.
И все.
Получается вам не нужны ни Docker, ни Vagrant.
Однако есть небольшое но-
Проект у вас будет не один, и каждый проект у заказчика будет работать в разном окружении.
А разрабатывать лучше всего именно в том окружении, что и у заказчика, чтобы не было проблем с переносом на боевой сервер.
Поэтому вам по хорошему нужно либо создавать под каждый проект отдельную виртуалку, и тут в некотором роде может помочь Vagrant, либо настраивать на одном виртуальном сервере окружение с помощью Docker.

В общем - вам нужна виртуальная машина с веб сервером, и для удобства можно использовать Docker.
Ответ написан
Комментировать
@qweqwa
Использование Докеров, Вагрантов или просто виртуальных машин нужно только если вы хотите полностью воссоздать у себя среду сервера.
Имеет смысл сразу все настройки выполнить у себя, чтобы на сервер потом просто перенести.

Но если вам полной идентичности среды разработки и среды исполнения не нужно, то прекрасно можно отлаживать без всего этого.
Ответ написан
Комментировать
twix007
@twix007
Ну можно в виртуалбоксе настроить vps и пользоваться как хостингом для разработки, зачем изобретать...!?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы