Size: a a a

Архитектура ИТ-решений

2021 July 12

PD

Phil Delgyado in Архитектура ИТ-решений
Ну и с микросервисами будет точно такая же беда, нет разницы.
источник

p

pragus in Архитектура ИТ-решений
Нет, потому что за бюджет не вылезти.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Это если у тебя есть бюджетирование вообще. Ну и если вылезли за бюджет - то функциональность отключается, система не работает.
Какая разница, произошло это в одном сервисе или в монолите, если результат одинаковый?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
На самом деле бюджетирование для монолита тоже делается, обычно через пулы тредов/соединений на модуль.
источник

p

pragus in Архитектура ИТ-решений
У тебя та часть что вышла за бюджет будет притормаживать(ну +алерт ответственному за это), а остальные части будут жить. В монолите у тебя эта часть просто сожрёт доступные ресурсы и пострадает вообще всё.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Это нужно очень конкретно писать сервисы и их взаимодействие, чтобы при выходе за бюджет было только притормаживание (а не остановка работы, например). Точно также можно решать задачи и в монолите.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну и, кстати, бюджетирование кто обеспечивает?
источник

p

pragus in Архитектура ИТ-решений
Это только I/O. А с cpu ты треды не прижмёшь, не положишь их в отдельную cgroup. И какой-нибудь буйный тред, что решит написать логов и дергать fsync на каждую запись не уложит тебе всё и вся.

Потому что сервис можно прижать по cpu, mem, сети и iops/bw к диску, а тред - нет.
источник

p

pragus in Архитектура ИТ-решений
В идеале - в описании сервиса для деплоя. В том же nomad ты описываешь сколько и чего отвесить сервису.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ограничение на треды, кстати, вполне работает, в чем проблема? Буйный тред начнет заниматься фигней, но потом процесс переключится на другой тред, делов-то. Ну и никто уже не пишет логи напрямую из кода, для этого есть логгеры разнообразные с тонкими настройками.
источник

p

pragus in Архитектура ИТ-решений
Так тебя тротлит ОС, когда выходишь за бюджет.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Если ты забил все соединения с БД, то сервис стоит. Вне зависимости от бюджета.
источник

p

pragus in Архитектура ИТ-решений
С чего бы переключится?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Тогда это не про микросервисы, а про конкретные оркестраторы
источник

p

pragus in Архитектура ИТ-решений
Это какие-то детские проблемы(а решаются всё так же лимитами).
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Все эти проблемы решаются в монолите точно так же.
Я за свою жизнь не разу не видел таких проблем в монолитах (и ни разу не слышал о таких проблемах у кого-то еще).
источник

p

pragus in Архитектура ИТ-решений
Ну k8s так же умеет. Фактически, это просто интерфейс к cgroups
источник

D

Danil in Архитектура ИТ-решений
да k8s не нужен. Это линукс из коробки умеет. Любой процесс можно без всяких оркестраторов ограничить. А вот тред нельзя
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну, микросервисы без оркестратора - это совсем тяжело.
источник

p

pragus in Архитектура ИТ-решений
Так как? Как выглядит бюджет по памяти для какой-то подсистемы в монолите?
источник