История изменений
Исправление
Legioner,
(текущая версия)
:
Но лишь немногие могут внятно объяснить, почему они это делают.
А какие альтернативы? У докера есть одно большое преимущество - это простота дублирования окружения.
Я вот щас расскажу страшилку. Есть такой проект. Там БД это Oracle 9i. Чтобы её поставить, нужно установить виртуальную машину (даже если ты на винде) Windows 2003. В ней надо установить этот самый оракл. Установить патчи. При этом важно совершать все действия в инсталляторе и установщике патчей в нужном порядке, выбирая нужные галочки. Шаг в сторону и всё заново (ну первый раз заново, второй раз уже со снапшота). Винду предварительно тоже надо настроить определённым образом. Потом накатываются SQL-файлы со структурой и справочниками. После этого тебе дают 8 виртуалок с Windows XP. В каждой виртуалке дельфи с установленными определёнными компонентами. Каждая виртуалка собирает свою DLL-ку. Отдельные виртуалки т.к. компоненты друг с другом не совместимы, разные версии и тд. Последняя виртуалка собирает приложение. Которое наконец-то можно запустить. Перед этим ещё надо оракловый клиент настроить. В общем если во всём этом разбираешься, на это уходит пару дней.
На текущей работе используется докер. Для поднятия копии всего проекта (5 баз, около 10 сервисов) у меня ушло около получаса. По сути я просто скопировать docker-compose и потом полчаса анализировал, кто кого и куда вызывает. Можно сказать, что ушло 5 минут - на скачивание образов.
При этом, конечно, докер не идеален и ему есть куда развиваться. Ну или, наверное, уже не докер, а подман, а может и кубернетес сразу, с ним я пока не знаком. Всё-таки докер это больше подход, уже, можно сказать, имя нарицательное, как ксерокс.
Но в общем и в целом я бы деплоить стал без докера только очень простое приложение. Ну тупо один гошный бинарник, например, без БД. Тут да, докер лишний, скопировал .service, сделал systemctl enable и всё. Хочешь убрать - удалил два файла (уже надо не забыть удалить .service). Хотя всё равно он будет гадить логами, какими-нибудь файлами конфигурации, которые тоже надо отслеживать… В общем даже тут, скорей всего, будет удобней с докером.
Ну или чисто сервер под конкретную задачу, который меняться не планирует. Но это нынче редкость.
Исходная версия
Legioner,
:
Но лишь немногие могут внятно объяснить, почему они это делают.
А какие альтернативы? У докера есть одно большое преимущество - это простота дублирования окружения.
Я вот щас расскажу страшилку. Есть такой проект. Там БД это Oracle 9i. Чтобы её поставить, нужно установить виртуальную машину (даже если ты на винде) Windows 2003. В ней надо установить этот самый оракл. Установить патчи. При этом важно совершать все действия в инсталляторе и установщике патчей в нужном порядке, выбирая нужные галочки. Шаг в сторону и всё заново (ну первый раз заново, второй раз уже со снапшота). Винду предварительно тоже надо настроить определённым образом. Потом накатываются SQL-файлы со структурой и справочниками. После этого тебе дают 8 виртуалок с Windows XP. В каждой виртуалке дельфи с установленными определёнными компонентами. Каждая виртуалка собирает свою DLL-ку. Отдельные виртуалки т.к. компоненты друг с другом не совместимы, разные версии и тд. Последняя виртуалка собирает приложение. Которое наконец-то можно запустить. Перед этим ещё надо оракловый клиент настроить. В общем если во всём этом разбираешься, на это уходит пару дней.
На текущей работе используется докер. Для поднятия копии всего проекта (5 баз, около 10 сервисов) у меня ушло около получаса. По сути я просто скопировать docker-compose и потом полчаса анализировал, кто кого и куда вызывает. Можно сказать, что ушло 5 минут - на скачивание образов.
При этом, конечно, докер не идеален и ему есть куда развиваться. Ну или, наверное, уже не докер, а подман, а может и кубернетес сразу, с ним я пока не знаком. Всё-таки докер это больше подход, уже, можно сказать, имя нарицательное, как ксерокс.
Но в общем и в целом я бы деплоить стал без докера только очень простое приложение. Ну тупо один гошный бинарник, например, без БД. Тут да, докер лишний, скопировал .service, сделал systemctl enable и всё. Хочешь убрать - удалил два файла (уже надо не забыть удалить .service). Хотя всё равно он будет гадить логами, какими-нибудь файлами конфигурации, которые тоже надо отслеживать… В общем даже тут, скорей всего, будет удобней с докером.