Aleksey
пролема интересная да.
Aleksey
давай целиком.
Aleksey
есть задача дать клиенту приложение. само приложение опенсорс. приложение по тз должно работать примерно на 40 серверах. надо приложение обновлять. довольно часто. сама процедура обновления не всегда простая. но довольно часто сводится к притащи бинари пусти мигацию базы приложение дожно работать в защищенном периметре. доступа из него нету. доступ в туда есть через ремоут десктоп. мышка в руках заказчика. :)
Aleksey
вот наверное полный вариант
Dmitry
Да, все ясно теперь
Aleksey
это базовая вводная :) думаю что от нее будут какие то отклонения но пока так вот
Dmitry
Вообще, общая задача заслуживает общего решения, типа софт для доставки софта в периметры.
Dmitry
Я уже придумал название. Smuggler
Dmitry
Как насчет виртуалки virtualbox или vmware, со всеми обновлениями (упаковано в мирУ). Мы ее копируем на комп ответственного лица. Там докер регистри с мини докерхабом. Там же ansible tower или awx. Все сделано красиво, заказчик видит и понимает все действия.
Aleksey
да. сейчас так первая партия и приехала
Aleksey
в виде ova файла
Aleksey
ибо там конечно со сторны заказчика esxi
Dmitry
Плюс в том, что это хорошо можно протестировать и отточить... Было бы круто научиться генерировать ova сервер с полным пакетом нужного софта...
Aleksey
деплой золотыми образами старая тема, но довольно толстая
Dmitry
ну это не совсем так. деплоится не ova а то что на нем. ansible (docker|snaps|rpm) + маленькая копия интернета
Dmitry
а ova приходит на флешке по почте или еще как.
Dmitry
плюс можно отточить до того, что они сами будут деплои делать) пришла флешка, вставили, нажали кнопочку. (с мерами предосторожностями, тестами, откатами итд).
Dmitry
но деплой по почте это конечно жесть))
Sergey
деплой золотыми образами старая тема, но довольно толстая
Видал я и такое - когда есть ami амазонский, и при этом все на него боятся дышать (вдруг протеряется?), и понятия никто не имеет, как эту дрянь воссоздать (=просраны/никогда не написаны доки).
Aleksey
ова создан пакером конечно
Dmitry
ова создан пакером конечно
Ну это ова самого приложения, да? не системы для его деплоя
Aleksey
сразу всё.
Dmitry
Кстати... есть ли возможность делать инкрементный апдейт ova... Если так, то вообще прекрасно, заливаем новые имиджи докера в инкрементную часть и шлем по почте на комп контроллера
Aleksey
не
Aleksey
инкрементальный апдейты ova это bindiff
Aleksey
это явно не улучшает задачу
Sergey
Ну тут другое, ova создан повторяемыми методами
Тогда всё просто, да. Однако я согласен с тем, что разработка для защищаемых периметров - боль.
Aleksey
ну снап выглядит огонь
Sergey
ну снап выглядит огонь
это чтобы rpm/deb не готовить?
Dmitry
Когда я был в софтовой конторе основным средством доставки был ova... но там релизы раз в квартал.
Dmitry
@freeseacher У них там нет никакой другой централизованной системы обновления? например свои rpm/deb?
Dmitry
ведь можно было бы просто синхронизировать пакеты туда
Dmitry
вот прям я чувствую запахи red hat, sattelite и типа того
Dmitry
или как там оно называется)
Aleksey
это чтобы rpm/deb не готовить?
что бы не готовить их. ибо 25 микросервисов да. 4 базы. консул, мемкеш, питона много и патчинг пакетов из pip
Dmitry
и на 25 не существует опенсорсных готовых пакетов?
Dmitry
просто если больше 50% уже есть в мирУ, почему бы не сделать виртуальный пакет, а остальные сделать. (один раз настороить сборку через тот же fpm или по-старинке). и синхронизировать
Dmitry
Или еще конфигурация на всем этом?
Aleksey
конфигурация в консуле же
Aleksey
и будет 35 :)
Dmitry
Когда вырасту - напишу книгу "Микросервисы для периметра"
Sergey
что бы не готовить их. ибо 25 микросервисов да. 4 базы. консул, мемкеш, питона много и патчинг пакетов из pip
ок, 25 пакетов. что там с базами? бОльшая часть всей этой дряни уже опакечена.
Aleksey
да базы опакечены.
Aleksey
кликхаус, монга, постгрес уже да
Aleksey
а вот очереди нет.
Aleksey
nsqd
Aleksey
там конечно гобирарники
Dmitry
зато есть докер)
Dmitry
я вот прямо не могу отказаться от этого пути, ибо все упроститься если организовать доставку образов.
Sergey
У меня сервисы на питоне. Для нового сервиса я тупо копирую spec-файл с миимальными правками, на выходе получаю rpm, который автомагически учитывает версию, релиз, суффикс, что-то там ещё, и внутри venv питона с приложением (при этом то, что относится к shared-части venv, на всех хостах одинаково).
Aleksey
ты пакетишь готовый venv ?
Dmitry
я вот это часто юзал. https://github.com/jordansissel/fpm Оно достаточно умное
Dmitry
https://github.com/jordansissel/fpm/blob/master/examples/python/twisted/Makefile
Dmitry
Если отклонения от того что делает нужны, то да. Меня устраивал
Aleksey
для гобинарей fpm рулит
Sergey
Смотря что нужно. На хабре я писал про свой Python-скрипт, который поддерживает rpm-репу. В итоге дженкинс тупо курлом загружает пакеты, этот скрипт их принимает, раскладывает и умно запускает createrepo для обновления метаданных в репе.
Sergey
я вот это часто юзал. https://github.com/jordansissel/fpm Оно достаточно умное
Это прямо суровая срань на рубях. Для простых вещей, которые нужно опакетить, я использую checkinstall.
Dmitry
Это прямо суровая срань на рубях. Для простых вещей, которые нужно опакетить, я использую checkinstall.
Зато когда мне надо было создать пакет для соляриса оно мне помогло)
Dmitry
Оно не для deb разве?
Dmitry
а не)
Sergey
не только
Sergey
что попросишь
Sergey
то и будет
Dmitry
slackware, rpm, debian. вроде все
Dmitry
а тот умеет deb rpm solaris freebsd tar directories Mac OS X .pkg files (osxpkg) pacman (ArchLinux) packages
Sergey
а этого мало, что ли? одна пара deb/rpm покроет бОльшую часть продакшнов. tar, положим, не формат пакета, да и directories тоже.
Dmitry
Ну мне надо было реально быстро запилить pkg для opensolaris
Dmitry
потом все равно пришлось пилить свой билд для родной системы
Sergey
Ну мне надо было реально быстро запилить pkg для opensolaris
Ну ок, если ты нашёл инструмент, который решил твою конкретную задачу - это лично тебе плюс, а не плюс инструменту.
Dmitry
как и руби, для грязных пакетиков "на щас" оно норм.
Dmitry
А остальное - родные системы надо ковырять имхо.
Sergey
Согласен с обоими утверждениями.
Dmitry
не топлю за него, но если устраивает результат то вполне.
Dmitry
тебя и меня не устраивает в проде)