Настроить инфраструктуру .Net Core - какой спец?
От: Shmj Ниоткуда  
Дата: 28.01.22 08:41
Оценка: :)
Такой вопрос.

Допустим, нужен некий сайт — каталог товаров. Товаров 1 миллион. Нужен быстрый поиск по ряду параметров (около 40, но отличается для разных категорий).

Нужно чтобы пользователей в пике было — 20 тыс. чел. в секунду, чтобы держало. Т.е. 20 тыс. запросов в секунду. Это не значит что постоянно такая нагрузка — но нужно чтобы держало в пике.

Пожелания:

1. Не использовать дорогостоящего ПО. К примеру, СУБД желательно бесплатная.
2. Чтобы автоматически масштабировалось. К примеру, k8s в облаке.
3. Рекомендации по технологиям разработчикам, чтобы не тащили по 20 мегабайт скриптов и не использовали тормознутые решения (к примеру, разрешить ли использовать EF).

Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку? Насколько редко встречается?
Re: Настроить инфраструктуру .Net Core - какой спец?
От: vaa  
Дата: 28.01.22 08:47
Оценка: +1 :)
Здравствуйте, Shmj, Вы писали:
S>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку? Насколько редко встречается?
Программист. Исчезающий вид.

https://www.nopcommerce.com/ru/
☭ ✊ В мире нет ничего, кроме движущейся материи.
Отредактировано 28.01.2022 8:48 Разраб . Предыдущая версия .
Re[2]: Настроить инфраструктуру .Net Core - какой спец?
От: Shmj Ниоткуда  
Дата: 28.01.22 09:01
Оценка:
Здравствуйте, vaa, Вы писали:

S>>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку? Насколько редко встречается?

vaa>Программист. Исчезающий вид.

Сейчас сегрегация весьма усилилась — не бывает такого человека просто "программист". Всегда есть специализация, обычно достаточно узкая.

vaa>https://www.nopcommerce.com/ru/


Это что вы даете? Сколько запросов в секунду гарантируется?
Re[3]: Настроить инфраструктуру .Net Core - какой спец?
От: vaa  
Дата: 28.01.22 09:03
Оценка:
Здравствуйте, Shmj, Вы писали:

vaa>>https://www.nopcommerce.com/ru/


S>Это что вы даете? Сколько запросов в секунду гарантируется?


20К. Если железо позволяет.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Настроить инфраструктуру .Net Core - какой спец?
От: vaa  
Дата: 28.01.22 09:09
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Нужно чтобы пользователей в пике было — 20 тыс. чел. в секунду, чтобы держало. Т.е. 20 тыс. запросов в секунду. Это не значит что постоянно такая нагрузка — но нужно чтобы держало в пике.


https://habr.com/ru/post/303590/

D при keepalive до 60K держит. правда не чел. а запросов
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Настроить инфраструктуру .Net Core - какой спец?
От: Shmj Ниоткуда  
Дата: 28.01.22 09:10
Оценка:
Здравствуйте, vaa, Вы писали:

S>>Это что вы даете? Сколько запросов в секунду гарантируется?

vaa>20К. Если железо позволяет.

И какое железо нужно для 20 k? Сколько серверов и т.д. Какая СУБД? Как настроить СУБД, нужен ли кластер и из скольки машин?
Re[5]: Настроить инфраструктуру .Net Core - какой спец?
От: vaa  
Дата: 28.01.22 09:11
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, vaa, Вы писали:


S>>>Это что вы даете? Сколько запросов в секунду гарантируется?

vaa>>20К. Если железо позволяет.

S>И какое железо нужно для 20 k? Сколько серверов и т.д. Какая СУБД? Как настроить СУБД, нужен ли кластер и из скольки машин?


Если vibe.d то машины разработчика за глаза.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Настроить инфраструктуру .Net Core - какой спец?
От: RushDevion Россия  
Дата: 28.01.22 09:11
Оценка:
S>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку?

Либо профи, который ранее успешно решал ровно такую же задачу, либо большой оптимист

Из текущей постановки очевидно, что все упрется в производительность/масштабируемость хранилища.
Т.к. APi-шка поиска будет stateless и, соответственно, сможет без проблем масштабироваться горизонтально.
Поэтому и профи в первую очередь нужен именно в области хранилищ.
Отредактировано 28.01.2022 9:16 RushDevion . Предыдущая версия . Еще …
Отредактировано 28.01.2022 9:15 RushDevion . Предыдущая версия .
Отредактировано 28.01.2022 9:15 RushDevion . Предыдущая версия .
Re: Настроить инфраструктуру .Net Core - какой спец?
От: vaa  
Дата: 28.01.22 09:18
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Как называется чел.?

Anton Moldovan (@AntyaDev)
https://nbomber.com/blog
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Настроить инфраструктуру .Net Core - какой спец?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.01.22 09:29
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>https://habr.com/ru/post/303590/


vaa>D при keepalive до 60K держит. правда не чел. а запросов

А где сравнение с ASP.NET Core 6?
https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-6/
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.01.2022 9:54 Serginio1 . Предыдущая версия .
Re[3]: Настроить инфраструктуру .Net Core - какой спец?
От: Muxa  
Дата: 28.01.22 10:14
Оценка:
S>>>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку? Насколько редко встречается?
vaa>>Программист. Исчезающий вид.
S>Сейчас сегрегация весьма усилилась — не бывает такого человека просто "программист". Всегда есть специализация, обычно достаточно узкая.

Программист с опытом highload и .NET?
Re: Настроить инфраструктуру .Net Core - какой спец?
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.01.22 12:33
Оценка:
Здравствуйте, Shmj, Вы писали:
S>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку?
Девопёс, нет?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Настроить инфраструктуру .Net Core - какой спец?
От: Vladek Россия Github
Дата: 30.01.22 17:37
Оценка: 10 (1)
Здравствуйте, Shmj, Вы писали:

S>Такой вопрос.


S>Допустим, нужен некий сайт — каталог товаров. Товаров 1 миллион. Нужен быстрый поиск по ряду параметров (около 40, но отличается для разных категорий).


S>Нужно чтобы пользователей в пике было — 20 тыс. чел. в секунду, чтобы держало. Т.е. 20 тыс. запросов в секунду. Это не значит что постоянно такая нагрузка — но нужно чтобы держало в пике.


S>Пожелания:


S>1. Не использовать дорогостоящего ПО. К примеру, СУБД желательно бесплатная.

S>2. Чтобы автоматически масштабировалось. К примеру, k8s в облаке.
S>3. Рекомендации по технологиям разработчикам, чтобы не тащили по 20 мегабайт скриптов и не использовали тормознутые решения (к примеру, разрешить ли использовать EF).

S>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку? Насколько редко встречается?


Человек находится на сайте магазина, если он делает хотя бы один клик в минуту. 20000 кликов за 60 секунд — это 333 запроса в секунду. По 3 миллисекунды процессорного времени на 1 запрос.

А вот 20000 запросов в секунду — это 1200000 одновременных пользовательских сессий. По 50000 наносекунд на запрос.

Теперь возвращаемся в реальность, нет никакого миллиона посетителей в любой момент на сайте — запросы выполняются медленно, железо не ахти какое, код ужасный. Пусть один запрос выполняется в 200 раз медленнее (600 мс на 1 запрос), а процессоров (ядер) у нас аж 2 — получится примерно 3 запроса в секунду. Это всего 200 одновременных посетителей. И сайт будет всё равно медленный.

Вам нужен (помимо учителя арифметики) человек, который сможет сделать время на запросы очень коротким. Ещё нужно хорошее железо.
Отредактировано 30.01.2022 17:40 Vladek . Предыдущая версия .
Re[2]: Настроить инфраструктуру .Net Core - какой спец?
От: Shmj Ниоткуда  
Дата: 30.01.22 23:33
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Теперь возвращаемся в реальность, нет никакого миллиона посетителей в любой момент на сайте — запросы выполняются медленно, железо не ахти какое, код ужасный. Пусть один запрос выполняется в 200 раз медленнее (600 мс на 1 запрос), а процессоров (ядер) у нас аж 2 — получится примерно 3 запроса в секунду. Это всего 200 одновременных посетителей. И сайт будет всё равно медленный.


Ну это смотря какой сайт — вот взять сайт того же вконтакта? Или некоторых популярных магазинов в момент распродаж.

Вы рассматриваете только одно-серверную архитектуру — а ведь сейчас все через k8s.
Re: Настроить инфраструктуру .Net Core - какой спец?
От: VladiCh  
Дата: 31.01.22 07:02
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Такой вопрос.


S>Допустим, нужен некий сайт — каталог товаров. Товаров 1 миллион. Нужен быстрый поиск по ряду параметров (около 40, но отличается для разных категорий).


S>Нужно чтобы пользователей в пике было — 20 тыс. чел. в секунду, чтобы держало. Т.е. 20 тыс. запросов в секунду. Это не значит что постоянно такая нагрузка — но нужно чтобы держало в пике.


S>Пожелания:


S>1. Не использовать дорогостоящего ПО. К примеру, СУБД желательно бесплатная.

S>2. Чтобы автоматически масштабировалось. К примеру, k8s в облаке.
S>3. Рекомендации по технологиям разработчикам, чтобы не тащили по 20 мегабайт скриптов и не использовали тормознутые решения (к примеру, разрешить ли использовать EF).

S>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку? Насколько редко встречается?


Как выше тут сказали, 20 тыс чел и 20 тыс запросов в секунду — это сильно разные вещи.
20 тыс человек это будет наверное единицы тысяч запросов в секунду. Хотя может быть и больше, зависит от того как этот каталог написан.
Но пусть будет 20 тыс запросов в секунду. Миллион товаров — это ни о чем размер, практически на любом адекватном сервере БД
полностью все данные и индексы будут закешированы, то есть это фактически in-memory база данных.
Возьмем скажем Postgres, как широко распространенный open-source вариант.
При адекватно оптимизированных запросах, одна нода типа амазоновской c5.12xlarge должна потянуть трафик.
Это так, грубая прикидка судя по в чем-то аналогичному по трафику проекту которым я недавно занимался.
Количество памяти там будет избыточным скорее всего, количество ядер важно, плюс может быть ширина сетевого канала,
но это зависит от конкретных данных которые будут гоняться.
Можно вместо одной большой ноды сделать несколько маленьких с master->slave репликацией,
будет плюс-минус то же самое, но более отказоустойчивое.
С автоматическим масштабированием сложнее. Самому колхозить такое на реляционной БД, да и на нереляционной не будет особо надежным.
Лучше взять готовый клаудный сервис, их масса, на aws или azure или google cloud.
Если нужно в России то и Яндекс вроде что-то такое дает, но я не в курсе деталей.
Как-то так.
Челов таких куча, которые такое могут "настроить". Хотя там конечно вопрос не столько в настройке, сколько в разработке и оптимизации этого всего.
Но они обычно уже чем-то интересным заняты и делать какой-то непонятный каталог товаров непонятно где им вряд ли будет интересно.
Re[2]: Настроить инфраструктуру .Net Core - какой спец?
От: VladiCh  
Дата: 31.01.22 07:08
Оценка: +3
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Shmj, Вы писали:

S>>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку?
S>Девопёс, нет?

Не, девопес это тот кто процессами и тулами занимается:
CI/CD в основном и все что вокруг этого.
Тут скорее архитект для начала нужен, с упором на базу данных.
Re[3]: Настроить инфраструктуру .Net Core - какой спец?
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.01.22 07:25
Оценка:
Здравствуйте, VladiCh, Вы писали:

VC>Не, девопес это тот кто процессами и тулами занимается:

VC>CI/CD в основном и все что вокруг этого.
Всё верно.
VC>Тут скорее архитект для начала нужен, с упором на базу данных.
Архитекты ничего не настраивают.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Настроить инфраструктуру .Net Core - какой спец?
От: VladiCh  
Дата: 31.01.22 07:58
Оценка: 1 (1) +2 :)
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, VladiCh, Вы писали:


VC>>Не, девопес это тот кто процессами и тулами занимается:

VC>>CI/CD в основном и все что вокруг этого.
S>Всё верно.
VC>>Тут скорее архитект для начала нужен, с упором на базу данных.
S>Архитекты ничего не настраивают.

Ну там очевидно же что настройкой дело не обойдется и вопрос вообще не в настройке.
Просто автор не совсем понимает о чем говорит
Re[3]: Настроить инфраструктуру .Net Core - какой спец?
От: Vladek Россия Github
Дата: 31.01.22 08:53
Оценка: 5 (1)
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, Vladek, Вы писали:


V>>Теперь возвращаемся в реальность, нет никакого миллиона посетителей в любой момент на сайте — запросы выполняются медленно, железо не ахти какое, код ужасный. Пусть один запрос выполняется в 200 раз медленнее (600 мс на 1 запрос), а процессоров (ядер) у нас аж 2 — получится примерно 3 запроса в секунду. Это всего 200 одновременных посетителей. И сайт будет всё равно медленный.


S>Ну это смотря какой сайт — вот взять сайт того же вконтакта? Или некоторых популярных магазинов в момент распродаж.


S>Вы рассматриваете только одно-серверную архитектуру — а ведь сейчас все через k8s.


У меня другой посыл — вы не знаете реальную нагрузку на сайт и не профилировали свою инфраструктуру.

Нужно ответить на следующие вопросы:

Ответы на эти вопросы дадут хорошее представление какой наплыв посетителей сайт может выдержать в реальности, что надо править в коде, что делать с железом.

Кибернет придумали в Гугле, решая проблемы Гугла, а вы не Гугл и даже не Амазон. Кстати, вот хорошая документалка про эту лабуду:

https://www.youtube.com/watch?v=BE77h7dmoQU
Re: Настроить инфраструктуру .Net Core - какой спец?
От: TG  
Дата: 31.01.22 09:20
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Такой вопрос.

S>Допустим, нужен некий сайт — каталог товаров. Товаров 1 миллион. Нужен быстрый поиск по ряду параметров (около 40, но отличается для разных категорий).
S>Нужно чтобы пользователей в пике было — 20 тыс. чел. в секунду, чтобы держало. Т.е. 20 тыс. запросов в секунду. Это не значит что постоянно такая нагрузка — но нужно чтобы держало в пике.
S>Пожелания:

S>1. Не использовать дорогостоящего ПО. К примеру, СУБД желательно бесплатная.

S>2. Чтобы автоматически масштабировалось. К примеру, k8s в облаке.
S>3. Рекомендации по технологиям разработчикам, чтобы не тащили по 20 мегабайт скриптов и не использовали тормознутые решения (к примеру, разрешить ли использовать EF).

S>Как называется чел., который сможет это все настроить и гарантировать что будет держать нагрузку? Насколько редко встречается?


Ручками это всё делают (ну, кроме рекомендаций) DevOps-ы и прочие SRE-инженеры (Site reliability engineering), но действуют они "по наводке" человека, который называется Solution Architect.
Именно он проектирует систему, исходя из требований заказчика, толщины его кошелька и компетенции команды. Ответственность за то, чтобы держало нагрузку, несёт именно он.
Встречается довольно часто, особенно в конторах типа Luxoft и EPAM.
Далее можно гуглить по ключевым словам "Solution Architect" и, например, "System Design Interview" — чем и как занимаются.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.