А зачем в проекте и gunicron, и uvicorn? Я понимаю, что у gunicorn есть возможность запуска async-бэкенда через uvicorn, но всегда считал этот механизм больше для какой-то обратной совместимости.
Вообще в 12factor рекомендуется масштабироваться именно контейнерами, а не процессами внутри. Но вы отбросили отказ от мультипроцессинга почти сразу. Можете подсказать на каких объёмах использование ресурсов становится нерациональным? Просто у меня буквально 16 воркеров, и не уверен, что в моём случае стоит усложнять внутреннюю реализацию, а не масштабироваться подами с одним процессом.
В любом случае спасибо за рисёрч - тема очень интересная.
А потом оглядываешься, а у тебя клстер k8s с 6 микросервисами, данных на 300Gb, фрезерный станок и пара десятков кило картона. Не то, чтобы это было необхоидмо для нумизматики, но если уж заниматься, то всерьёз.
Потому что docker будет следить за здоровьем процесса супервизора, а не вашего приложения, которое внутри ушло в вечный ребут. Такой контейнер будет здоровым, но бесполезным.
Ещё одна - особенность работы CFS. Когда количество потоков меньше лимитов, то могут быть ложные провалы хелсчеков. Например тому процессу, который обрабатывает хелсчек, просто не дали времени.
Собственно, вы правы. Изначально GraphQL был придуман в Facebook, чтобы меньше зависеть от бэкенда. Там же куча сервсов, а к каждому и не один запрос - вот и придумали гейтвей, на который можно было бы переложить эту сложность.
Обычно (кол-во слов) / (средняя скорость чтения). Например, про эту статью Хабр пишет 8 минут, но я проглядел и открыл интересные вкладки меньше, чем за минуту.
Простите, но вот выучит человек flask на базе своего pet-проекта и что? Его доля для прода падает с каждым днём. Почему бы не вложиться в тот же Django и показывать проект на собеседованиях?
Порог входа во Flask лишь в самом начале простой, подключение к бд уже проблема - приходится ещё 2 либы тащить. Что хуже - дальше встаёт вопрос какую из библиотек брать для тех же форм или API. В Django же есть как правило один официально рекомендуемый способ сделать что-то. Да, для прода не всегда подходящий, но новичку это знать и не надо.
Ну и про легковесность... Когда вы соберёте весь зоопарк, то не факт, что размер будет меньше.
Рекрутеры, может, и не откроют, но это отличная отправная точка для разговора. За 5-10 минут у любого проекта находятся места, о которых можно поговорить. Так что перед собеседованием я ставил DnD на 10 минут, чтобы успеть сделать чай и ознакомиться с резюме.
История с wsgi повторяется... может, и до pep на asgi договорятся.
Я так понимаю, что прод у вас в контейнерах. А почему бы тогда не запускать один процесс на контейнер и следить именно за ним? 12factor app предлагает делать именно так. Да и CFS будет понятнее работать.
Альтернативный вариант - переписать хелсчек таким образом, чтобы он проверял наличие процессов в поле.
Но это, конечно, как быстрое решение. Молодцы, что обновляетесь.
В подобной статье я уже задавал этот вопрос. tl;dr зависит от нагрузки.
Точно, спасибо за исправление. Теперь нашёл автора в списке редакторов.
P.S. А статья про yaml действительно хороша!
Прошу прощения, а как собирались топ-10 переводов? Мой перевод как работает ChatGPT набрал 248 лайков, а первая у вас в рейтинге 214.
Так lxml тоже на C/C++ написан.
Судя по населению Краснодара, данные за 2021 год.
А зачем в проекте и gunicron, и uvicorn? Я понимаю, что у gunicorn есть возможность запуска async-бэкенда через uvicorn, но всегда считал этот механизм больше для какой-то обратной совместимости.
Не смотрели в сторону UltraDict ? Он под капотом использует multiprocessing.shared_memory, т.е. как раз общую память для разных процессов.
Вообще в 12factor рекомендуется масштабироваться именно контейнерами, а не процессами внутри. Но вы отбросили отказ от мультипроцессинга почти сразу. Можете подсказать на каких объёмах использование ресурсов становится нерациональным? Просто у меня буквально 16 воркеров, и не уверен, что в моём случае стоит усложнять внутреннюю реализацию, а не масштабироваться подами с одним процессом.
В любом случае спасибо за рисёрч - тема очень интересная.
А потом оглядываешься, а у тебя клстер k8s с 6 микросервисами, данных на 300Gb, фрезерный станок и пара десятков кило картона. Не то, чтобы это было необхоидмо для нумизматики, но если уж заниматься, то всерьёз.
Есть повод запастись и потом продавать коллекционерам.
Потому что docker будет следить за здоровьем процесса супервизора, а не вашего приложения, которое внутри ушло в вечный ребут. Такой контейнер будет здоровым, но бесполезным.
Ещё одна - особенность работы CFS. Когда количество потоков меньше лимитов, то могут быть ложные провалы хелсчеков. Например тому процессу, который обрабатывает хелсчек, просто не дали времени.
Каждый день к девяти мне надо идти в магистрат... Не скажу, что это подвиг, но вообще что-то героическое в этом есть...
Имя аккаунта говорящее. Вот только тут даже сторис самого Хабра особо не прижились.
Вот да. А ещё одновременно делать небольшие фиксы, раскидывая их по разным листам изменений (changelist).
Пример с молоком показательный, что все врут (c) В описании 950г, а цена 99.90 за кг, а итоговая не пересчиталась. Но покупатель же не заметит...
Собственно, вы правы. Изначально GraphQL был придуман в Facebook, чтобы меньше зависеть от бэкенда. Там же куча сервсов, а к каждому и не один запрос - вот и придумали гейтвей, на который можно было бы переложить эту сложность.
Вы так акцентируетесь на IPv6, можете подсказать почему?
Обычно (кол-во слов) / (средняя скорость чтения). Например, про эту статью Хабр пишет 8 минут, но я проглядел и открыл интересные вкладки меньше, чем за минуту.
Простите, но вот выучит человек flask на базе своего pet-проекта и что? Его доля для прода падает с каждым днём. Почему бы не вложиться в тот же Django и показывать проект на собеседованиях?
Порог входа во Flask лишь в самом начале простой, подключение к бд уже проблема - приходится ещё 2 либы тащить. Что хуже - дальше встаёт вопрос какую из библиотек брать для тех же форм или API. В Django же есть как правило один официально рекомендуемый способ сделать что-то. Да, для прода не всегда подходящий, но новичку это знать и не надо.
Ну и про легковесность... Когда вы соберёте весь зоопарк, то не факт, что размер будет меньше.
Рекрутеры, может, и не откроют, но это отличная отправная точка для разговора. За 5-10 минут у любого проекта находятся места, о которых можно поговорить. Так что перед собеседованием я ставил DnD на 10 минут, чтобы успеть сделать чай и ознакомиться с резюме.
История с wsgi повторяется... может, и до pep на asgi договорятся.
Я так понимаю, что прод у вас в контейнерах. А почему бы тогда не запускать один процесс на контейнер и следить именно за ним? 12factor app предлагает делать именно так. Да и CFS будет понятнее работать.
Альтернативный вариант - переписать хелсчек таким образом, чтобы он проверял наличие процессов в поле.
Но это, конечно, как быстрое решение. Молодцы, что обновляетесь.
Как модемы всю ночь трещали, отдавая за битом биты...