172 похожих чатов

Ребята, привет. Подскажите хорошие книжки в которых подробно написано про

современные подходы управления конфигурацией приложений?

12factor, и прочие очевидные вещи не очень интересуют. Нужна глубокая конкретика на примерах с плюсами и минусами тех или иных подходов. С принципами знаком.

44 ответов

17 просмотров

12 factor apps, если еще не читал ссылка в мане у бота в канале.

Anton-Kucherov Автор вопроса
Vasiliy Romaneev
12 factor apps, если еще не читал ссылка в мане у ...

12factor, и прочие очевидные вещи не очень интересуют. Нужна глубокая конкретика на примерах с плюсами и минусами тех или иных подходов. С принципами знаком.

Дока CircleCI и Gitlab ? :)

Alexander
Дока CircleCI и Gitlab ? :)

и какое отношение оба инструмента имеют к конфигурированию приложений ?

Vasiliy Romaneev
и какое отношение оба инструмента имеют к конфигур...

А или по Ansible? :) При сборке докера все же конфигурируется немного?

Anton-Kucherov Автор вопроса
Alexander
Дока CircleCI и Gitlab ? :)

Она не отвечает на вопросы: - Где хранить кофнигурацию, - В каком виде хранить конфигурацию - Как доставлять конфигурацию на целевые узлы? - Как добавлять конфигурацию для новых приложений? и т.п.

Alexander
А или по Ansible? :) При сборке докера все же кон...

прочитай вопрос автора, плиз, чтобы не сыпать баззвордами. кубер вон человеку посоветуй, он же тоже "решает" вопрос "конфигурации" (нет)

it
Вы вообще не про то

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

Anton Kucherov
Она не отвечает на вопросы: - Где хранить кофнигур...

давай начнём сначала - а что именно ты хочешь ? виртуалки/докеры/кубернетисы/что-то еще ? в чём вопрос собственно ?

Anton-Kucherov Автор вопроса
Vasiliy Romaneev
прочитай вопрос автора, плиз, чтобы не сыпать базз...

Если натянуть сову на Кубер то мой вопрос скорее о том: - Ка потом весь этот YAML зоопарк менеджить. Хотя меня не конкретно Кубер интересует, а в целом, какие есть подходы, какие есть инструменты, их плюсы/минусы.

Anton-Kucherov Автор вопроса
Vasiliy Romaneev
давай начнём сначала - а что именно ты хочешь ? в...

Не принципиально. Есть набор бинарников. Хочу организовать менеджмент их конфигурации для разных сред чтобы: - Иметь возможность деплоить любую версию приложения подставляя ей ту конфигурацию которую хочется. При этом не трогая код и репозиторий с приложением. - Иметь возможность управлять конфигурацией приложений. При этом не трогая код и репозиторий с приложением.

Anton Kucherov
Если натянуть сову на Кубер то мой вопрос скорее о...

Книжку конкретную не подскажу. Ямлы в репах или репе: где-то целеесообразно хранить рядом с приложениями в их же репах, где-то создают монорепы со всеми приложениями. Всё это очень желательно в Helm. Где-то используются Hashicorp Vault для секретов, хорошая штука, рекомендую. Где-то добавляется Consul, тогда конфиги можно на лету оттуда подтягивать. Можно ещё в Gitlab variables хранить и разделять там окружения и права, тоже удобно. Но всё это меняется в зависимости от специфики компании, зрелости команды, специфики проектов. Можно завести себе отдельную репу для конфигураций.

Anton-Kucherov Автор вопроса
it
Книжку конкретную не подскажу. Ямлы в репах или ре...

Вот этот весь зоопарк я знаю. Думал может есть какие то уже сложившиеся подходы по организации самих репозиториев й Ямлами/конфигами или самих баз внутри Consul/Vault. Best Practices или кейсы каких-то компаний может. Прежде чем самому весь этот зоопарк заводить хочется ознакомится кто как это до меня уже делал и менеджил

Anton Kucherov
Если натянуть сову на Кубер то мой вопрос скорее о...

если затянуть сову в кубер - будет сова с автохилингом. хер знает чего это решает, но сова с автохилингом - заявка на инновацию. если же по вопросам: 0. Еще раз порекомендую 12 factor apps. Общий концепт - конфигурация отдельно, приложение отдельно. 1. Как потом весь этот YAML зоопарк менеджить. git 2. Хотя меня не конкретно Кубер интересует, а в целом, какие есть подходы, какие есть инструменты, их плюсы/минусы. отдельно хочу отметить решения по хранению секретов - vault. для всех инструментов выше альтернативы есть, но рекомендую начать с best praсtices инструментов, если будет неуютно - поищите альтернативы. еще в рекомендашке канала есть DevOps HandBook - оно именно рассказывает "как можно решать задачи", а не "каким инструментом".

Anton Kucherov
Не принципиально. Есть набор бинарников. Хочу орга...

окай. есть Configuration Management решения - ansible, salt если вопрос именно про конфиги - в gitlab есть environment если кубер - там весьма удобен helm очень важна специфика

Anton Kucherov
Вот этот весь зоопарк я знаю. Думал может есть как...

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

Anton-Kucherov Автор вопроса
Vasiliy Romaneev
если затянуть сову в кубер - будет сова с автохили...

> Общий концепт - конфигурация отдельно, приложение отдельно. Это ясно. В одном репе всю кофнигурацию или в разных репах? Если в разных по какому принципу? В чем плюсы/минусы? > 1. Как потом весь этот YAML зоопарк менеджить. git Принято. Кроме git получается других подходов нет?

Vasiliy Romaneev
окай. есть Configuration Management решения - ansi...

Человек не про софт спрашивает, а про принципы.

Anton Kucherov
> Общий концепт - конфигурация отдельно, приложени...

в любой системе контроля версий из альтернатив гиту - mercurial

Vasiliy Romaneev
окай. есть Configuration Management решения - ansi...

Кстати упоминали, что Ansible может перестать быть актуальным для облачных приложений, потому что все уходит в Кубер. И что я неправильно предложил выше? Дока по Gitlab + Ansible/Kuber ? :)

Anton Kucherov
> Общий концепт - конфигурация отдельно, приложени...

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

Anton Kucherov
> Общий концепт - конфигурация отдельно, приложени...

Бывает удобно хранить и в одной репе, т.к. деплоится это всё из разных папок и по only: changes и другим маскам. Версии конфигов фиксируются так же как и приложений: тегами, номерами релизов в файлах и т.п.

Alexander
Кстати упоминали, что Ansible может перестать быть...

Ansible это одно, Terraform то другое. Что же вы так на buzzword'ы эти реагируете? Для каждой задачи свой инструмент и Ansible вполне жив. Хотя если дело касается облачных провайдеров, то там большинство задач решается Terraform/Terragrunt

Anton-Kucherov Автор вопроса
Vasiliy Romaneev
это сильно зависит от специфики иногда удобно дела...

Предположим храним конфиги в отдельной репе. Сами приложения хранятся в отдельных репах. В таком случае пайплайн деплоя должен (по каким то параметрам) взять артефакты конфигурации (для соотв. приложения) а артефакты релиза (соотв приложения), слить их вместе и раскатать на целевые машины, правильно?

Anton Kucherov
Предположим храним конфиги в отдельной репе. Сами ...

можно и так сделать, как ты написал. можно раскидать их по разным environment, чтобы они отдельно хранились можно делать репку сделать зависимую история, чтобы где-то были маппинги - app_version, conf_version, env_name повторюсь - зависит от процесса разработки и задач, которые вы хотите решать. вот простой вопрос - в чём цель отделить конфиги от приложения ? ИБ, разделение доступов, ревность разрабов, что кто-то без ведома коммитит конфиги в мастер ?

Anton Kucherov
Предположим храним конфиги в отдельной репе. Сами ...

Часто куберу делается доступ к реестру контейнеров и в применяемой конфигурации helm указывается какую версию скачать и откуда взять конфиг.

Anton-Kucherov Автор вопроса
it
Примерно так да.

Спасибо. Остается вот такой еще конкретный вопрос. Допустим я хочу помеять конфиг (какие то в нем параметры) но оставить ту же версию приложения которая сейчас крутится (предположим v1.2.3). Как может выглядеть в таком случае пайплайн для обновления этого конфига, так чтобы приложение с ним перезапустилось или его подтянуло?

Anton Kucherov
Спасибо. Остается вот такой еще конкретный вопрос....

сколько версий конфигов у вас может одновременно крутится ? по одной на окружение ?

Anton Kucherov
Предположим храним конфиги в отдельной репе. Сами ...

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

Anton Kucherov
Спасибо. Остается вот такой еще конкретный вопрос....

Так у вас приложение, условно, контейнер с тем же тегом, а конфигурация другая накладывается. В идеале контейнер с dev до prod без изменений должен доезжать.

Vasiliy Romaneev
сколько версий конфигов у вас может одновременно к...

@antonikucherov если по одной версии конфигов на окружение - положите всё в vault и забирайте оттуда.

Aleksey Yasinskiy
вставлю свои 5 ком, у меня есть релизная репа в ко...

Деплоите latest в прод и меняете теги по пути от dev до prod? Это плохо

Aleksey Yasinskiy
вставлю свои 5 ком, у меня есть релизная репа в ко...

А как Compose совмещают с Кубером? Используют то и другое? Зачем Compose, если есть Кубер?

it
Деплоите latest в прод и меняете теги по пути от d...

в прод деплоим уже конкретные релизы без латест и остального, дев и мастер это у нас дев и тест)

Anton-Kucherov Автор вопроса
Vasiliy Romaneev
сколько версий конфигов у вас может одновременно к...

Один конфиг каждого приложения на каждое окружение. Окружений могут быть десятки (В каждом свои параметры для каждого приложения).

Alexander
А как Compose совмещают с Кубером? Используют то и...

у нас нет кубера в том сегменте о котором я говорю - только композерус

Anton Kucherov
Один конфиг каждого приложения на каждое окружение...

если у вас gitlab - то там есть специальная концепция - environment, в которую можно отдельные конфиги вписывать. минус - оно не версионируется можно загнать всё это в vault (если залеплоенные приложухи имеют доступ к общему волту) можно в ansible - там весьма хорошее разделение окружений, которое весьма понятно.

Vasiliy Romaneev
если у вас gitlab - то там есть специальная концеп...

Это можно версионировать если держать в отдельной репе и оттуда обновлять через api :) Про Gitlab

Vasiliy Romaneev
не надо этой чёрной магии.

С помощью api можно очень крутые решения строить, Gitlab это значительно больше, чем очередной cicd :)

it
С помощью api можно очень крутые решения строить, ...

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта