@ru_python

Страница 7298 из 9768
Viktor
05.12.2018
19:22:46


Винни
05.12.2018
19:23:04
' '.join(list)

можно и циклом, но нету смысола

Viktor
05.12.2018
19:24:30
разобрался, благодарю

Google
Nikolay
05.12.2018
19:24:50
не знаю

Винни
05.12.2018
19:24:57
Сергей
05.12.2018
19:26:24
' '.join(['a', 'b', 'c']) ты не про это?
У этого метода есть один недостаток - все элементы списка должны быть строкового типа. Есть альтернативный способ вывода списка без скобок и запятых: print(*list, sep=' ')

Вячеслав
05.12.2018
19:30:32
Всем доброго времени суток.

LighteR
05.12.2018
19:30:53
LighteR
05.12.2018
19:37:37
Да, запускаю
Ну я вот тоже. Но ведь те, кто считает, что должно быть один процесс - один контейнер, могу сказать: а запустите лучше n контейенров вместо n воркеров

и в целом я не могу сходу придумать аргументов против такого подхода кроме накладных расходов на мастер-процесс

Denis
05.12.2018
19:40:31
n воркеров это почти один процесс

LighteR
05.12.2018
19:41:31
n воркеров это почти один процесс
ну тогда тоже можно сказать и про supervisord запускающий uwsgi и nginx в одном контейнере

Google
Denis
05.12.2018
19:42:03
А вот это изврат

Кроме uwsgi, под ним могут быть другие контейнеры

Плюс перезапускать их отдельно ты не сможешь

LighteR
05.12.2018
19:42:56
А вот это изврат
ну не такая уж и большая разница если подумать

Плюс перезапускать их отдельно ты не сможешь
А зачем их отдельно перезапускать?

Denis
05.12.2018
19:45:01
А зачем их отдельно перезапускать?
Чтобы обновить код, например. Зачем для этого nginx ронять?

LighteR
05.12.2018
19:45:59
Чтобы обновить код, например. Зачем для этого nginx ронять?
Например конфиг nginx'а может поменять вместе с приложением

LighteR
05.12.2018
19:47:31
Есть reload
Я новый конфиг как должен попасить в контейнер с nginx'ом?

Denis
05.12.2018
19:47:48
LighteR
05.12.2018
19:48:09
нет, volume'ы для этого еще большее зло

как это версионировать?

Denis
05.12.2018
19:48:25
Пока не вижу минусов

А зачем конфиги на проде версионировать вместе с кодом? Админ при накатывании разберется

Они могут меняться по не зависящим от кода причинам, и что, коммитить все?

Denis
05.12.2018
19:50:02
конечно коммитить
Но не в репу с кодом

LighteR
05.12.2018
19:50:12
Но не в репу с кодом
Да, в репу с кодом

Denis
05.12.2018
19:50:18
Код для разработчиков, конфиги для админов

LighteR
05.12.2018
19:50:36
а Dockerfile тоже не в репе с кодом должен быть?

Google
Denis
05.12.2018
19:50:39
Зачем всем знать, по какому пути там сертификат лежит и какой там пароль от базы?

Dockerfile в репе, и он меняется только с кодом

LighteR
05.12.2018
19:51:09
Denis
05.12.2018
19:51:36
Я сейчас говорю про развертывание сайта

LighteR
05.12.2018
19:51:40
Dockerfile в репе, и он меняется только с кодом
Dockerfile это тоже по сути конфиг нужный только для деплоя

т.е. это часть эксплуатации

Denis
05.12.2018
19:51:52
Это совершенно другой конфиг

И он нужен в том числе для разработки

Возможно, другой, но все же

Деплоят иногда вообще без докера

LighteR
05.12.2018
19:53:03
Я сейчас говорю про развертывание сайта
Ну раз ты сказал про сертификаты. То ssl терминируется на балансировщиках, а они как правило существуют отдельно от веб-серверов, которые уже отдают приложение

LighteR
05.12.2018
19:54:21
у тебя за балансировщиками могут быть сотни различных приложений, каждому из которых нужны свои особенные конфигурации веб-сервера

ты же не будешь все это тащить на балансировщики?

Denis
05.12.2018
19:55:21
А зачем этим приложениям каждому по нгинксу? Сейчас все и так умеют http слушать

LighteR
05.12.2018
19:57:06
А зачем этим приложениям каждому по нгинксу? Сейчас все и так умеют http слушать
Навскидку: чтобы не парсить http чтобы раздавать статику

Denis
05.12.2018
19:58:01
Я сейчас не про огромные кластеры с тысячами микросервисов, а про стандартные сайты

Denis
05.12.2018
19:58:39
Там можно себе позволить из балансировщика сразу ходить куда надо

Alex
05.12.2018
19:58:45
и в целом я не могу сходу придумать аргументов против такого подхода кроме накладных расходов на мастер-процесс
проблема такого подхода в том, что балансировкой нагрузки управляет оркестратор кластера.

Google
LighteR
05.12.2018
19:58:46
можно

Denis
05.12.2018
19:58:48
А если два, что меняется?

Alex
05.12.2018
19:58:56
если я правильно понял о чем речь

Denis
05.12.2018
19:59:12
Начали за здравие, а закончили за хайлоад

LighteR
05.12.2018
20:00:10
А если два, что меняется?
А если два, то у тебя твой единственный nginx должен знать особенности каждого из приложений. А еще проблема с атомарностью возникает

у тебя приложение отдельно, nginx-конфиг отдельно

Admin
ERROR: S client not available

LighteR
05.12.2018
20:00:30
и нужно это все как-то синхронизировать

Denis
05.12.2018
20:01:16
А если два, то у тебя твой единственный nginx должен знать особенности каждого из приложений. А еще проблема с атомарностью возникает
Если там приложение поменялось настолько, что надо конфиги балансирлвщика менять, можно и что-нибудь придумать. Но часто можно накатить сначала одно, потом другое

LighteR
05.12.2018
20:02:00
проблема такого подхода в том, что балансировкой нагрузки управляет оркестратор кластера.
Ты сейчас про то, что 15 контейнеров с один воркером uwsgi эфеективнее, чем 5 контейнеров с 3 воркерами?

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

LighteR
05.12.2018
20:04:13
вручную синхронизировать изменения?

Denis
05.12.2018
20:04:31
Почему нельзя влиять на конфиг балансировщика

Alex
05.12.2018
20:04:59
Ты сейчас про то, что 15 контейнеров с один воркером uwsgi эфеективнее, чем 5 контейнеров с 3 воркерами?
я о том, что ты обычно делаешь количество воркеров в зависимости от количества CPU. в кластере ты не знаешь на какую ноду уедет твой контейнер \ на ноде может быть запущено несколько инстансов твоего контейнера.

LighteR
05.12.2018
20:05:16
Почему нельзя влиять на конфиг балансировщика
Ну примерно по тому же, почему не надо делать запросы в базу из шаблонов

это будет работать, но поддерживать и управлять этим будет сложно

LighteR
05.12.2018
20:09:29
я о том, что ты обычно делаешь количество воркеров в зависимости от количества CPU. в кластере ты не знаешь на какую ноду уедет твой контейнер \ на ноде может быть запущено несколько инстансов твоего контейнера.
Думаю, ты прав. Но скорее не из-за проблемы с cpu, а из-за того, что для того, чтобы эффективно балансировать трафик в контейнеры балансировщик (оркестратор) должен точно знать сколько воркеров запущено в контейнере

Google
Viktor
05.12.2018
20:09:51
Подскажите как удалить элементы строки зная номера их позиций?

LighteR
05.12.2018
20:09:55
чтобы не направлять туда лишние запросы и не создавать очередь запросов в самом контейнере

Скрудж
05.12.2018
20:10:15
Ребят, есть кто из геймдева? Мне очень сильно нужна ваша помощь. Отпишите в ЛС. Хочу в бота внедрить экономику, чтобы пользователь мог как-то зависать в игре, а не фигней страдать. Сорри за оффтоп

Alex
05.12.2018
20:10:46
лучше не удалять элементы строки а составить новую строку

Viktor
05.12.2018
20:12:12
строки immutable. str[:pos] + str[pos+1:]
но удалять возможно?

Alex
05.12.2018
20:12:40
Nikolay
05.12.2018
20:13:27
Viktor
05.12.2018
20:14:32
но удалять возможно?
это не удаление, а конкатенация двух срезов - прием, который выглядит как удаление

Sfy
05.12.2018
20:28:28
В PEP8 при переносе строк с операторами рекомендуют бинарный оператор переносить в начало новой строки. А что касается запятых? Не лучше ли их для видимости выносить на новую строчку?

LighteR
05.12.2018
20:28:48
Если админы общие, почему нет?
А еще в кластере одновременно могут работать разные версии одного и того же приложения. Как выходить из такой ситуации когда тебе нужно внести обратнонесомвестимые изменения в nginx-конфиг?

Sfy
05.12.2018
20:33:30
Ну вот например, к слову о leading comma vs trailing comma: / error in standard style var a = "ape", b = "bat", c = "cat", d = "dog" e = "elf", f = "fly", g = "gnu", h = "hat", i = "ibu"; // error in comma-first style var a = "ape" , b = "bat" , c = "cat" , d = "dog" e = "elf" , f = "fly" , g = "gnu" , h = "hat" , i = "ibu";

Это не Python, но идея понятна.

А в PEP8 я не нашёл, что leading comma — плохо.

Alex
05.12.2018
20:34:23
Нет, это уродство

Страница 7298 из 9768