Здравствуйте, Sheridan, Вы писали:
S>Докер нужен всегда, везде и кубернетес пророк его -> глупость. S>Надо ложить на актуализацию используемых в проекте либ -> глупость. S>Изоляция строго необходима -> глупость.
У тебя что-то приключилось? Генту не компилируется? Потому что иначе ты бы еще сказал, что программировать на управляемых языках — глупость, что умные указатели — глупость, ну и что там еще по списку.
Здравствуйте, Marty, Вы писали:
M>Вот поэтому липунс и идет на йух
Дадада. Идёт-идёт. На юх, именно туда. Успокойтесь, всё хорошо. Давайте шнурочки подзатяну...
Здравствуйте, Michael7, Вы писали:
M>Здравствуйте, Mamut, Вы писали:
M>>В идеале так и нужно. Жалко, unikernels так до вменяемого состояния и не допилились, они бы в теории были бы неплохой альтернативной докеру.
M>Может быть, я как-то про них вообще мало знаю.
Идея в юникернеле в том, что у тебя есть абсолютно самый минимальный набор системы и библиотек, чтобы приложение запустилось. И запускается напрямую на гипервизоре или прямо железе. То есть, условно говоря, если твое приложение требует только I/O (а это примерно 99.9999% микросервисов), то собирается образ, состоящий только из boot loader'а, io и только того рантайма, который строго необходим твоему приложению.
Потому что даже с докером у тебя все равно на фоне чуть ли не полноценная ось (или даже полноценная, потому что люди часто не думая основывают прям на какой-нить Ubuntu), в которую запиливается полноценный рантайм (например, весь jre), и это все взлетает.
Но для этого надо перепиливать ОСи и/или рантаймы языков, а заниматься этим мало кто хочет. Знаю, что люди достигали миллисекундого отклика с холодного старта даже для Erlang'а. Но на практике почти все такие проекты или уже мертвы (как Ling) или в состоянии перманентного застоя (то есть работают только для одного-двух языков как MirageOS для OCaml'а).
Здравствуйте, Michael7, Вы писали:
M>Здравствуйте, Mystic Artifact, Вы писали:
MA>> Разработчикам делать нехер как следить за всякими дистрибутивами. Нормальному приложению должно быть пофигу на либы в дистрибутиве, настолько, насколько это возможно. Именно так достигается переносимость между пачками дистрибутивов да еще в одном бинарнике.
M>С одной стороны да, с другой все же если делается Продукт, неплохо бы и последить за хотя бы самыми популярными, вроде Ubuntu, Debian, Fedora, CentOS/RHEL. Обычно, если под ними работает, то и под другими дистрами пользователь сможет более-менее легко запустить. Косвенно, переносимость вообще улучшает качество кода.
M>Потому что иначе возникают ситуации, когда разработанный софт (новая версия) работает почти исключительно на машине разработчика и более нигде, после чего он свое окружение пакует в докере и распространяет. Ну в принципе да, решение проблемы, но в итоге можно прийти к тому, что каждая программа будет в своем снапшоте сидеть.
Это лучше оставить создателям десктопных компонент. Или библиотек, поcле сильной унификации
Если это микросервисный или кластерный компонент, то будет лучше, если разработчик не будет изучать выгон разных service managers и прочей специфичной "радости". А сделает минималистичный образ с четко обозначенными библиотеками. И хорошо отладит продукт. Один компонент — одна функция, иначе все силы уйдут на поддержание "всемогутора"
В конце концов, для микросервисов ОС вырождается в "запускалку кубернетес/Mesos/..." и больше ничего не надо
Здравствуйте, smeeld, Вы писали:
C>>У меня K8S работает на Raspberry Pi. S>Хеллоуворлды где угодно запустятся
Я использую K8S локально на одном ноуте для разработки. Не надо мне сказок рассказывать про "супертребования".
C>>Ещё один воинствующий неумеха появился в теме. S>Это не я, это пересказываю впечатления отдела внедрения. Мне с такими субстанциями возиться по долгу службы не довелось, слава богу.
Ага, Рабинович напел. Понятно. Или у вас там Шеридан работает?
Здравствуйте, Sheridan, Вы писали:
S>>>А знаешь причины этого? Подсказать? Или догадаешься из контекста всего этого срача? MA>> Грубить не надо. Я тебя ни в чем не обвинял, лишь спрашивал как ты себе это все представляешь. Ответ на свой вопрос я получил. S>Извини если грубо. Причины описанной ситуации то понял?
Я писал, что при изменении внешних зависимостей, мало что можно гарантировать, в случае, если они меняются вне зависимости от нас. Ты ж про это? Я не вижу тут большого поля для обсуждения честно говоря, и что ты подразумеваешь под причинами этого. Поэтому скорее не понял, чем понял.
Здравствуйте, Michael7, Вы писали:
M>Здравствуйте, Mamut, Вы писали:
M>Но стремление все пихать в докеры чудовищно раздувает ресурсы. Собственно об этом уже рядом ответили. Одно дело, когда в докерах одно-два жирных, тяжелых приложения, совсем другое если они чуть не на каждый чих, а так и будет в итоге, если перестать следить, чтобы софт работал хотя бы на самых популярных LTS дистрах. Кроме того, докер все же не панацея, если сильно не повезет, в нем тоже работать не будет.
Чудовищно, это сколько? В процентах, с примерами, если не брать образы от новичков, где в базовый полный Ubuntu запихан
Из всех что я видел, это базовый образ Windows отъедает заметное пространство но и он с каждой ревизией худеет.
По Runtime памяти, конкретный пример (на машине 16Gb)
S>Это всё как раз не про несчастный глючный докер. Если у тебя софт -не маленькая программулька aka сайтик на lamp, а целый кластер, то, чтоб энтот кластер в виде кубернетиса на машину вкорячить нужно: S>1) отдельная мощная машина, иначе этот глючный хипстерский кубернетис просто не развернётся, будет плеваться кучей ошибок абсолютно непонятного содержания. Ему, например, диски быстрые нужно, видите ли, иначе он обидится и не развернётся.
Ох уж эти сказочники.
Обычная машина, 2Gb RAM. 2 Core. Обычный диск, гигабайт на 10. Это достаточно для Master Node с Kubeadm.
Я не рекомендую это делать, так как Kubernetes master практически всегда идет бесплатно в предложениях Kubernetes PaaS.
Но, один раз нужно, для человека, который не придумывает ничего, не опробовав на собственном опыте. Чтобы без тени сомнения и с улыбкой полного превосходства разгонять Рабиновичей, перепевающих Паваротти.
S>2) ты должен вычистить с мащины всё: штатные докер вместе со всем его потрохами и зависимостями, раскиданными по всей системе, вычистить и firewall, иначае кубернетис им поперхнётся, отключить selinux. Чтоб вкорячить с кубернетесом именно ту версию докера, на которой ты тестил свой калстер. Если этого не сделать-получишь кучи ошибок абсолютно непонятного содержания S>3) для развёртывания всего этого хозяйства нужно писать инстяллятор, это просто невозожно упаковать в rpm/deb.
Точно, Рабинович, в каждом звуке
S>А вот если не использовать докеры и кубернетесы, то достаточно использовать в проге компоненты из штатных реп и паковать прогу в deb/rpm. Тогда будет всё просто и красиво.
. S>Надо ложить на актуализацию используемых в проекте либ -> глупость. Либы в проекта должны быть свежими. Их актуализацию надо планировать. Даже в проектах, ушедших с разработки в саппорт. S>Изоляция строго необходима -> глупость. Изоляция нужна при запуске опасных процессов, способных развалить систему. Например, при экспериментах с вирусами. Либо для ещё одного слоя усложнения доступа к важным данным из соседних процессов. Например, к персональным данным. В остальных случаях можно обойтись.
Защищённый режим процессора строго необходим — глупость. Изолированные адресные пространства нужны только при запуске опасных процессов, либо для ещё одного слоя усложнения доступа к важным данным из соседних процессов. В остальных случаях можно обойтись общим адресным пространством для всех процессов
Здравствуйте, smeeld, Вы писали:
S>Это не я, это пересказываю впечатления отдела внедрения. Мне с такими субстанциями возиться по долгу службы не довелось, слава богу.
Я бы это сам проверял, чтобы "перед пацанами" из-за такого "отдела" не подставляться
Хотя, все правильно сделали. Если не могут пройти простейший админский квест (в установке с kubeadm, просто работа с терминалом, ничего специфичного), то лучше сразу бежать и не тратить время.
И это одна из самых сложных установок, Я уж не говорю про простейшие случаи, типа K3S
curl -sfL https://get.k3s.io | sh —
# Check for Ready node,
takes maybe 30 seconds
k3s kubectl get node
Здравствуйте, L.K., Вы писали:
SVZ>>Вот пришел Шеридан и заактуализировал либу на работающем сервере вусмерть. SVZ>>Как тестирование поможет?
LK>Очень просто. Шеридан сначала проверяет новую либу на тестовом серваке. Потом исправляет косяки своего кода, связанные с изменившейся либой.
Минуточку!
Давай определимся, откуда у Шеридана возьмется собственный код.
Если речь идёт о собственной локальной разработке, то железо, операционка, окружение, код — всё находится под контролем. Тогда докер и вправду не особо нужен.
А если это разработка на продажу, то у местного Шеридана будут только бинарники для установки. И если он чего-нить наменяет в окружении, то может случиться Ой.
_____________________
С уважением,
Stanislav V. Zudin
SVZ>А если это разработка на продажу, то у местного Шеридана будут только бинарники для установки. И если он чего-нить наменяет в окружении, то может случиться Ой.
Да не только на продажу. Даже внутренние продукты (микро- и прочие сервисы).
Здравствуйте, smeeld, Вы писали:
s> C>У меня K8S работает на Raspberry Pi.
s> Хеллоуворлды где угодно запустятся
s> C>Ещё один воинствующий неумеха появился в теме.
s> Это не я, это пересказываю впечатления отдела внедрения. Мне с такими субстанциями возиться по долгу службы не довелось, слава богу.
Здравствуйте, Mystic Artifact, Вы писали:
S>>Извини если грубо. Причины описанной ситуации то понял? MA> Я писал, что при изменении внешних зависимостей, мало что можно гарантировать, в случае, если они меняются вне зависимости от нас.
Смотри. Поменяться они могут только в двух случаях:
1. Либа обновилась на более новую версию
2. Либа откатилась на более старую версию.
Первое — нормальная жизнь, так и должно быть. Если вы отслеживаете и своевременно переходите тоже — всё ок.
Второе может случиться только тогда, когда ктото ленивый принесёт с собой старую версию и насильно впихнёт её в хост.
А я веду к тому, что чем меньше будет ленивых, тем реже будет встречаться авралы обоих типов.
Здравствуйте, Michael7, Вы писали:
V_>>Чудовищно, это сколько? В процентах, с примерами, если не брать образы от новичков, где в базовый полный Ubuntu запихан M>Я о том, что если войдет в моду каждую программу оборачивать в контейнер. Хотя может и переборщил с эпитетом.
Ubuntu Snaps или Flatpak в Fedora — это так и есть. Каждая программа в контейнере.
На самом деле, подход очень неизбежный. Windows примерно так же работает сейчас с SxS-сборками и библиотеками, только там это делается с помощью магии в манифестах, а не chroot'ом.