Как организовать рабочее окружение разработки с использованием домашнего сервера?
Колективный разум помоги определится с тем как мне организовать маленький домашний сервер разработки.
Идея:
1) Имеем дома комп хорошей начинки на нем крутятся MySQL и веб сервер и, видимо, какаято *nix система.
2) я запускаю на этом компьютере PHPStorm и спокойненько занимаюсь сайтиками
А теперь опа, и я беру в руки ноутбук (MacBook) и продалжаю ковырятся в сайтах на нем ...
Работая с той же БД, с теми же файлами (ну ибо фалов могут быть огромные гигабайты и каждый раз GITом перегоянть их туда - сюда нет возможности), хотя может можно часть файлов и исключать из GITа и работать с теми что есть?
Как бы мне это организовать?
Интересуют ответы именно по основным принципам построения такой системы.
Как я себе подобное представляю (тупой вариант):
На основном компе *nix c KDE и прмо в систме БД и nginx (memcacheв и все что надо)
На буке прописываем разрабатываемые сайты в hosts и в PHPStorm работает типа по ФТП с основным компом...
Но както это не элегантно...
Подскажите ваш вариант решения?
Я бы считал решением вопроса просто логичные ответы с немного описаным решением - хотябы просто чтото вроде:
Ставим докер, на нем контенеры и фигачим)
Стек на данный момент:
PhpStorm как основной инструмент
PHP, MySQL, GULP,
Основной компьютер HP Z420 xeon e5 2680 64GB
роутер 1
роутер 2 + lte modem
5-6 телефонов
3 телевизора
На основном компьютере крутятся виртуалки, при желании можно с бука зайти и подключиться.
На каждый новый проект создается своя виртуальная машина, возможно и не одна.
Для разьездов используется бук на который заливается образ для текущей поездки, Windows или линукс.
Так же образ линукс используется для работы с микроконтроллерами и создания флешек для разных линуксов или более специфичных вещей
Владимир Коротенко, я вчера впервые в жизни 10ю винду увидел (я на маке уже лет 12)
Hyper-V, WSL - какие загадочные слова, но очень даже похоже на то что надо поизучать что очень может подойти...
Вроде оперативы 128 ГБ и 2 проца E5 2650 V2 легко потянут десяток виртуалок
ФТП в топку.
Дайте в доступ по сети папки с файлами проектов с помощью NFS. На ноуте шару подключите.
До кучи наверное есть смысл поднять VNC и ssh на сервере, чтоб можно было получить удаленный доступ к консоли и GUI.
Файлы надо шарить, например на том же сервер поднимать какой-то samba-сервер или аналог.
база тут всё понятно, крутится на "сервере" одна единая.
Но на выходе получится медленное нечто которое сломается стоит отключиться от интернета или от локальной сети и макбук превращается в тыкву. А медленное потому что phpstorm постоянно индексирует весь проект, можно только догадываться какая скорость будет при индексации десятков тысяч мелких файлов через сеть(то что она локальная особо не поможет). Не вспоминая про node_modules какой-нибудь где реально гигабайты могут лежать.
В общем нормальный вариант это делать две полностью настроенные системы отдельные и не заниматься фигней.
Код хранить в гите, базу локальную и всё как бы...
Надо перейти на ноутбук - коммит текущих правок на компе и пулл на ноуте. Запуск миграций по надобности и т.д.
Ну или еще извращенный вариант поднять на сервере удаленный рабочий стол смириться с тем что это не сильно удобно и по сути использовать макбук только в качестве рабочей станции для подключения к серверу.
Внутри локальной сети скорости должны быть вполне приемлемыми. Особенно по проводам, если 1 Гбит есть.
Для доступа из инета этот вариант, конечно, не годится. Но в вопросе нигде не звучало, что нужен доступ из вне.
res2001, при попытке читать бесконечно количество файлов все равно оверхед будет офигенный потому что каждый файл будет отдельным запросом тянуться скорее всего. Не знаю как там это работает во всяких самбах, но явно какой-то лимит на одновременные подключения имеется и это будет узким местом.
И то судя по опыту того как в принципе быстро работает самба и работы с файлами в обычных условиях там скорее всего один поток как таковой и реализация такая что даже ручной просмотр файлов и папок очень медленный. Так что когда речь будет про сотни-тысячи папок и файлов во всяких вендорах php/js скорее всего это вообще нежизнеспособно.
res2001, тоже самое в принципе и с NFS.
Не припомню способов вообще для передачи большого количества файлов быстро. Как ни монтируй удаленный диск на любом софте все равно мелкие файлы убивают всю скорость работы. Единичный большие файлы будут летать на максимуме при этом.
Обычно это tar -> download -> untar, иначе можно ждать бесконечно.
Александр Аксентьев, res2001, ну так оно же не постоянно все файлы синхронизирует? ну тоесть я подправил 5-10 фалов и пока я их правил оно синхронизирует - нет?
VisualIdeas, насколько часто трудно сказать, но частенько проходит частичная индексация. Особенно с учетом того что постоянно прыгать по файлам надо через подсказки по классам-методом это все равно сильно повлияет скорее всего.
Сейчас проверил у себя, в общем-то даже неплохо работает, индексация 15к файлов заняла минуты 2-3, примерно столько же сколько и скачать такую папку с самбы.
Установка тяжелых npm пакетом тоже по 3-5+ минут занимает и до бесконечности.
+ @vue/cli@4.1.2
added 919 packages from 538 contributors and audited 13286 packages in 1328.214s
22 минуты
Еще тест показал что шторм сразу пишет
> External file changes sync may be slow: Project files cannot be watched (are they under network mount?)
И как результат действительно не видит новые файлы довольно долго, даже если открыть папку и там они будут через Finder/Explorer.
В общем по скорости быстрее чем я думал, но вряд ли это можно назвать комфортным для работы.