Size: a a a

2020 September 14

I

Igor in ErlangRus
Sergey Prokhorov
Кстати, я вот че вспомнил… Я на CodeBeam спрашивал не планируют ли перерабатывать систему конфигурации релизов (чтоб была альтернатива sys.config). Они сказали что как раз сейчас планируют начать этим заниматься, но им очень нужно собрать пожелания / требования от сообщества.
Может у кого есть какие-то идеи на этот счёт? Меня sys.config раздражает, но вот как должно быть, чтоб не раздражало, я лично не знаю.
иногда полезно указать что "ваша система раздражает, а вот эта - нет". Это не супер конструктивно, но хотя бы даёт направление
источник

SY

Sergey Yelin in ErlangRus
Sergey Prokhorov
Кстати, я вот че вспомнил… Я на CodeBeam спрашивал не планируют ли перерабатывать систему конфигурации релизов (чтоб была альтернатива sys.config). Они сказали что как раз сейчас планируют начать этим заниматься, но им очень нужно собрать пожелания / требования от сообщества.
Может у кого есть какие-то идеи на этот счёт? Меня sys.config раздражает, но вот как должно быть, чтоб не раздражало, я лично не знаю.
Возможность указать формат через флаг для виртуальной машины. Точнее даже не формат, а модуль, который будет парсить конфиг и сетапить приложухи. 🤔

А для фидбэка формат растовских ежегодных опросов кажется подошел бы и для эрланг сообщества
источник

ИИ

Иванов Иванов... in ErlangRus
Sergey Prokhorov
ещё скриптами не очень удобно их генерить. например в ansible используются jinja2 шаблоны. В jinja2 используются конструкции типа {{ var }} и {% for i in list %} которые в перемешку с эрланговыми таплами, мапами и комментами превращаются в кашу. Опять же из за запрета висящих запятых приходится городить
    [{% for domain in domains %}
    <<"{{ domain.domain }}">>{{ "," if not loop.last else ""}}
    {% endfor %}]},

вот этот {{ "," if not loop.last else ""}}
лишний if действительно раздражает
источник

วโ

วลาดิสลาว โควาเลนโก🐝... in ErlangRus
Sergey Prokhorov
Кстати, я вот че вспомнил… Я на CodeBeam спрашивал не планируют ли перерабатывать систему конфигурации релизов (чтоб была альтернатива sys.config). Они сказали что как раз сейчас планируют начать этим заниматься, но им очень нужно собрать пожелания / требования от сообщества.
Может у кого есть какие-то идеи на этот счёт? Меня sys.config раздражает, но вот как должно быть, чтоб не раздражало, я лично не знаю.
А можно их попросить поддержать анонимки в конфиге релиза?
источник

ML

Maksim Lapshin in ErlangRus
Lama Lover
А что в sys.config не нравится?
в sys.config плохо примерно всё =)

Например, его невозможно сгенерировать ансиблом
источник

ML

Maksim Lapshin in ErlangRus
во-вторых, в sys.config обычно лежат настройки, которые положил _программист_ для того, чтобы софт работал.

А куда класть настройки _админу_, который запускает это на продакшне? Нельзя совмещать это, потому что sys.config становится частью _софта_ и грубо говоря лежит на readonly squashfs разделе
источник

AK

Aleksey Kluchnikov in ErlangRus
Поэтому можно решить все некой конф либой
источник

A

Alexey in ErlangRus
Maksim Lapshin
во-вторых, в sys.config обычно лежат настройки, которые положил _программист_ для того, чтобы софт работал.

А куда класть настройки _админу_, который запускает это на продакшне? Нельзя совмещать это, потому что sys.config становится частью _софта_ и грубо говоря лежит на readonly squashfs разделе
include в sys.config то что для админа?
источник

ИИ

Иванов Иванов... in ErlangRus
Maksim Lapshin
во-вторых, в sys.config обычно лежат настройки, которые положил _программист_ для того, чтобы софт работал.

А куда класть настройки _админу_, который запускает это на продакшне? Нельзя совмещать это, потому что sys.config становится частью _софта_ и грубо говоря лежит на readonly squashfs разделе
ну, это решается двумя раздельными конфигами -config readonly -config user
источник

ML

Maksim Lapshin in ErlangRus
Иванов Иванов
ну, это решается двумя раздельными конфигами -config readonly -config user
если user.config отсутствует, оно запустится?
источник

ИИ

Иванов Иванов... in ErlangRus
Maksim Lapshin
если user.config отсутствует, оно запустится?
неа
источник

AK

Aleksey Kluchnikov in ErlangRus
Źmićer Rubinštejn
Ага, спасибо. Осталось тока понять не завели ли уже такую
23.0.3-1 матчится коректно
источник

ИИ

Иванов Иванов... in ErlangRus
ну понятно что релизиться и конфигурироваться на erlang хлопотно, несмотря на множество дырок куда подлезть можно
источник

ML

Maksim Lapshin in ErlangRus
а в современных линуксах, спасибо Поттерингу, нет возможности просигнализировать о неготовности программы работать по каким-то причинам.

Т.е. единственный способ — запуститься и по апи как-то рапортовать, что на самом деле запуска то не было
источник

ML

Maksim Lapshin in ErlangRus
пошли дальше, проблемы уже сильно выше уровнем.

Сейчас дропбокс готовит подробный рассказ о том, почему они ушли с nginx внутри и перешли на envoy

По сути у них nginx как и у многих превратился в транспорт для апи, т.е. этаки корба-транспорт.

И тут они поняли, что с ним жить не могут, потому что:

1) конфиг очень хлопотно сгенерировать. Фактически нужно иметь свой собственный парсер-валидатор, который будет проверять, чего там навалидировано

2) вообще нет апи. Нельзя сказать «добавь этот бекенд сюда».
источник

ИИ

Иванов Иванов... in ErlangRus
Maksim Lapshin
а в современных линуксах, спасибо Поттерингу, нет возможности просигнализировать о неготовности программы работать по каким-то причинам.

Т.е. единственный способ — запуститься и по апи как-то рапортовать, что на самом деле запуска то не было
ты про юниты в системd ? так то не совсем понятно как одно с другим связано
источник

AK

Aleksey Kluchnikov in ErlangRus
а в комерческой версии нжинкс получается мышей не ловят
источник

ИИ

Иванов Иванов... in ErlangRus
Maksim Lapshin
пошли дальше, проблемы уже сильно выше уровнем.

Сейчас дропбокс готовит подробный рассказ о том, почему они ушли с nginx внутри и перешли на envoy

По сути у них nginx как и у многих превратился в транспорт для апи, т.е. этаки корба-транспорт.

И тут они поняли, что с ним жить не могут, потому что:

1) конфиг очень хлопотно сгенерировать. Фактически нужно иметь свой собственный парсер-валидатор, который будет проверять, чего там навалидировано

2) вообще нет апи. Нельзя сказать «добавь этот бекенд сюда».
насчет 2) они там навояли nginx unit там как раз всё по api  у них делаелся (сам не пробовал если что)
источник

ML

Maksim Lapshin in ErlangRus
Иванов Иванов
ты про юниты в системd ? так то не совсем понятно как одно с другим связано
да везде. Хоть в systemd, хоть где ещё.

Нет стандартного способа сказать: я не готов работать, потому что у меня нет конфига
источник

ML

Maksim Lapshin in ErlangRus
а с реконфигурированием на лету в эрланге есть ооочень много вопросов, причем они очень глубокие.

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

Т.е. вот это распространение изменений вызывает вопросы и сложности.

И если софт заточен на то же использование sys.config, как _конфигурации_, то вопрос: как будем реконфигурироваться?
источник