Всем привет. Подскажите, что стоит выбрать для моих нужд. Докер, виртуальную машину или что-то еще.
Что мне нужно:
1) Возможность подключаться по ssh, ftp с любого ПК в одной локальной сети.
2) Возможность сделать копию текущего состояния и развернуть на другом ПК со всеми файлами БД и.т.д. (Не в текущей локальной сети)
3) Возможность работать с nginx, apache, npm, php, python, mysql
4) Быстрое обновление до последних версий вышеуказанных модулей. (Как у докера. Указал в конфиге версии и собрал контейнер по новой)
5) Работа с пользователями ubuntu. У каждого пользователя будет своя папка и свои данные для подключения по ssh/ftp, где они будут работать с модулями указанными в пункте 3.
6) Веб-ресурсы пользователей должны будут отображаться в браузере на любом ПК в локальной сети.
Дополнительно:
Самое главное не указал:
1. Для чего именно ты собираешь окружение? Для разработки или для прода?
2. Что такое "веб-ресурсы пользователей"?
3. Для чего тебе к этому подключаться по ssh и ftp? (для каждого нужно отдельное пояснение)
4. Что подразумевает под собой словосочетание "возможность работать с ..."?
5. Кто такие "пользователи"?
Такое ощущение по описанию, будто ты уже зацепился к контейнерам, тк с ними удобно работать, но не хочешь учиться с ними работать как задумано и хочешь чтобы "пользователи" работали с ними как с полноценными виртуальными машинами.
Если тебе всё-таки именно виртуальные машины нужны, то тогда и бери виртуальные машины и настраивай их при помощи ansible.
Если тебе нужны контейнеры, то бери k8s, но тогда уже придётся отказаться от 1,2 и частично 4 с 5, тк:
1. Контейнеры не должны иметь состояние. Так что сразу отлетает п2
2. Контейнеры должны быть изолированы, а по тому сразу отлетает п1 с доступом внутрь контейнеров
3. Обновление зависимостей (например базового образа) требует пересборки и перезапуска контейнера
4. Один контейнер - одно приложение. Не будет такого, что у тебя в одном контейнере будет всё что ты описал в п3 одновременно работать.
5. Никаких "папок" для пользователей не будет. Но у каждого пользователя-человека вполне может быть своя учётка для доступа в кластер, чтобы в нём создавать свои ресурсы. При этом на уровне учётки можно запретить одному пользователю доступ к ресурсам другого пользователя например.
- По вопросам:
1) Это локальная сеть в которой будут работать человек 15. Для того, чтобы пользователи подключались к серверу и выполняли тестовые задание, связанные с программированием на Laravel.
2) Сайты написанные на Laravel.
3) ssh взаимодействие с php на сервере через консоль. FTP - закидывать файлы со своего ПК.
Переносить файлы с сервера на свои ПК.
4) Использовать и настраивать через консоль или FTP, например, править конфиги Nginx.
5) Иметь доступ только к своим папкам в директории /home на сервере с OC ubuntu.
Грубо говоря по FTP Laravel закинуть к себе в домашнюю директорию. - VoRoN1999, если проверяется именно работа с Laravel, а не умение деплоить в кубер, то легче будет действительно взять какой-нибудь proxmox например и использовать ansible для начальной настройки
- Василий Банников, Где могу более подробно изучить данную тему?
Буду благодарен, если скинете пару статеек. - VoRoN1999, да хоть на том же хабре вводи в поиск и сортируй по рейтингу - будет тебе куча статей.
-
Если тебе нужны контейнеры, то бери k8s, но тогда уже придётся отказаться от 1,2 и частично 4 с 5, тк:
Это вы прочитали в истинно верной книжке линуксоидов-безопасников?) С контейнерами можно делать всё то, что описал автор, и ему вовсе не нужно для этого разрешение международного консенсуса по правильному использованию контейнеров.
На всякий случаю поясню для VoRoN1999 , что:
1) Контейнеры успешно имеют состояние вопреки линксоидам
2) Контейнеры просто работают, можно настроить доступ хоть по SNMP. Никой изоляции они не обязаны придерживаться, а эти слухи распускают безопасники.
3) Обновление никак не связано со сборкой. Просто некоторые люди решили за вас пересобрать контейнер с новой версией. Но вы можете обновить софт, можете разделить софт и данные, можете много всего сделать с обновлением...
4) Один контейнер - один контейнер. В нём будет работать абсолютно всё, что запущено, хоть 4235 приложений.
5) Контейнер совершенно никак не связаны с файловой системой. Они могут содержать любые папки для любых пользователей, а также монтировать папки хоста и много чего ещё. - Griboks, ага, но то что вы описываете очень сильно расходится с тем, как это показывается в любом руководстве => требует чуть более чем среднего понимания, чтобы не выстрелить себе в ногу.
В то время как то что хочет автор является вполне обычным сценарием для "жирных" виртуалок.
Пасы в сторону безопасников, если честно, не понял - это скорее про удобство работы, чем про безопасность.
Гораздо легче собрать новый контейнер, и перенакатить deployment, чем подключаться к каждой поде по отдельности и менять исполняемые файлы как-то внутри них, попутно пытаясь не стриггерить перезапуск мёртвой поды из-за остановки процесса.
=> доступ по ssh и ftp тупо не нужен. - Griboks, Для многих контейнер - это просто модное слово и оно совершенно отвязано от понимания того, что это просто упрощенная виртуалка. Про безопасников честно говоря совсем не понял - к чему тут? Контейнер безопасен не более и не менее, чем обычная виртуалка, запущенная в KVM или VB - просто у него другая область применения.
- CityCat4, контейнер менее безопасен чем виртуалка, которая в свою очередь менее безопасна чем выделенный сервер. Поэтому безопасники продвигают аудит контейнеров, минимальные изолированные сборки, блокировку портов и т.п.
- Griboks, Любой треп за безопасность не имеет смысла без модели нарушителя. Если мы под виртуалкой понимаем KVM, например, то чем один контейнер менее безопасен чем одна виртуалка?
- CityCat4, согласен, безопасники с давних времён портят всем жизнь. Пусть сначала исходящие порты закроют, а потом уже начинают копаться внутри сети.
чем один контейнер менее безопасен чем одна виртуалка
У контейнера больше эксплойтов + обычно используются готовые потенциально вирусные контейнеры из хаба. Т.е. установить на виртуалку вирус сложнее, чем написать docker run not-a-virtus-image.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
При выборе технологии для разработки проекта следует учитывать несколько ключевых факторов, которые помогут определиться с оптимальным вариантом. Вот несколько важных моментов, на которые стоит обратить внимание:
1. **Цели проекта**: Определите, для чего вам нужна технология. Если вам нужно быстро развернуть небольшой проект, то можете обратить внимание на более простые и легкие в освоении технологии. Если же проект крупный и масштабный, то стоит выбирать более мощные инструменты.
2. **Ваши навыки и опыт**: Учитывайте свои собственные знания и опыт в выборе технологии. Если вы уже знакомы с определенным языком программирования или фреймворком, то будет легче развиваться в этом направлении.
3. **Сообщество и поддержка**: Важно выбирать технологию, которая имеет активное сообщество разработчиков и обширную базу знаний. Это поможет вам быстрее решать возникающие проблемы и находить ответы на вопросы.
4. **Производительность и масштабируемость**: Если ваш проект требует высокой производительности и масштабируемости, то выбирайте технологии, которые хорошо справляются с такими задачами.
5. **Безопасность**: Обязательно учитывайте вопросы безопасности при выборе технологии. Некоторые языки и фреймворки имеют встроенные механизмы защиты от уязвимостей, что может быть критически важно для вашего проекта.
Итак, перед тем как сделать окончательный выбор, изучите различные технологии, проведите исследование и тестирование, опираясь на описанные критерии. Помните, что нет универсального ответа на вопрос "какую технологию выбрать", так как все зависит от конкретной задачи и контекста.