Highload в домашних условиях
От: ukrspecs  
Дата: 16.02.21 20:02
Оценка:
У меня есть непреодолимое желание узнать как работают высоконагруженные системы. В частности понять, что под капотом у всем известных систем, с миллионами и сотнями миллионов пользователей.

Но разумеется, такой реальный проект в руки просто так не дадут. А желание потрогать все части такой системы есть. Поэтому прошу помощи у коллег, как организовать имитацию подобного проекта у себя дома.

Из того что есть — это подписка на Azure, понимание как на ней создавать VM, функции, AppServices, БД. Но реальный опыт ограничивается одним инстансом и одной БД. А хочется так 100 инстансов, причем в несколько слоев, несколько БД, кеширование, CDN и так далее.
А самое главное, протестировать это все как-будто заходят десятки тысяч пользователей одновременно на этот сервис. Как идея, для ясности например — упрощенный инстаграмм.

В общем хочется воочию увидеть как бы работала эта система, будь у нее 100млн пользователей. Знаю что это возможно, нагрузочным тестированием.(как пользоваться?)

Что посоветуете? Может есть мануал с практической направленностью? Или в какую сторону рыть?
Re: Highload в домашних условиях
От: vlp  
Дата: 16.02.21 20:03
Оценка: +1 :)
Здравствуйте, ukrspecs, Вы писали:

U>Из того что есть — это подписка на Azure, понимание как на ней создавать VM, функции, AppServices, БД. Но реальный опыт ограничивается одним инстансом и одной БД. А хочется так 100 инстансов, причем в несколько слоев, несколько БД, кеширование, CDN и так далее.

Сколько у вас есть денег?
Re[2]: Highload в домашних условиях
От: ukrspecs  
Дата: 16.02.21 20:09
Оценка:
Здравствуйте, vlp, Вы писали:

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


U>>Из того что есть — это подписка на Azure, понимание как на ней создавать VM, функции, AppServices, БД. Но реальный опыт ограничивается одним инстансом и одной БД. А хочется так 100 инстансов, причем в несколько слоев, несколько БД, кеширование, CDN и так далее.

vlp>Сколько у вас есть денег?

Не много. Ну если я построю систему и тест запущу на пару минут — я не думаю что разорюсь.
Re[3]: Highload в домашних условиях
От: vlp  
Дата: 16.02.21 20:27
Оценка: +2 :)
U>>>Из того что есть — это подписка на Azure, понимание как на ней создавать VM, функции, AppServices, БД. Но реальный опыт ограничивается одним инстансом и одной БД. А хочется так 100 инстансов, причем в несколько слоев, несколько БД, кеширование, CDN и так далее.
vlp>>Сколько у вас есть денег?
U>Не много.

>Ну если я построю систему и тест запущу на пару минут — я не думаю что разорюсь.

Посчитайте внимательно — это важный аспект. В не сможете запустить систему только на пару минут, чтобы что-то интересное выучить или заметить.
Мой личный опыт говорит, что индивидуально заниматься такими вещами — надо нереальное количество денег иметь, обычно такого числа денег у людей для личных экспериментов нет. Проще всего развлекаться, имея соовтетствующего работодателя.
Отредактировано 16.02.2021 20:38 vlp . Предыдущая версия .
Re: Highload в домашних условиях
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 16.02.21 21:41
Оценка: +3
Здравствуйте, ukrspecs, Вы писали:

U>Что посоветуете?


Это называется масштабирование. Для имитации можно создать множество виртуальных машин на одном компьютере, а потом попробовать всем этим управлять. Тогда возникнут дополнительные задачи, например, как массово конфигурировать операционки, Ansible, Chef, Puppet и так далее, или что-то своё. Так же есть программы для мониторинга и управления множеством компьютеров. Вопрос ещё и в том, какой кластер нужен, распределённая файловая система, распределённая база данных, может быть распределённый веб-сервер, да и вообще всё, что угодно, хоть рендер ферма.

Я когда-то думал, почему при столь очевидном решении хочется купить "железо". И пришёл к выводу, что дело не в количестве запросов, ведь никто не мешает грузить компьютер по полной, и не в производительности. Суть в том, что "железо" можно купить ничего не делая. Это такой вид прокрастинации, откладывания дела по выдуманной причине.

А в чём разница системы со множеством компьютеров, от одного или нескольких. Несколько ещё можно настроить вручную, хотя они уже могут с успехом имитировать кластер. Но что, если представить, что их слишком много. Тогда в идеале нужно управлять всеми компьютерами с одного устройства и полностью автоматизировать установку программ. Уже не прокатит заходить на каждый по отдельности для мониторинга или конфигурирования.

Но это всё касается, если брать готовые решения и просто их устанавливать и настраивать. Если же вести какие-то особые разработки, то дело конечно затянется. Можно просто использовать системы мониторинга вроде Zabbix. Или если нужен аналог, то просто набираем в поиске аналог zabbix. Но в целом этим обычно занимаются специалисты, которые приходят на работу и работают. Это не то, что можно сделать быстро, а ведь энтузиастам, которые просто решили поизучать никто платить не будет.
Re: Highload в домашних условиях
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.02.21 10:55
Оценка: +2 -1
Здравствуйте, ukrspecs, Вы писали:

Все действующие высоконагруженные системы не были изначально спроектированы для такой нагрузки, которую они испытывают. Даже те системы, которые целенаправленно проектировались как высоконагруженные (парадокс, да).
Создать HighLoad в домашних условиях не получится, ибо вы ни нагрузку не сможете сымитировать, ни объем данных.

U>Что посоветуете? Может есть мануал с практической направленностью? Или в какую сторону рыть?


Начните со StackOverflow architecture

После этого можно смотреть доклады с HighLoad и смеяться.

Если есть azure, то просто изучайте примеры. Желательно не только те, которые дает Microsoft, ибо его примеры нужны чтобы вы купили больше azure.
Re[2]: Highload в домашних условиях
От: ukrspecs  
Дата: 17.02.21 22:21
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


G>Если есть azure, то просто изучайте примеры. Желательно не только те, которые дает Microsoft, ибо его примеры нужны чтобы вы купили больше azure.


У меня проблемы по сути 2:
1) Спроектировать микросервисную архитектуру, которая автоматически скейлиться при большой нагрузке
2) Запустить фейковый трафик аля 1 млн. разных пользователей

Вот для первого, мне надо поучить курс Azure Solutions Architect. А для второго — найти такой инструмент, который имитирует реальный трафик.
Просто я от этой темы далек, поэтому и спрашиваю, как что называется в этом мире.

По второму пункту подскажите? Я видел есть Yandex.Tank, нужно что-то подобное видимо.
Re[2]: Highload в домашних условиях
От: TG  
Дата: 18.02.21 05:43
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Начните со StackOverflow architecture

G>После этого можно смотреть доклады с HighLoad и смеяться.

Я, признаться, не слежу за конфами HighLoad, а что там смешного?
Re[3]: Highload в домашних условиях
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.02.21 10:12
Оценка: 3 (2) +2
Здравствуйте, TG, Вы писали:

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


G>>Начните со StackOverflow architecture

G>>После этого можно смотреть доклады с HighLoad и смеяться.

TG>Я, признаться, не слежу за конфами HighLoad, а что там смешного?

Примерно все.
Уровень докладов на HighLoadпримерно такой: "давайте ресурсов добавим, так чтобы все данные в памяти лежали в двух экземплярах, и все зааботает быстро"
Re: Highload в домашних условиях
От: smeeld  
Дата: 18.02.21 10:23
Оценка: 1 (1)
Здравствуйте, ukrspecs, Вы писали:

U>У меня есть непреодолимое желание узнать как работают высоконагруженные системы. В частности понять, что под капотом у всем известных систем, с миллионами и сотнями миллионов пользователей.


U>Но разумеется, такой реальный проект в руки просто так не дадут. А желание потрогать все части такой системы есть. Поэтому прошу помощи у коллег, как организовать имитацию подобного проекта у себя дома.


Ничего там такого сложнейшего нет. Инфраструктуры строятся н самых обыкновенных опенсорсных или самописных, или патченных демонах: sql субд, nosql cубд, вебсерваки, прокся, сетевые и кластерные FS. Всё это крутится на линуксах и/или bsd. Основной прикол тут в распределении данных. Все петабайты сущностей дробятся по каким-то параметрам и раскидываются для храненения, обработки, отдачи на разные сегменты и машины кластера. Масштабировать можно сколько угодно. Так работают все hpc и интернет ресурсы. Другое дело, когда данные не параллелятся и их обработка не кластеризуется. Например, бакновский процессинг, системы документоооброта. Там царствуют специализированные non stop high-end решения от ibm, hpe, oracle в виде высокопроизводительных шкафов. Такие решения просто покупают у вендора и юзают.
Re: Highload в домашних условиях
От: Ночной Смотрящий Россия  
Дата: 18.02.21 20:48
Оценка: +2
Здравствуйте, ukrspecs, Вы писали:

U>Что посоветуете? Может есть мануал с практической направленностью? Или в какую сторону рыть?


Ты в результате что хочешь получить? Опыт настройки таких систем? Опыт создания таких систем? Возможность найти работу в этой области?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Highload в домашних условиях
От: ukrspecs  
Дата: 19.02.21 13:51
Оценка: +2
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, ukrspecs, Вы писали:


U>>Что посоветуете? Может есть мануал с практической направленностью? Или в какую сторону рыть?


НС>Ты в результате что хочешь получить? Опыт настройки таких систем? Опыт создания таких систем? Возможность найти работу в этой области?


Все 3 пункта сразу.

Ну есть у меня детская мечта, создать сервис с 100 миллионов пользователей. Вот в первую очередь хочу понять как это будет работать, если случится.
Re[3]: Highload в домашних условиях
От: Ночной Смотрящий Россия  
Дата: 19.02.21 13:56
Оценка: -2
Здравствуйте, ukrspecs, Вы писали:

U>Ну есть у меня детская мечта, создать сервис с 100 миллионов пользователей. Вот в первую очередь хочу понять как это будет работать, если случится.


Начни с изучения kubernetes, потом переходи к базовым примитивам — load balancers, очереди, распределенные хранилища. А там уже сам поймешь куда тебе дальше двигаться.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Highload в домашних условиях
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 19.02.21 14:22
Оценка: +1 -1
Здравствуйте, ukrspecs, Вы писали:

НС>>Ты в результате что хочешь получить? Опыт настройки таких систем? Опыт создания таких систем? Возможность найти работу в этой области?


U>Все 3 пункта сразу.


U>Ну есть у меня детская мечта, создать сервис с 100 миллионов пользователей. Вот в первую очередь хочу понять как это будет работать, если случится.


Начни с теории и рассказов о том, как другие уже решали эти проблемы. Сделай Мартина Клеппмана своим кумиром.
Re[2]: Highload в домашних условиях
От: Michael7 Россия  
Дата: 26.02.21 12:22
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Создать HighLoad в домашних условиях не получится, ибо вы ни нагрузку не сможете сымитировать, ни объем данных.


А если не имитировать, а совместить полезное с приятным? Создать для начала какой-нибудь простенький бесплатный сервис-кластер под кроватью, который чем-то полезным занимается на что фантазии хватит. Конвертирует какие-то файлы, например. Когда содержать его станет накладно ввести оплату и т.д. А там может и новая звезда на рынке взойдет
Re: Highload в домашних условиях
От: Nozama  
Дата: 10.03.21 02:41
Оценка: +1
Здравствуйте, ukrspecs, Вы писали:

U>У меня есть непреодолимое желание узнать как работают высоконагруженные системы. В частности понять, что под капотом у всем известных систем, с миллионами и сотнями миллионов пользователей.


U>Но разумеется, такой реальный проект в руки просто так не дадут.


Дадут, если проявить настойчивость.

U>Что посоветуете? Может есть мануал с практической направленностью? Или в какую сторону рыть?


Я бы посоветовал искать работу в компании с такой направленостью, может быть как-то поговорить с HR (или поискать что спрашивают на собесе), что ты хочешь работать на этом направлении и спросить что нужно изучить для них.

Т.е. кажется что городить виртуальный цирк с конями странно. Если идти этим путем, то ищи идею какого-нибудь полезного усвлоно бесплатного сервиса, где у тебя будет высокая нагрузка. Ну вот тупая идея сразу пришла в голову — сделай HTTP прокси или что-нибудь такое.

Вообще это немного из серии — как стать директором космического корабля. Там ведь много компетенций — и софт и SRE и админство, нужно нехило поработать чтобы это выстроить, т.к. много уровней. Делать это в песочнице — откуда взять мотивацию да и зачем?
Re[2]: Highload в домашних условиях
От: SkyDance Земля  
Дата: 13.03.21 05:20
Оценка:
G>Все действующие высоконагруженные системы не были изначально спроектированы для такой нагрузки, которую они испытывают.

Не скажу за все, но все те, что мне доводилось видеть, — именно так, изначально были "наколенке" и дальше заплатками доросли до того, что называют highload, хотя принципиально это не более чем заплатки на заплатках.
Особенно жутко видеть какие-нибудь cluster management systems...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.