LINUX.ORG.RU

Эмм… Не знаю даже, с чего начать. Если помнишь контекст, в котором эта фраза была написана, то поймёшь и соль рассказа.

Короче, микросервисы у нас на фирме (точнее, у заказчика) такие микросервисы, что от «микро» там одно название. Здоровая такая хезбала на спрингбуте, которая раутится через грёбаный трижды перепатченный зул, регистрируется в грёбаной эврике и подтягивает конфигурацию через грёбаный спринговый конфигсервер. Всё это сандалится в энв (энв = набор центосных хостов в амазоне + доцкерсетка на оных), коих самих по себе немало, при помощи… самопальных джобов на женкинсе, которые жабомакаки обучены запускать с нужными им таргетами. Все эти костыли объединены в самопальную внутреннюю жабо-библиотеку, авторов которой я знаю и ненавижу лично. Сами женкинсы, ЕМНИП, частично на том же амазоне, а частично во внутреннем датацентре у заказчика (там же и шиндовозные слейвы, что периодически доставляет лулзы вроде /usr/local/bin/git c:\Users\... в логах, если неправильно затаргетить деплой). Место на слейвах, как водится, заканчивается в самый неподходящий момент, а автоматическую клинапилку никак прикрутить не могут. Больше костылей богу костылей, да.

Соответственно, под это всё дело пилятся докер-имэджи на базе, внезапно, той же центоси (йоу дог, мы поставили центось на центось, чтобы ты мог юзать центось, пока юзаешь центось), причём вроде как есть базовый образ, а есть профилированные (под ноду, под спринг, под ещё какую-то дичь), которые бравые загорелые товарищи просто собирают наслоением друг на друга. Отличается это всё набором пакетов (тот же ostree так и просится, но они ж это дело не осилят) и набором костылей для прокидывания сертификатов и переменных окружения. В итоге ситуация, когда при доцкер-пулле слой в 300 мег скачался за минуту, а слой в 26 мег качается полчаса, вполне штатная (это ж ещё у нас к ним линк проброшен в стиле «ехал vpn через vpn», ага). Ну и за потребление рамы сказать щас ничего не могу (давно уже непосредственно с этим всем не сталкиваюсь, только с нодой, хотя нодовский образ вроде не так много потребляет), но вот дискового пространства это всё выжирает нормально так.

Вот тебе следствие 1) велосипедостроения во все поля, 2) как правильно заметил Штеудач, «безалаберного использования самого Docker-а и неправильной работы с базовыми образами». Но жабоиды хавают и не давятся.

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

По-русски «по-русски» через дефис пишется. Давай, до свидания.

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

Нормас, чо. Как раз то что всегда ожидалось от жавы и всей связанной с ней экосистемы, а теперь ещё и от докера.

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

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

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

И это считалось элегатным и удобным решением, да.

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

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

Короче, навалили товарищи чего только можно и нельзя.

rebforce
()
Последнее исправление: rebforce (всего исправлений: 2)
Ответ на: комментарий от rebforce

Короче, микросервисы у нас на фирме (точнее, у заказчика) такие микросервисы, что от «микро» там одно название. Здоровая такая хезбала на спрингбуте, которая раутится через грёбаный трижды перепатченный зул, регистрируется в грёбаной эврике и подтягивает конфигурацию через грёбаный спринговый конфигсервер. Всё это сандалится в энв (энв = набор центосных хостов в амазоне + доцкерсетка на оных), коих самих по себе немало, при помощи… самопальных джобов на женкинсе, которые жабомакаки обучены запускать с нужными им таргетами. Все эти костыли объединены в самопальную внутреннюю жабо-библиотеку, авторов которой я знаю и ненавижу лично. Сами женкинсы, ЕМНИП, частично на том же амазоне, а частично во внутреннем датацентре у заказчика (там же и шиндовозные слейвы, что периодически доставляет лулзы вроде /usr/local/bin/git c:\Users\... в логах, если неправильно затаргетить деплой). Место на слейвах, как водится, заканчивается в самый неподходящий момент, а автоматическую клинапилку никак прикрутить не могут. Больше костылей богу костылей, да.

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

клинапилку

а написать cleanup-ку сложно да???

короче, откоменчена какая то шитуита, с тумач базвордов от вебохипстоты.

Вот тебе следствие 1) велосипедостроения во все поля, 2) как правильно заметил Штеудач, «безалаберного использования самого Docker-а и неправильной работы с базовыми образами». Но жабоиды хавают и не давятся.

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

alwayslate ★★
()

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

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

И ведь никто для народа конфигуратор не напишет.

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

мде, а я то думал у нас бардак. . . надеюсь хоть платят норм

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

под это всё дело пилятся докер-имэджи на базе, внезапно, той же центоси

Какие проблемы? Использовать везде один дистрибутив — гарантия, что не наткнёшься на несовместимость ядер.

Штеудач

Кто?

жабоиды

При чём тут Джава? Наблюдаю аналогичное в компании, где всего 1 джавист на несколько сотен сотрудников. (А специалистов по Джаваскрипту нет и не было.)

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

Тю, это же классика «микросервисов». Три или четыре конторы видел (пару раз в этом ковырялся), они все примерно такое унутре добро ваяют.

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

Deleted
()

Есть у кого?

Не моё. Слышал когда-то от кого-то.

Была мощная и дорогая программа. От $5000 за рабочее место. Там была в одном месте фича, что когда пользователь смотрит таблицу аппроксимации чего-то чем-то, может нажать на кнопку, и прогонится ещё один цикл подгонки. Компьютеры были слабыми, алгоритм то ли неоптимальным, то ли задемпфированным, и программа надолго задумывалась — на десятки секунд на сложных объектах. Всех устраивало.

Лет через 10 разработчик решил оптимизировать алгоритм. Порядка на 2.

Новую версию зарелизили, и пошли жалобы пользователей: «Нажимаем кнопку, и ничего не происходит.» Несколько раз объясняли путём многодневной переписки, что теперь считает очень быстро, а таблица не меняется потому, что решение уже попало в минимум. А что локальный минимум отличается от желаемого — тут и старая версия не помогла бы. Но объяснять надоело.

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

question4 ★★★★★
()

Разрабатывал я информационную систему для МВД. Было 2 legacy API, старое из разрозненных сервисов и новое, тоже кривое и неконсистентное, которое нужно было переделать. Там и там были отчёты, в старом они были зардкожены, в новом еле рабочие на убогих шаблонах, заполняемых через headless либру. Новые долгое время доводили до ума, переделывая агрегацию в БД, борясь то с либрой, то с библиотеками, то с заказчиками, у которых отчёты не бились с их кривыми внутренними, и от которых приходила единственная формулировка «не работает», а ничего внятного добиться не получалось. В один прекрасный момент всё заработало и всех всё устроило.

Некоторое время спустя мы запланировали переезд на новые сервера, а заодним и апгрейд со старой системы, работавшей на 32-битном SLES и практически непригодной для поддержки, на новую, работавшую на Astra Linux. Разумеется, предварительно убедившись, что старыми сервисами никто не пользуется, а всё клиентское ПО будет синхронно обновлено. Успешно обновили, перенесли данные, всё прекрасно заработало. Через пару недель техподдержка получила обращение о том, что отчёты опять «не работают» и всё пропало. Позже выяснилось, что «инженер» заказчика запилил свои отчёты на базе отчётов из старого API, которое, на минуточку, отдавало вовсе не машиночитаемые данные, а XLS. У него было два документа с таблицами, частично заполняемыми вручную, и макросами, макросы парсили отчёты, отдаваемые старым API, и обновляли таблицы, затем третий документ, в свою очередь, парсил первые два и делал общий большой отчёт, которым пользовался весь департамент. Инженер за несколько месяцев до этого уволился. Oh, shit. Наш отчётер такие сложные документы генерировать не мог даже близко, ибо этого никогда и не просили, а старое API впринципе нельзя было завести на новой систепе, да и мы совсем не хотели этого делать. Новые отчёты были резко переделаны так, чтобы таблицы по структуре в точности совпадали со старыми, а эпичные write-only макросы с тучей хардкода путём лютого пердолинга были пофикшены. Как казалось. Но в итоге нормально оно всё равно не заработало, ибо третий документ теперь не мог прохавать первые два.

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

WitcherGeralt ★★
() автор топика
Последнее исправление: WitcherGeralt (всего исправлений: 2)
Ответ на: комментарий от rebforce

Мне страшно представить ради каких нагрузок такое нужно.

Даже не так: фантазии не хватает.

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

с такой херотой разбираться зарплата нужна огого, всё понятно, всех увольняю на*

superuser ★★★★☆
()

Почитал я ваши «кулстори», и даже страшно стало как-то Docker и прочие подобные программы щупать.

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

Это связано с энфорсингом ПДД, я норм с этим. К тому же лично проверил несколько вещей, которые меня интересовали.

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

Почитал я ваши «кулстори», и даже страшно стало как-то Docker и прочие подобные программы щупать.

Просто будь аккуратен в релизной версии. «На попробовать» вполне можно бездумно импортировать чужие образы и забивать их ненужными дистрибутивами. Лишь бы диска хватало. А когда станет ясно, что именно для какой задачи нужно, можно начинать оптимизировать. Вплоть до скомпоновать все апстримные докерфайлы в один, убрав лишнее.

question4 ★★★★★
()

Думал тут про «Байки из склепа», а тут какая-то унылая переписка про Docker =[

neocrust ★★★★★
()

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

и делали мы значит такую штуку...

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

1 2 3 4
5 6 7 8
а другие иначе:
1 3 5 7
2 4 6 8

справились, молодцы.

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

как горело у нашего главного инженера, когда он осознал что за вундервафля получилась, просто так не передать, конечно :)

но! потом в коде прошивки у меня была спец.функция magic_matrix, которая зажигала все как надо, так в прод и уехало :)

Rastafarra ★★★★
()
Последнее исправление: Rastafarra (всего исправлений: 1)

Одна забугорная компания делала весьма полезную в своей отрасли программу, которая отличалась высоким порогом вхождения и непомерной ценой. По этой причине получилось то, что Спольский называл «consultingware» (хотя старались сделать «shrinkwrap»). Не пиратили и не покупали. Тестировщики обучались с ней работать по полгода, а главный программист знал по именам всех пользователей.

Как-то поступила рекламация, что у одного пользователя программа сбрендила. Включает-выключает насосы и клапана в случайном порядке. У остальных нормально. После длительной переписки по приаттаченым фотографиям удалось установить, что управляемая программой установка собрана неверно — перепутали 4 разноцветных провода (которые не в штепселе, не припаяны, а просто вставляются в ЦАП и зажимаются). Но никто не хочет брать на себя ответственность и перетыкать, а работа стоит.

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

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

Какие проблемы? Использовать везде один дистрибутив — гарантия, что не наткнёшься на несовместимость ядер.

Если ты не в курсе, в контейнерах используется ядро от хоста. Хоть алпайн, хоть дебиан поверх центоси запускай — пофигу. А вот почему на хостах вместо центоси не использовали специально обученный Amazon Linux, вопрос к индусне на стороне заказчика.

Кто?

@intelfx же.

При чём тут Джава?

При том, что весь этот бордельеро с эвриками, зулами и конфигчерверами только жабистам и нужен. Остальным, в общем-то, ELB + Nginx хватает. И внутреннего докеровского резолвера, разумеется.

rebforce
()
Последнее исправление: rebforce (всего исправлений: 1)
Ответ на: комментарий от Korchevatel

Ничего страшного не будет, если руки не из задницы.

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

и максимум что придумывают - чтобы одна команда девелоперов не мешала другой.

Самый сок в том, что когда одна команда забивает все слейвы на женкинсе, остальные сасают лалку. Последнее время такое реже случается, но всё равно бывает.

Через неделю наш изолированный доселе проект будем мигрировать на этот же общий пайплайн. Вот это вот называется «нельзя без мата лазить по канату».

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

Если ты не в курсе, в контейнерах используется ядро от хоста.

Ну да. Об этом и речь.

А вот почему на хостах вместо центоси не использовали специально обученный Amazon Linux

Например, на том же хосте работает проприертарная хрень, которая сертифицирована для RHEL и CentOS, а для других ТП откажется слушать.

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

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

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

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

«А вдруг её снова понадобится поставить?» Лет 15 держали в готовности систему для тестирования программ под Palm OS :)

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

Стена там →

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

alwayslate ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.