Re[11]: Опять дваццатьпять
От: Sinclair Россия https://github.com/evilguest/
Дата: 17.02.22 14:57
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Есть ещё третий вариант, и именно он обеспечил массовость популярность контейнеров и докера в частности. Это когда сидит макака, ваяет у себя на локалхосте на последней убунту приложение, тащит для этого кучу всякого разношерстного и разноверсионного хлама из самых разных реп, самыми разными пакетными менеджерами, отличными от штатного (pip-ы, npm-ы). Поучается нагроможение и мессиво. Работать будет только у него на локалхосте. А нужно чтоб работало где-то на любом сервере, в закрытом или публичном облаке. Что делать? Завернуть всю эту кучу вместе с загаженным обазом ОС в контейнер, и этот контейнер можно уже запускать где угодно. А то, что вместе с жалкими 10KB творения макаки на каждый сервер тащится ещё 500MB образа ОС, то это макаку не волнует, а провайдеры только за-повышенное потребление ресурсов клиентами для них прибыль.

Падажжите. Разве там не будет слой незагаженного образа ОС, поверх которого накачены какие-то жалкие пара сотен мегабайт "кучи разношёрстного и разноверсионного хлама", вместе с 10кб собственно пользовательского кода?
При этом незагаженный образ разделяется между всеми контейнерами на конкретном хосте?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Опять дваццатьпять
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 15:05
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Падажжите. Разве там не будет слой незагаженного образа ОС, поверх которого накачены какие-то жалкие пара сотен мегабайт "кучи разношёрстного и разноверсионного хлама", вместе с 10кб собственно пользовательского кода?

S>При этом незагаженный образ разделяется между всеми контейнерами на конкретном хосте?


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

И, понятное дело, экономия на один Image/VM, а не инстанс каждого контейнера. Тут только на одну розгу и хватит
Re[12]: Опять дваццатьпять
От: smeeld  
Дата: 17.02.22 15:05
Оценка: +2
Здравствуйте, Sinclair, Вы писали:

S>Падажжите. Разве там не будет слой незагаженного образа ОС...


Макака одно приложение сваяет на образе одно версии убунту, второе на образе другой версии, третье на образе какой-нибудь sles11 (ибо нужные компоненты только под неё есть). И пропали твои слои
Re[13]: Опять дваццатьпять
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 15:06
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Кто будет инфраструктуру настраивать?


Амазон, Гугл, Azure, ...

На крайняк подгонят собрата Шеридана, один раз на Ansible кластер onprem накатить.
Re[10]: Опять дваццатьпять
От: smeeld  
Дата: 17.02.22 15:10
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Да ну откуда? Контейнеры же из слоёв; как я понял — слои повторно используются.

S>Поэтому если у тебя на железке 30 контейнеров с аппликухами построены на одном и том же дистрибутиве, и в 20 используется питон, а в 10 — go, то физически на диске будет лежать 1 питон и 1 го.
S>Если кому-то потребовался питон 2.7, а не 3.1, то появится 1 экземпляр питона 2.7, при этом он никак не помешает тем 20 аппликухам, которым нужен питон 3.1.

Ты сам это тестил, проверял, что так оно и есть? Учитывая, что докер-это жуткое глюкалово, не удивлюсь, если это только заявлено, но так это не работает должным образом. Вот у меня на локалхосте это не работает: собираемые локально, подтягиваемые извне контейнеры, все из которых создаются на основе одного и того же базового образа из центрального registry, в течении недели-двух отжирают несколько десятков GB. Регулярно приходится делать rm -fr /var/lib/docker
Re[13]: Опять дваццатьпять
От: Sheridan Россия  
Дата: 17.02.22 15:11
Оценка:
Здравствуйте, Vetal_ca, Вы писали:

V_>Вот на экономию этих мегабайт Шеридан их хочет оправдать свой подход, идущий в разрез с реальностью бытия.

Нет. Никакой экономии не будет. Потому как у вас программисты все пишут вразнобой и в проекте может быть несколько версий одной и той же либы. А тут недалеко уже и от нескольких версий дистрибутива.
Но если у вас не так, и всё чётко: либы идентичные, дистрибутив тот же (у вас же ровно один слайс плюс несколько сервисов, верно?), то и контейнеры тут не нужны.
Matrix has you...
Re[14]: Опять дваццатьпять
От: Sheridan Россия  
Дата: 17.02.22 15:14
Оценка:
Здравствуйте, Vetal_ca, Вы писали:

S>>Кто будет инфраструктуру настраивать?

V_>Амазон, Гугл, Azure, ...
У ваших заказчиков всегда есть доступ к интернетам с достаточно широкой полосой? Открою тебе тайну: далеко не у всех так.

V_>На крайняк подгонят собрата Шеридана, один раз на Ansible кластер onprem накатить.

Это было бы правдой, если бы после релиза вся команда заседа бы на другой проект и к этому никогда бы больше не возвращалась.
Практика же показывает что деплой нужно развивать вместе с проектом исходя из изменяющихся требований.
Лично я, например, одному заказчику переделывал хранилище с aws на seaweedfs для вполне успешного проекта, который в проде был к тому времени уже несколько лет.
Matrix has you...
Re[13]: Язык Go - слабые стороны
От: Sinclair Россия https://github.com/evilguest/
Дата: 17.02.22 15:21
Оценка: 2 (1)
Здравствуйте, Reset, Вы писали:

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


R>Что тебе мешает в монолите поддерживать минимум связей? Более того, разделение на модули придумали еще когда термин микросервисы не существовал (да и сетей почти не было).


R>Микросервисы решают 2 задачи: делают возможным реализацию приложения, которому не хватает ресурсов одной машины (гугл/фейскнига) и делают возможным разработку приложения, которым занимаются разные команды с разными дедлайнами, задачам и приоритетами (тут достаточно договориться о протоколе обмена данными и времени реализации изменений, а также поддержки легаси — остальное в каждой команде решают независимо, а вот запихать это в один монолит — возникнет неразруливаемый срач с выяснением у кого длиннее).

Самое главное, что решают микросервисы — позволяют писать код на чём угодно. В теории, конечно, можно и в монолите всё распилить на отдельные компоненты, изолированные через C-style ABI (ну или там, скажем, построить всё на основе COM, и писать часть кода на VC++, а часть — на Delphi), но на практике вызвать какую-нибудь питоновую либу из Java приложения — недостижимая фантастика.
Не менее весёлой становится задача, скажем, перевести монолит с одной версии платформы на другую. Вот у нас пара миллионов строк кода, которую нам нужно перевести с Java 1.3 на 1.8.
Там в принципе несложно — тут имя пакета подправить, там класс заменить. И таких мест — несколько тысяч. После этого оно начинает хотя бы собираться, но не факт, что работать. Надо тестировать: часть косяков вылезет в продакшн — например потому, что где-то там что-то подгружается динамически, и в новой java оно работает не так.
А переехать мы хотим потому, что есть какой-то новый компонент, и в нём очень бы кстати пришлась новая либа, которая не работает с жавой ниже 1.8.
И вот либо мы тратим N+1 месяцев на тщательное портирование всего монолита на новую версию (причём скорее всего замораживая весь feature development до его окончания), либо пилим новый компонент за 3x времени из-за отсутствия нужной либы.
А всё потому, что запустить в рамках одного процесса две версии джавы мы не в силах.
То же самое — с версиями питона. То же самое — с версиями дотнета.
Более того, у нас там может стрельнуть какая-нибудь наркомания вроде того, что у нас ядро на С++, хочет вызывать плагины через COM, и вот у нас два плагина, один на дотнете 3.5, второй — на 4.5. Каждый думает "ачотакова, ща я загружу CLR inproc, и мы поедем".

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

Вот так выглядит современная вавилонская башня, а вовсе не как дружная семья CLR-совместимых языков, которые все компилируются в .Net (как это себе представляла Редмондская молодёжь 22 года тому).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Язык Go - слабые стороны
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 15:32
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Если бизнес скажет тебе вставить затычку в пятую точку — так и сделаешь?

S>Бизнес нанимает профессионала чтобы решать задачи бизнеса но потом не слушает профессионала и требует вырастить руки на жопе. Это так работает?

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

Что-то бормочет про руки на жопе, загоняет сам себе затычку в зад и показывает фиги.

Это опыт для рекрутера. Учится отсеивать, чтобы не тратить на таких самоназванных "селюков-профессионалов" времени.
Re[15]: Опять дваццатьпять
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 15:35
Оценка:
Здравствуйте, Sheridan, Вы писали:


S>У ваших заказчиков всегда есть доступ к интернетам с достаточно широкой полосой? Открою тебе тайну: далеко не у всех так.


Ну нет, так on-prem. Обычная работенка для админа средней руки

V_>>На крайняк подгонят собрата Шеридана, один раз на Ansible кластер onprem накатить.

S>Это было бы правдой, если бы после релиза вся команда заседа бы на другой проект и к этому никогда бы больше не возвращалась.
S>Практика же показывает что деплой нужно развивать вместе с проектом исходя из изменяющихся требований.
S>Лично я, например, одному заказчику переделывал хранилище с aws на seaweedfs для вполне успешного проекта, который в проде был к тому времени уже несколько лет.

Тоже работа. Если самоокупается, то имеет право на жизнь
Re[11]: Опять дваццатьпять
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 15:39
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Здравствуйте, Sinclair, Вы писали:


S>>Да ну откуда? Контейнеры же из слоёв; как я понял — слои повторно используются.

S>>Поэтому если у тебя на железке 30 контейнеров с аппликухами построены на одном и том же дистрибутиве, и в 20 используется питон, а в 10 — go, то физически на диске будет лежать 1 питон и 1 го.
S>>Если кому-то потребовался питон 2.7, а не 3.1, то появится 1 экземпляр питона 2.7, при этом он никак не помешает тем 20 аппликухам, которым нужен питон 3.1.

S>Ты сам это тестил, проверял, что так оно и есть? Учитывая, что докер-это жуткое глюкалово, не удивлюсь, если это только заявлено, но так это не работает должным образом. Вот у меня на локалхосте это не работает: собираемые локально, подтягиваемые извне контейнеры, все из которых создаются на основе одного и того же базового образа из центрального registry, в течении недели-двух отжирают несколько десятков GB. Регулярно приходится делать rm -fr /var/lib/docker



Ни разу такого не видел. Хотя опыт уже значительный

Может у тебя unnamed orphaned volumes ?

docker system prune --all


Или админы у тебя там каким-то боком по докеру касперского выпускают. Тогда, да, на такой цирк никто никаких гарантий давать не будет
Re[14]: Опять дваццатьпять
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 15:42
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Нет. Никакой экономии не будет. Потому как у вас программисты все пишут вразнобой и в проекте может быть несколько версий одной и той же либы. А тут недалеко уже и от нескольких версий дистрибутива.

S>Но если у вас не так, и всё чётко: либы идентичные, дистрибутив тот же (у вас же ровно один слайс плюс несколько сервисов, верно?), то и контейнеры тут не нужны.

Я за этим не слежу, у всех разные требования к либам. Чтобы все оптимизировать до одного слайса, у нас есть много других, более актуальных дел. Префекционизм любой ценой — зло
Re[13]: Опять дваццатьпять
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 15:56
Оценка:
Здравствуйте, smeeld, Вы писали:


S>Макака одно приложение сваяет на образе одно версии убунту, второе на образе другой версии, третье на образе какой-нибудь sles11 (ибо нужные компоненты только под неё есть). И пропали твои слои


Что, у вас нет человека, который Docker image не может написать, сохранив путь макаки на требуемом образе?

Переделать под общий корпоративный стиль, какой нибудь Alpine, scratch или distroless ?

Это не та проблема, о которой-то и упоминают, вообще. Делают, и работает.
Тем более, что, собралось раз и, порядок.
Re[14]: Опять дваццатьпять
От: smeeld  
Дата: 17.02.22 16:53
Оценка: +2
Здравствуйте, Vetal_ca, Вы писали:


V_>Что, у вас нет человека, который Docker image не может написать, сохранив путь макаки на требуемом образе?


У "нас" то есть, но у "нас" и докер юзается только для разработки и тестирования, в проде это исполняется нативно, ибо нефиг лишним мусором систему захламлять. А вот у основной массы потребителей облаков, таких человеков как правло нет.
Re[10]: Язык Go - слабые стороны
От: Sheridan Россия  
Дата: 17.02.22 17:20
Оценка: :)
Здравствуйте, Vetal_ca, Вы писали:

S>>Если бизнес скажет тебе вставить затычку в пятую точку — так и сделаешь?

S>>Бизнес нанимает профессионала чтобы решать задачи бизнеса но потом не слушает профессионала и требует вырастить руки на жопе. Это так работает?
V_>Это значит, что неопытный рекрутер нанял бесконечно отсталого, бывшего профессионала (?), который даже не понимает, что от него хотят.
А опытный рекрутер наймёт сразу того у кого руки из жопы и кто готов мужеложествовать если БИЗНЕСУ НАДО?
Matrix has you...
Re[15]: Опять дваццатьпять
От: Sheridan Россия  
Дата: 17.02.22 17:22
Оценка:
Здравствуйте, Vetal_ca, Вы писали:

S>>Нет. Никакой экономии не будет. Потому как у вас программисты все пишут вразнобой и в проекте может быть несколько версий одной и той же либы. А тут недалеко уже и от нескольких версий дистрибутива.

S>>Но если у вас не так, и всё чётко: либы идентичные, дистрибутив тот же (у вас же ровно один слайс плюс несколько сервисов, верно?), то и контейнеры тут не нужны.
V_>Я за этим не слежу, у всех разные требования к либам. Чтобы все оптимизировать до одного слайса, у нас есть много других, более актуальных дел. Префекционизм любой ценой — зло
Да никто перфекционизма то и не просит. Просто планируйте обновления либ и работайте по плану. Это сложно? Ну серьёзно то. Сложно? Невыполнимо?
Matrix has you...
Re[14]: Опять дваццатьпять
От: Sheridan Россия  
Дата: 17.02.22 17:25
Оценка: -1 :))
Здравствуйте, Vetal_ca, Вы писали:

S>>Макака одно приложение сваяет на образе одно версии убунту, второе на образе другой версии, третье на образе какой-нибудь sles11 (ибо нужные компоненты только под неё есть). И пропали твои слои

V_>Что, у вас нет человека, который Docker image не может написать, сохранив путь макаки на требуемом образе?
V_>Переделать под общий корпоративный стиль, какой нибудь Alpine, scratch или distroless ?
V_>Это не та проблема, о которой-то и упоминают, вообще. Делают, и работает.
V_>Тем более, что, собралось раз и, порядок.
А что мешает то сделать второй шаг и поддерживать свежие версии либ для проектов? Тогда и докер не нужен то будет.
Matrix has you...
Re[9]: Язык Go - слабые стороны
От: Sheridan Россия  
Дата: 17.02.22 17:38
Оценка:
Здравствуйте, Pzz, Вы писали:

R>>Я так и не понял, как статическая линковка библиотек спасает от сложностей с обновлениями библиотек по сравнению с динамической линковкой. В обоих случаях: обновляешь библиотеки — получаешь сложности, не обновляешь — все хорошо.

Pzz>При динамической линковке у тебя либы (или часть либ) могут вместе с дистрибутивом обновиться. И ты этим не очень-то управляешь.
Ну так наверное надо отслеживать версии используемых либ и обновлять у себя?
Да ну, не может быть!
Matrix has you...
Re[16]: Опять дваццатьпять
От: Sheridan Россия  
Дата: 17.02.22 17:52
Оценка:
Здравствуйте, Vetal_ca, Вы писали:

S>>У ваших заказчиков всегда есть доступ к интернетам с достаточно широкой полосой? Открою тебе тайну: далеко не у всех так.

V_>Ну нет, так on-prem. Обычная работенка для админа средней руки
Ты наверное не поверишь, но далеко не везде есть даже средней руки. Чтото чуть сложнее чем "скопировать вот этот каталог в home, написать в текстовом конфиг-файле настройки деплоя и запустить make deploy" и всё, лапки.
Matrix has you...
Re[11]: Язык Go - слабые стороны
От: Vetal_ca Канада http://vetal.ca
Дата: 17.02.22 17:54
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>А опытный рекрутер наймёт сразу того у кого руки из жопы и кто готов мужеложествовать если БИЗНЕСУ НАДО?



Ты думаешь, что если подкрепить несостоятельное мнение оскорбительными выражениями, и переведя верхний регистр, то твое мнение обретет хоть какой-то вес? "Кто не думает как Шеридан — тот п****ас."? "Ну согласись, что Шеридан прав, и твоя ориентация будет этим же Шериданом подтверждена"? Это твои аргументы, это твой уровень?

Знаешь, в контексте обсуждения твоя ориентация и страхи с ней связанные тут не интересны. Хотя, уши проглядываются, уж слишком часто ты апеллируешь к этому делу.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.