Email or username:

Password:

Forgot your password?
Andrey Pechorin

[1/3] #unix #обдумывание #ваше_мнение #администратирование #docker #deploy #backup

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

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

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

Более предметно: у меня несколько хостов, их нужно разворачивать, ставить туда докер, поднимать докер-компоузы, а еще бекапить все это дело во время.

25 comments
Andrey Pechorin

[2/3] #unix #обдумывание #ваше_мнение #администратирование #docker #deploy #backup

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

Ансибл я конечно использовал уже, и куб, но это "не то". Все эти задачи, что я решал на баше github.com/pechorin/pbr.sh/ как-то перенес в ансибл — и не получил никакого удовольствия.

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

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

[2/3] #unix #обдумывание #ваше_мнение #администратирование #docker #deploy #backup

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

Ансибл я конечно использовал уже, и куб, но это "не то". Все эти задачи, что я решал на баше github.com/pechorin/pbr.sh/ как-то перенес в ансибл — и не получил никакого удовольствия.

Andrey Pechorin

[3/3] #unix #обдумывание #ваше_мнение #администратирование #docker #deploy #backup

Рулили бы своими серваками с докерами, впн'ами, небольшими постгресами через еще один конфиг-файл, который в итоге бы компилировался в программу с веб-мордой и давал вам возможность разворачивать/гасить/бекапить/деплоить хосты и видеть статус по всем запущнным контейнерам и другим сервисам работающим прямо на хосте? Обычно это решается чем-то огромным. А хочется маленькую программу для "локального админа". Или не хочется? ;)

Who Let The Dogs Out 🐾

@pechorin Ты пытаешься изобрести ещё один оркестратор? А что мешает использовать уже существующие? NIH?
Или реально не хватает какой-то фичи?

Andrey Pechorin

@ashed Ну а какой? Ансибл? Куб? А точнее все вместе по немногу. В итоге выходит зоопарк опять. Что-то умеет устанавливать. Что-то умеет обслуживать. Что-то умеет бекапить. А все вместе сразу не умеет никто вроде бы. Я наверное ошибаюсь, поэтому и решил выйти в люди на обсуждение :)

Andrey Pechorin

@ashed если про ci/cd, то на работе вижу как это все вместе работает — helm/k8s/github ci; но я правда совсем не про то; Скорее про "дешевый менеджмент на коленке в два бинарника". Но спасибо, почитаю комменты.

Who Let The Dogs Out 🐾

@pechorin
У конторы Флант есть нехилая накопленная экспертиза в области разработки и эксплуатации всей этой "кормчей штурвалятины" aka kubernetes.

Andrey Pechorin

@ashed да, спасибо за наводку, поизучаю их github.com/orgs/flant/reposito, тем более когда-то смотрел пару докладов от их работников (и уже все забыл).

Никта

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

Andrey Pechorin

@nycta Спасибо за отзыв :) Да, в ближайшее время если идея начнет перерастать в реализацию - поделюсь. А вопрос такой, а почему не хотели просто взять и написать пачку ямлов для ansible? :) (Все убеждаю себя, что это нужно)

Никта

@pechorin походу чисто по ощущениям — ansible будто внушает какое-то беспокойство. Другое дело, допустим, в веб интерфейсе пошуршать, будто бы спать можно будет спокойнее.

Andrey Pechorin

@nycta или вот в комментах подсказали крутой github.com/louislam/dockge (правда тут без развертывания серверов)

mapcuk

@pechorin прям на все случаи жизни - кажется это всё таки плейбуки #ansible
На счёт маленького сервиса чтоб рулить #docker из веб морды вот вариант github.com/louislam/dockge

Чтоб запускать разные задачи есть вот такая штука github.com/dagu-org/dagu
Где задачи можно описать на YAML и потом запускать их по расписанию или в ручную

Andrey Pechorin

@mapcuk да, dockge это уже близко, спасибо. Изучу и попробую :) Правда это треть от того что я хочу, но я рефлексирую, что хочу, вероятно, странного и не гибкого под любые иные (не мои) сценарии.

Вероятно пытаюсь идти в сторону "convention over configuration".

Шуро

Не попробуешь - не узнаешь :)

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

Проблема обычно в поиске баланса гибкости и сложности. Ты пишешь, что "обычно это решается чем-то огромным", но дело в том, что они все тоже начинали с попытки создать простой и понятный инструмент, но быстро оказывалось, что не хватает того и сего, не покрыт тот и этот сценарии, в итоге получился Windows 11 :)

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

Не попробуешь - не узнаешь :)

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

Andrey Pechorin

@shuro мне возможно будет чуть проще, так как уже все знают как им решать эти задачи (куб, ансибл, терраформ), я же типа задумываюсь о решение "с другого боку". Но вы правы, живя в своем пузыре и решая свои задачи трудно выбраться за эту границу и вероятно любой новый кейс сломает целостность или заставит написать черепаху :)

Iron Bug
тут ещё неизбежно возникнет вопрос вкусовщины или субъективности. то есть, ты можешь обладать какими-то навыками, которые тебе кажутся простыми и естественными, а другие могут ими не обладать. ты автоматизируешь что-то, что тебе кажется сложным, а у других могут быть другие сложности. я думаю, что подобных попыток сделать управление чем-то на коленке полно в более-менее крупных компаниях. везде есть какие-то свои костыли. иногда эти костыли, сделанные для внутреннего использования, расшаривают, как опенсорц. но не у всех есть желание в этом копаться, потому что они решают частные задачи тех компаний, которые их разработали. а в применении к конкретным случаям могут быть либо неудобны, либо вовсе бесполезны.
и даже такие монстры, как IBM, например, пытались делать "универсальный софт для всего", с интеграцией и прочим. какие ужасы из этого получились знают те, кто видел попытки внедрять это в компаниях :) и не то, чтобы оно как-то не работает. нет, оно даже работает. только вот логика там настолько ракообразная, что надо быть каким-то марсианином, чтобы этим было удобно пользоваться.
тут ещё неизбежно возникнет вопрос вкусовщины или субъективности. то есть, ты можешь обладать какими-то навыками, которые тебе кажутся простыми и естественными, а другие могут ими не обладать. ты автоматизируешь что-то, что тебе кажется сложным, а у других могут быть другие сложности. я думаю, что подобных попыток сделать управление чем-то на коленке полно в более-менее крупных компаниях. везде есть какие-то свои костыли. иногда эти костыли, сделанные для внутреннего использования, расшаривают, как...
Andrey Pechorin

@iron_bug @shuro нет, ну сравнивать себя с ibm и их уровнем сложности я как-то не решусь. Безусловно, мысль полезная, но не факт что приминительная к текущей проблеме. Какой к примеру можно вспомнить гигантский опенсорсный монстроузорный комбайн, который еле ворочится и еле живет? Если такой и есть, то обычно рядом есть более простые альтернативы. Мы как раз смотрим из более приземленного мира с меньшей стоимостью изменений и задачи у нас проще. Докеры, маленькие базы, а не кластера из десятка супер-компьютеров и сотни тысяч других хостов.

@iron_bug @shuro нет, ну сравнивать себя с ibm и их уровнем сложности я как-то не решусь. Безусловно, мысль полезная, но не факт что приминительная к текущей проблеме. Какой к примеру можно вспомнить гигантский опенсорсный монстроузорный комбайн, который еле ворочится и еле живет? Если такой и есть, то обычно рядом есть более простые альтернативы. Мы как раз смотрим из более приземленного мира с меньшей стоимостью изменений и задачи у нас проще. Докеры, маленькие базы, а не кластера из десятка супер-компьютеров...

Iron Bug
универсальность всегда порождает монстрозность. и всё это жрёт ресурсы. вопрос применения отдельных монстрозных реализаций - это лишь административный вопрос. анзибл не призван "приносить счастье" админу. это тупая утилита для массового тиражирования конфигов. в каких-то случаях его применение имеет смысл. но в каждом случае надо смотреть конкретику. иногда и скрипта на баше через ssh хватит.
я лично всегда обхожусь минимумом и придерживаюсь принципа suckless. управление через графику и веб не люблю, живу в консоли. кроме браузера у меня остальное практически всё в консоли. управление и настройку всяких серверов по работе я тоже делаю вручную, в консоли. меня это не напрягает. если что-то сложное - пишу для себя howto в виде текстовых файликов. бывают задачи, которые делаешь раз в несколько лет. и вот чтобы вспомнить потом, что надо делать, удобно писать для себя напоминалки. утилиты для себя иногда пишу, но если что-то очень специфическое. чаще, когда надо сделать что-то оптимально быстро, например, а существующие реализации откровенно сливают по производительности.
хотя одно моё поделие было практически внедрено на одном предприятии: я сделала мета-язык для управления тестовыми стендами и интерпретатор к нему, чтобы быстро создавать тесты для электроники и харда. и это поделие освоили даже механики и стали использовать для своих нужд. кстати, именно для конечных юзеров там был прикручен графический интерфейс, который создавался из конфигов. то есть, визуальная часть сама собой получалась из настроек проекта. это был пример удачной автоматизации внутренних процессов разработки. но такие вещи писать довольно муторно и я её написала, потому что лет десять занималась тестированием и разработкой самого разнообразного харда и электроники и хотела просто упростить себе работу. с тех пор меня иногда посещали мысли о создании "универсального софта" для управления вообще чем угодно, но в целом эта задача нереализуема, именно из-за специфики.

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

@iron_bug спасибо за развернутый ответ :)

> с тех пор меня иногда посещали мысли о создании "универсального софта" для управления вообще чем угодно

Не ясно, вроде выше вы описали что решали конкрентую задачу производства, пусть и шире чем "написать мелкую утилиту". Теперь же "вообще чем угодно". Видимо надо где-то по середине решать. (это уже для себя говорю)

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

@iron_bug спасибо за развернутый ответ :)

> с тех пор меня иногда посещали мысли о создании "универсального софта" для управления вообще чем угодно

Не ясно, вроде выше вы описали что решали конкрентую задачу производства, пусть и шире чем "написать мелкую утилиту". Теперь же "вообще чем угодно". Видимо надо где-то по середине решать. (это уже для себя говорю)

Iron Bug
нет, жмакать шифт кучу раз ради непонятного эффекта я не хочу в принципе. к тому же, без больших букв текст читается лучше и быстрее: мозгу нужно меньще символов распознавать и глаза на скачут по этим ужасным CamelCase'ам. никогда не любила CamelCase и всегда придерживалась формата кода кернела. со временем прищла к выводу, что для поаышения читабельности текста тоже нужно убрать все явно ненужные заглавные букавы. для разделения предложений есть тчока и её достаточно. и шифт жмакать не нужно, читается гораздо приятнее и печатается в два раза быстрее.
нет, жмакать шифт кучу раз ради непонятного эффекта я не хочу в принципе. к тому же, без больших букв текст читается лучше и быстрее: мозгу нужно меньще символов распознавать и глаза на скачут по этим ужасным CamelCase'ам. никогда не любила CamelCase и всегда придерживалась формата кода кернела. со временем прищла к выводу, что для поаышения читабельности текста тоже нужно убрать все явно ненужные заглавные букавы. для разделения предложений есть тчока и её достаточно. и шифт жмакать не нужно, читается...
Iron Bug
мелкая оптимизация. но повышает читабельность и скорость печати.
Iron Bug
если ты много работал с кодом, то ты должен знать, что именно так.
Go Up