LINUX.ORG.RU

В чем плюсы контейнеров для разработки?

 ,


3

3

Вот есть классический подход: наваял тулчейн (например, с помощью crosstool-ng), напихал туда нужных библиотек и таскаешь его с собой между системами в виде архива.

Сейчас модно нахерачить целый докер образ и таскать его с собой.

Вопрос: в чем плюс подобного подхода?

Я не троллю, я просто разработчик старой школы, думаю изучить всякие новые тулзы и прикидываю, стоит ли оно того.


Ответ на: комментарий от alex07

Да вот как же без докера то все это делалось до сих пор?

Менее эффективно и с большими трудозатратами. Большинство предыдущих ораторов смогло предложить альтернативу ему для каких-то частных случаев, но не смогло объяснить чем они лучше, кроме как «зато не докер!!!». Может быть у вас получится? Дерзайте.

все что угодно есть способ обеспечить это, вплоть до выделения отдельного сервера.

Т.е. вместо того, чтобы сказать docker run ... я должен создать выделенный сервер, а потом его как-то настроить воспроизводимым образом?

По сути аргументы будут какие то?

— Докер это лишняя прослойка виртуализации!
— Докер это не виртуализация.
— Ну хорошо, а по сути аргументы будут?
ugoday ★★★★★ ()
Ответ на: комментарий от byko3y

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

Дада, зачем высокоуровневые ЯП? Я вижу благо лишь для фирм, которые нанимают бездарных кодеров и чудом запускают их поделия в контейнерах… Кстати тут даже слово контейнер к месту, вспоминая про IBM-360.

ИТ на 99.99% состоит из инструментов облегчающие жизнь софтварным инженерам и снижающих порог вхождения - что приводит к появлению бездарных кодеров которые даже в машкодах с загрузочной панели программировать не умеют.

anonymous ()
Ответ на: комментарий от byko3y

поскольку не позволяет просто написать «docker install gajim»

Этот ваш пример очень хорошо демонстрирует что вы принципиально не понимаете область применимости докера.

«докер дла гаджимов» сущенствуют и их несколько - флатпак, снап.

anonymous ()
Ответ на: комментарий от Nervous

Ага. То есть против самой идеи легко воспроизводимых окружений ты ничего не имеешь, только против конкретной ее реализации докером? Уже хорошо.

Да что же вы все читать не умеете что ли? Я ничего не имею против докера даже (десятый раз говорю). Я против тотальной идиотизации всей этой IT индустрии, где с помощью инструментов вроде докера, джуны с тремя ютуб-курсами и неспособностью понять различия между локалхостом и продом гробят полугодовые бюджеты на реализацию своих бредовых идей о том «как должно все работать».

И в этом плане, конкретно докер это тот кто наносит сейчас самый главный ущерб, по моим прикидкам.

Или вот другой пример: перед человеком ставится задача, имея IP/рут пароль для железки на Hetzner с помощью ansible (против которого я тоже ничего не имею и сам постоянно использую) накатить туда Proxmox с нужной конфигурацией. Ну и человек начинает делать, только вот у него входные данные такие что там уже есть SSH с его персональным ключом, диски разбиты, сеть поднята и настроена. И все это он выдвигает как необходимые требования!!!

Ну вот и предложите мне вариант с чего начать объяснение:

  • Ключ не обязательно будет его, и не обязательно лично он эту операцию будет выполнять?

  • Диски бывают разные и с разными конфигурациями, но 100% что разбивку тоже должен делать он?

  • Учитывая специфику Хецнера диски надо перед установкой чекать на ошибки?

  • Другие опции?

То есть нету каких то базовых пониманий как оно вообще все работает.

alex07 ()
Ответ на: комментарий от byko3y

RHEL 6 на 2.6 и до сих пор поддерживается.

Что бы крутить его внутри докер-образа например.

Собственно это (точнее скорее другие легкие виртуалки но не суть) решает и проблему апгрейда серверов на новые дистрибутивы.

anonymous ()
Ответ на: комментарий от alex07

Все зависит от, того как широко понимать термин «виртуализация», по сути в новомодной докер-клетке запущена другая ОС, т.е. окружение виртуальное, а не реальное хост системы. Тут просто вопрос терминологии и реализации, конечно никто не виртуализирует железо при таком подходе обходятся просто мапингом вызовов через либконтейн, unionfs, немспейсами и цгруппами. Но с другой стороны JVM тогда тоже не совсем честная виртуальная машина ну или виртуальная машина до некоторой степени.

Ну и в подтверждение своих слов можно привести например выдержку из документации по докеру, в ней есть такие слова.

This is part of what makes images so lightweight, small, and fast, when compared to other virtualization technologies.

Т.е. они придерживаются такой же терминологии и таки считаю докер средой для виртуализации.

anonymous ()
Ответ на: комментарий от cocucka

false, докер это изоляция, а не виртуализация.

В четвертый раз признаю свою ошибку.

false, виртуализация, да не та.

Что с ней не так в контексте докера? Повторюсь, то для чего используют докер в случае JVM делается средствами самой JVM с каких то бородатых времен.

Хорошо тем, что можно автоматизировать рутинные операции, это упрощает контроль.

Вы вот сейчас говорите так как будто до этого это было невозможно сделать, что в корне неверно. Более того, так думать вредно, потому что это приписывает докеру какие то фантастические способы решения проблем которые, якобы, до его появления решить было невозможно. На деле же, решали, причем гораздо меньшими усилиями.

дает возможность некоторым людям нагородить говно совершенно не напрягаясь.

Что и происходит в подавляющем большинстве случаев, увы. А все почему? А все потому что чудес не бывает и ты либо умеешь, либо не умеешь. Но если ты умеешь, то докер тебе и не нужен, как правило.

Зачем chroot в JVM? Там и так все хорошо изолировано.

Ну вообще по умолчанию там ничего не изолировано, для этого Security Manager надо настраивать.

alex07 ()
Ответ на: комментарий от winlook38

…программы записывали на перфокартах. И зачем ты мне это рассказываешь?

Затем, что люди почему-то подразумевают, что докер = «сервисы на PHP+Python+Node.js», но забыли, что есть еще и другие языки, с которыми есть большие проблемы при отладке в контейнере.

byko3y ★★ ()
Ответ на: комментарий от winlook38

Почему-то в этом треде редко упоминается, что есть ряд задач

… для которых никто не предлагает использовать докер. Все правильно делают

Риторика была про «докер — решение всех проблем». А потом оказывается, что переносимость очень ограничена, и применимость для различных сфер тоже ограничена.

byko3y ★★ ()
Ответ на: комментарий от byko3y

Напомню, что изначально LXC разработаны гуглем для балансировки нагрузки огромного числа серверов

Фейспалм.

LXC это линукс версия контейнерной виртуализации придуманная чорт знает когда. Самая известная была сановская емнип.

Естественно она позволяет не только докеры пускать но и «полноценные» линукс виртуалки. Хотя вы наверное будете сейчас нам доказывать что толпа разных серверных бизнесприложений должны крутится на одном сервере прямо на железе. Что бы один точный apt dist-upgrade / yum update рушил всю фирму целиком.

anonymous ()
Ответ на: комментарий от ugoday

Может быть у вас получится? Дерзайте.

А что тут дерзать? Открываешь редактор и пишешь текст, конфигурацию или скрипт. В этом плане докер ничего нового не предлагает.

То что в докере все свалено в кучу? Ну так это скорее минус нежели плюс. Взгляните на некоторые портянки Dockerfile.

Т.е. вместо того, чтобы сказать docker run … я должен создать выделенный сервер, а потом его как-то настроить воспроизводимым образом?

А типа docker run ... вы будете запускать на какой то абстрактной машине которая магическим образом материализуется из воздуха?

Про «воспроизводимый образ» это вообще тема отдельного разговора. Я своим разработчикам говорю прямо: если ваша работа не может быть воспроизведена другим человеком в любой момент времени с помощью системы автоматизации, считайте что вы ее не сделали. И возвожу это в ранг аксиомы.

Потому что со штучным товаром это вот давайте в артели рукодельцев, а у нас тут индустрия и 21ый век.

alex07 ()
Ответ на: комментарий от alpha

А в чём крутость и искусство программиста-то? В написании 100тысячный раз баш-скриптов для реализации того что уже является стандартной опцией любой системы?

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

anonymous ()
Ответ на: комментарий от winlook38

А где в треде это предлагалось?

Не знаю я где это предлагалось. Про это был мой первый пост как объяснение того что, с моей точки зрения, докер это скорее зло. Но мне начали рассказывать о том что я не понимаю разницу между виртуализацией, контейнеризацией, абстракцией и другими какими то умными терминами.

alex07 ()
Ответ на: комментарий от alex07

Про «воспроизводимый образ» это вообще тема отдельного разговора. Я своим разработчикам говорю прямо: если ваша работа не может быть воспроизведена другим человеком в любой момент времени с помощью системы автоматизации, считайте что вы ее не сделали. И возвожу это в ранг аксиомы.

Потому что со штучным товаром это вот давайте в артели рукодельцев, а у нас тут индустрия и 21ый век.

Забавно что при данном подходе вы продолжаете отвергать докер, кажется он для этого и сделан.

anonymous ()
Ответ на: комментарий от anonymous

да для кого угодно, только не говори что ты испытываешь эстетическое наслаждение разбирая в очередное говноподелье очередного ведосипедостроителя

Для большинства фирм «система развертывания» — это залить по SSH на сервер новую версию. Всё. Ты так пишешь, будто каждая вторая IT фирма на рынке — это гугл с тысячами серверов, которым либо нужно разрабатывать софт контейнеризации и оркестрации на коленке, либо брать готовые решение. Очнись, большинство держат на одной машине один-два-три сервера, где можно поставить единственную версию софта.

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

Обвиняю. Разговор шел про то, что «благо для всех». А нет, не для всех. Да, низкопробных проектов стало больше, но это не «все».

Он нужен по сути для доставки и развертывания действительно масштабных решений, там где просто скриптов уже мало или нужно что-то придумывать над скриптами чтобы одни и те же действия производились не на одном сервере, а на всем парке и все это имело простой удобный единообразный интерфейс

Да. Но ты же понимаешь, что это выливается в то, что очередная говноконтора делает свою реализацию «todo list» на двадцати сервисах в парке из десяти машин, для которой «скриптов уже мало», ну и так далее. То есть, натягивают сову на глобус. Иными словами «докер не нужен, потому что действительно масштабных решений нет».

byko3y ★★ ()
Ответ на: комментарий от anonymous

Т.е. они придерживаются такой же терминологии и таки считаю докер средой для виртуализации.

Я вообще не понимаю зачем переключаться в техницизмы когда в треде речь идет об общих подходах.

alex07 ()
Ответ на: комментарий от anonymous

докер это способ запуска баш-портянок - делающий их удобнее, проще, улучшающий их обмен и так далее.

Ну то есть баш-портянки никуда не уходят, а просто заметаются под ковер. А докер это средство заметания грязи под ковер.

Ну что и требовалось доказать…

alex07 ()
Ответ на: комментарий от anonymous

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

Эта «возможность» приводит к потере ранее имевшихся возможностей по взаимодействию софта в системе. Так что это прогресс с регрессом.

byko3y ★★ ()
Ответ на: комментарий от winlook38

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

Напоминаю о чем разговор:

В том, что Docker-образ можно развернуть везде. Хоть на старенькой машинке «одмина», хоть на сверхмощном сервере на том краю света.

byko3y ★★ ()
Ответ на: комментарий от anonymous

Так противопоставляют же как раз таки апологеты башпортянок, они не понимают что докер это обвязка-унификация по большому счету.

Не, почти все докерофанаты противопоставляют. Скорее всего в пылу спора некритически осмыслили возражения оппонентов. Там такой специфический паттерн «зачем докер если есть башпортянка» - «да ты просто устарел».

А ответ простой «зачем докер если есть башпортянка» - «что бы запускать твою кривую башпортянку изнутри контейнера»

anonymous ()
Ответ на: комментарий от ugoday

Это общие слова, а претензия «в докере сложно запустить gajim» вызывает только усмешку

Что не так? Чтобы гаджим просто заработал на типовой системе, нужно делать вот это:

docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v ~/gajim:/home/gajim -e uid=$(id -u) -e gid=$(id -g) gajim-omemo-docker

и то этого недостаточно для полноценной работы. Я подчеркиваю, что гаджим — это сраный мессенжер с довольно простыми фичами.

byko3y ★★ ()
Ответ на: комментарий от anonymous

Забавно что при данном подходе вы продолжаете отвергать докер, кажется он для этого и сделан.

Еще раз, я ничего не отвергаю.

Но если человек мне предлагает докер как HA решение, при этом на его «системе» нет RAID, нет какого то даже намека на бэкапы, DRP, дублирование сети и проч. и проч. При этом по стоимости это все превосходит установку двух раков в двух удаленных ДЦ… Ну извините, вы либо меня нагло обманываете, либо вы просто ничего не знаете про HA системы.

И при всем при этом, 90% работы все равно выполняется вручную.

alex07 ()
Ответ на: комментарий от anonymous

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

Вообще бред. IRL это решается с другого конца - сервера на 2.6 держат в 99% случаев потому что там сложное окружение в котором крутится какой то софт. И решается это тем что это все закатывают в тот же lxd/libvirt, ставят на сервер нормальный дистрибутив и в нем уже держат докер.

Вы поддались на бред оппонента которому реально не приходит в голову мысль что рхел6 нормально работает изнутри докера и поддержка среды запуска легаси приложений ненужна кроме как для железа.

anonymous ()
Ответ на: комментарий от alex07

Если смотреть вообще в корень проблемы, вся эта возня была бы не нужна с докером, если бы все множество серверных решений поставлялись из коробки с одним единственным православным решением виртуализации и разделения мощности реального железного сервера на части, с хорошей поддержкой и оснасткой, но так как этому не бывать, придумали докер который и есть по сути решение этой проблемы в том числе. Это уже не говоря что все это притащили уже в облака, в том числе которые тоже в большинстве своем имеют одну суть (кстати до смешного доходит когда опеншифт использует облачные технологии амазона для своих paas решений при этом там есть поддержка докера), но так как вендоры предоставления разные - начинается зоопарк абсурда.

anonymous ()
Ответ на: комментарий от alex07

HA – не в клозетах с RAID и дублированием сети, а в головах. тем более что докер как решение проблемы HA никто не предлагает (кроме разве что чертей по углам, которые тебе что-то шепчут)

anonymous ()
Ответ на: комментарий от anonymous

Неофиты не значит что вообще люди с улицы, скорее просто новички у которых опыта поменьше, смогут со скрипом и погружением. Вообще все зависит от человека в большей степени

Я о том, что докер не помогает и не мешает решать проблемы простой системы. Да, неофиты могут настроить достаточно большую систему на контейнерах, пока к ней не предъявляется серьезных требований. По мере роста требований выясняется, что нужно иметь какие-то базовые навыки программирования для нестандартной автоматизации, нужно уметь налаживать и тестировать сложную систему, что докер сам по себе не сделает.

byko3y ★★ ()
Ответ на: комментарий от hateyoufeel

Ты вот сейчас правда сравниваешь nixops (ближайший аналог — ansible) и K8s?

Кубернет не нужен почти никому. Он слишком сложный и гибкий, это нужно гуглу, фейсбуку, инстаграму, но это не нужно конторе с десятком серверов. У нас вон сервера три, а все равно суют кубернет. К слову, я не вижу проблемы с ансиблем в этом случае.

byko3y ★★ ()
Ответ на: комментарий от anonymous

Ты же не сможешь дать ответ на простой вопрос: зачем иметь 25 сервисов на 80 порте?

Смогу. Но тебе – не хочу

Ну-ну, на неудобные вопросы мы отвечать не будем.

byko3y ★★ ()
Ответ на: комментарий от anonymous

начинается зоопарк абсурда.

Именно так. Вот это то и бесит.

Причем я молчу про то что докерофанаты принимают как данность тот факт что у них единственная задача «всего лишь запустить docker run ...» Так и хочется сказать: мил человек, а кто тебе подготовит то всю эту инфраструктуру на которой ты это запустишь? Другой докер-фанат что ли?

Конечно если весь цикл начинается с клацанья мышью в AWS тогда да, оно именно так и выглядит. Только вот проблема AWS в его стоимости, а также простой невозможности его использования на некоторых критических разработках. Как пример GPDR/PSP/российские законы о данных.

alex07 ()
Ответ на: комментарий от byko3y

Нужно, кто же спорит. Научатся ну или пойдут на мороз. Меня конечно самого в достаточной степени огорчает когда люди без навыков, а самое главное без желания их получать попадают в индустрию, но ничего не поделать такова жизнь.

Если так смотреть ничего само по себе себя не сделает.

anonymous ()
Ответ на: комментарий от anonymous

если ваши системы можно развернуть как два рака в удаленной дц вам не нужен докер скорее всего, не того поля ягода вы )

Неужели Wordpress раздулся до таких масштабов что этого уже мало?

alex07 ()
Ответ на: комментарий от byko3y

люди почему-то подразумевают

Это ты почему-то решил за других решать, что они подразумевают.

другие языки, с которыми есть большие проблемы при отладке в контейнере.

Пример?

winlook38 ★★ ()
Ответ на: комментарий от byko3y

Риторика была про «докер — решение всех проблем»

Ну это ложь. Вопрос был в каких случаях использование докера оправдано. Я выше приводил свои кейсы разработки и тиражирования, а так же задал любителям чрута всего 4 вопроса, касательно масштабирования решения. Анон, топивший за чрут, куда-то слился. Может ты ответишь.

winlook38 ★★ ()
Ответ на: комментарий от anonymous

HA – не в клозетах с RAID и дублированием сети, а в головах.

Совершенно верно. Точнее отсутствие понимания что такое вообще НА.

тем более что докер как решение проблемы HA никто не предлагает

Еще как предлагают. Более того, приводят в пример статьи в серьезных изданиях где разбирается как какой нибудь очередной Spotify развернул мега-структуру на докерах. И при этом говорят: «вот видите, они то сделали, значит и нам надо срочно на докер переходить». Только вот говорится это в конторе где вся разработка делается силами 10ти человек максимум.

(кроме разве что чертей по углам, которые тебе что-то шепчут)

Как вы ловко смузи-программистов сейчас обозвали.

alex07 ()
Ответ на: комментарий от romanlinux

Все хотят видеть фичи и деньги

И не хотят, чтобы их интернет-магаз висел похаканный, с оплатой переадресованной левому челу. Вон, недавно стартап сделали на блокчейне и монге, ой фич как много было, а потом какой-то хакер стал мультимиллионером.

byko3y ★★ ()
Ответ на: комментарий от alex07

Ну вот так и получается, что противники докера придумывают ветряные мельницы, а потом с ними бесстрашно сражаются. Я в треде не увидел ни одного конкретного примера неоправданного использования докера. А говнокодить можно с использованием разных инструментов, от баша чаще плюются, чем от всего остального.

winlook38 ★★ ()
Ответ на: комментарий от alex07

Рядом сидит шизофреник-дегенерат (под виндой и с putty, ага), который гордо называет себя devops и утверждает что вот сам, один, в одиночку управляет HA установкой из 20ти серверов, потратил на ее установку 10 минут нажав 10 раз на кнопку Next
Ах да, и как правило все это он делает для того чтобы его коллеги (такие же шизоиды) развернули связку java + MariaDB для обработки 5000 HTTP запросов в сутки. И вот это сейчас был пример из реальной жизни

Это реалии современной индустрии, и это относится не только к докеру. Я лично наблюдаю это еще и на JS и на PHP, когда плёвая задача оборачивается в гору абстракций и фреймворков. На самом деле тоже самое уже давно происходило в жаве и в питоне:

https://habr.com/ru/post/140581/

Поэтому я послал им третью версию API...
Он вообще не создаёт файлов в нашем проекте, потому что я вставил его в тот модуль, где он используется. Он делает всё, что делал 15-строковый API, и всё, что делал 660-строковый API.

Вот с чего мы начали и к чему пришли:
1 пакет + 20 модулей => 1 модуль
20 классов => 1 класс => 0 классов
130 методов => 2 метода => 1 функция
660 строк кода => 15 строк => 5 строк

byko3y ★★ ()
Ответ на: комментарий от Miguel

виртуализация 1
виртуализация 2
виртуализация 3

You keep using this word. I don’t think it means what you think it means

Учитывая прослойку из chroot+UnionFS, отдельных неймспейсов ядра, и виртуальной сетки, я бы сказал, что виртуализации в докере может быть побольше, чем в JVM, которая только набор команд транслирует, в остальном оставляя условно неограниченный доступ к системе.

byko3y ★★ ()
Ответ на: комментарий от winlook38

А теперь на всем кластере. А завтра на другом.
Сколько будешь делать?
Во сколько час своей работы оцениваешь?

Во-первых, не будет никакого другого кластера. Ни завтра, ни послезавтра. Во-вторых, разговор шел про шизу из многослойными виртуализациями, а не про простой ансибл, применение которого лично я одобряю.

byko3y ★★ ()
Ответ на: комментарий от alex07

А что тут дерзать?

Нужно обосновать, чем ваше самопальное решение будет лучше стандартного. Ни один из предыдущих ораторов не справился с этой простой задачей.

Взгляните на некоторые портянки Dockerfile.

Т.е. если кто-то не разобрался с простой задачей, а Dockerfile примитивен как валенок, он должен справиться с заведомо более сложной? Попробуйте меня в этом убедить. Предупреждаю, будет сложно.

То что в докере все свалено в кучу?

А что в докере свалено в кучу?

А типа docker run … вы будете запускать на какой то абстрактной машине которая магическим образом материализуется из воздуха?

Практически на любом достаточно современном дистрибутиве линукса.

Про «воспроизводимый образ» это вообще тема отдельного разговора. Я своим разработчикам говорю прямо:

Для вас это тема для разговоров, оргсобраний и последующих за ними оргвыводов. А для индустрии это элементарная мелочь которую может организовать даже ребёнок.

ugoday ★★★★★ ()
Ответ на: комментарий от byko3y

Кубернет не нужен почти никому
Он слишком сложный и гибкий, это нужно гуглу, фейсбуку, инстаграму

Это ложное противопоставление. K8s это не только набор технологий, но и практик, отточенных в гугле. Если тебе не понятен профит от этих практик, у тебя просто нет соответствующих задач. У нас есть, мы не гугл и не фб. Энтерпрайз, возле которого ты, на сколько я понимаю, трешься, уже начинает интересоваться возможностью интеграции наших решений в k8s.

winlook38 ★★ ()