Size: a a a

2019 October 30

SE

Stanislav V. Emets in DevOps Moscow
Oleg Soroka
Задача была "обеспечить идемпотентность билдов", насколько я помню. Гипотеза, что для этого надо " тегать версии одного и того же бинаря" - кажется неверной с точность до наоборот.
ну название одно и тоже, я не хочу давать имена тиам my-tool-1.1 или my-tool-1.2 я хочу его извлекать одной командой типа get-binar —ver=1.1
источник

OS

Oleg Soroka in DevOps Moscow
Если эти метаданные нужно велосипедить - то это в любом случае какой-то говноскрипт, а значит и система хранения может быть практически любой, это влияет на оду-две строчки в говноскрипте и ничего принципиально не меняет.
источник

SE

Stanislav V. Emets in DevOps Moscow
Oleg Soroka
Если эти метаданные нужно велосипедить - то это в любом случае какой-то говноскрипт, а значит и система хранения может быть практически любой, это влияет на оду-две строчки в говноскрипте и ничего принципиально не меняет.
я спросил как раз нет ли готового велосипеда
источник

OS

Oleg Soroka in DevOps Moscow
Ты не можешь восстановить что-то в прошлом на произвольный момент времени и не использовать тайпштамп.
Если ты его по-любому используешь, то это и есть "ключ" - а "значение" можно извлекать откуда угодно. Бакет это с именем ключа, папка на диске, имя архива - вообще пофиг.
источник

SE

Stanislav V. Emets in DevOps Moscow
как положить в webdav или аналоги я знаю, вопрос как не городить самому.
источник

OS

Oleg Soroka in DevOps Moscow
Если коротко - то никак, ибо на практике, в общем случае, тебе не хватит метаданных из какой-то единственной системы.
источник

OS

Oleg Soroka in DevOps Moscow
Например, если аудитор попросит "восстановить код, который бежал на проде 1 апреля 2017 года" - то мало иметь помойку снепшотов бинарей. Нужна информация, а деплоилось ли это на  прод и успешно ли. Были ли всего один билд или несколько. Деплоился ли сегодняшний билд или недельной давности - и т.д.
источник

OS

Oleg Soroka in DevOps Moscow
Главное в этом всём - нормальная модель и сохранность метаданных. А уж как по готовым метаданным пачку бинарей складировать - тут вариантов 10 с ходу, и все примерно равнозначны.
источник

OS

Oleg Soroka in DevOps Moscow
Бакапы (включая инкрементальные), файловые системы со снепшотами (ZFS-like), докер имиджы (у которых под капотом тоже что-то типа layered filesystem), бакеты S3, решения по дедупликации, git lfs, артифактори и аналоги... Дело вкуса.
источник

SE

Stanislav V. Emets in DevOps Moscow
Oleg Soroka
Например, если аудитор попросит "восстановить код, который бежал на проде 1 апреля 2017 года" - то мало иметь помойку снепшотов бинарей. Нужна информация, а деплоилось ли это на  прод и успешно ли. Были ли всего один билд или несколько. Деплоился ли сегодняшний билд или недельной давности - и т.д.
ну мне исключительно для утилитарности, я бы не заморачивался, если бы до меня тут образа докера как-то планомерно делали, хотя-бы не разводили зоопарк осей, просто паковал бы в пакеты для ОС и в ус не дул, но беда в том, что в один залез образ там alpine, во второй, там бубунта, третий на centos базируется. 😞 а некоторые вещи могут и в альпайне использоваться и в центосе 😞
источник

OS

Oleg Soroka in DevOps Moscow
И как этому поможет, скажем, артифактори? Отпиздит тех, кто alpine принёс?
источник

OS

Oleg Soroka in DevOps Moscow
Вот и выходит, что приходишь ты с вопросом про "версионирование" (что бы это не значило в твоих фантазиях), а на деле надо бейсбольную биту спрашивать.
источник

OS

Oleg Soroka in DevOps Moscow
Добавь в CI/CD-пайплайн проверку на то, что имиджи берутся ТОЛЬКО из приватного регистри, можно систему сборки даже анально огородить от остального. История изменений регистри и аудит будут на уровне второго пайплана, посвящённого исключительно сборке "имиджей для сборок".
источник

OS

Oleg Soroka in DevOps Moscow
Для этого должны действовать правила: 1) никаких ручных пушей мимо пайплайнов 2) никаких внешних имиджей 3) а то отпизжу битой
источник

OS

Oleg Soroka in DevOps Moscow
Поннятия "артифакт" и "кеш" встроены в тот же GitLab, например, под капотом как раз zip-файлы, в имя которых можно и хеш комита и дату и номер билда закодировать.
источник

PA

Petr Antonov in DevOps Moscow
Gleb Mekhrenin
в s3 есть версионирование, только надо понимать что s3 на планете один - это amazon s3, все остальное s3 like и зависит от конкретной реализации
вроде есть у цепха
источник

PA

Petr Antonov in DevOps Moscow
источник

SE

Stanislav V. Emets in DevOps Moscow
Oleg Soroka
Добавь в CI/CD-пайплайн проверку на то, что имиджи берутся ТОЛЬКО из приватного регистри, можно систему сборки даже анально огородить от остального. История изменений регистри и аудит будут на уровне второго пайплана, посвящённого исключительно сборке "имиджей для сборок".
Я бы рад, но когда я увидел, что почти все с докерхаба берется и спросил, смотрю вы рисковые парни, то народ не оценил шутку 😞. Понятно, что в идеале сделать свои базовые имаджи и в ус не дуть, но процесс долгий, и скорее всего по этому пути и пойдем. А там тогда и можно репо для ОС свое сделать и пакетировать свое барахлишко.
источник

OS

Oleg Soroka in DevOps Moscow
Чем долгий-то?
источник

OS

Oleg Soroka in DevOps Moscow
На докерхабе для 98% имиджей указана репа на гитхабе, из которой стоится имидж.
Клонировать одну репу - 5 секунд даже руками.
Можно даже автоматизировать.
источник