besogonskiy
@besogonskiy
работаю php laravel разработчиком.

Какие вещи нужно изучить чтобы подготовить себя к работе с Highload проектами?

Прохожу собеседования и кадровики часто спрашивают "Имели ли вы опыт работы с High Load проектами" ?

Нет. Не имел. Даже когда работал в продуктовой компании, то наша разработка велась на тестовых базах на отдельных серверах где небыло никакой нагрузки.

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

Вы не могли бы подсказать к чему нужно присмотреться чтобы хоть как то быть в теме? (понятно, что речь в том числе о БД и о распределенных базах данных, но наверное еще много чего).
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Хайлоад это не какой-то особенный тип проекта, это все обычные проекты, но с объемом "туда-сюдирования" данных выше, чем тянул "прошлый сервер", когда проект был еще не хайлоад. В 90% случаев это выражается в росте количества запросов к бд, которая либо становится слаба по железу, либо вылазят косяки в запросах, написаных абы как, включая отсутствие индексов и кривую архитектуру.

Что делается для "хайлоадинга"?
1) Меняются сервера на помощнее, но это больше к админам обычно.
2) Выявляются узкие места, в подавляющем большинстве случаев это либо обращения к бд, либо работа со сторонними сервисами, а-ля АПИ фейсбука и все такое.

Как разгонять именно такие затыки 2 варианта - есть 3 пути:
1) Оптимизация. Все что возможно ускорить - ускоряется, находятся самые тормознутые запросы, прогоняются через explain, переписываются, тюнятся, индексируются до состояния максимальной производительности.
2) Кэширование. Обычно используют кей-валуе инмемори хранилища а-ля мемкеш и редис, и результаты запросов часто используемых, но не часто обновляемых данных пишутся в кэш. Время жизни настраивается в зависимости от необходимой актуализации. По идее на высоких нагрузках даже кэш с времением жизни 5-10 секунд может в разы снизить нагрузку на сервера.
3) Иногда стандартных средств и инструментов не достаточно, и нужно искать какие-то новые инструменты, например переходить на сфинкс, так как фултекстсерч не вывозит. Или большие объемы данных идут на запись, и стандартной пропускной способности бд уже не хватает и нужно что-то типа систем хранения логов, или наоборот, аналитические бд по типу кликхауса...

Короче - все то же самое что и в стандарте, только оттюнено и обмазано кэшами и инструментами чуть сложнее мускуля...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект