Высоконагруженные сайты

401 000обновлений профиля клиента в месяц на одном из наших проектов
7 000регистраций пользователей в месяц
400 млнхранимых записей в базе данных
Подробнее
Награды 6 наград 4 номинации в UI/UX
рейтинги Профиль Evergreen — Clutch Рейтинг Evergreen — CMSMagazine Профиль Evergreen — Behance Все Все

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

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

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

 

Создание высоконагруженных сайтов

К высоконагруженным сайтам относятся такие приложения как:

  • соцсети
  • большие e-commerce проекты
  • платежные резолверы
  • различные API для realtime работы
  • другие API, которые обслуживает front app (web/mobile)
  • обработчики больших данных

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

 

Чем интересны высоконагруженные сайты для бизнеса?

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

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

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

 

Разработка высоконагруженных сайтов

Highload сайты характеризуются быстрым откликом, для которого требуется оптимизация производительности back-end, SSR (server-side rendering), уменьшение количества клиентского кода (js/css) при отдаче на клиент (всегда минимально необходимое количество, используемое на текущей странице, подходы lazy-load и т.п.).

С точки зрения серверной нагрузки, чем больше задач мы отдадим на обработку front-end, тем лучше. “Бутылочным горлышком” почти всегда являются диски и сеть.

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

Технологии для разработки высоконагруженных сайтов:

  • Python: Asyncio, Aiohttp
  • Облачные AutoScaling решения, партиционирование, зеркалирование данных и процессов, Map-Reduce подход, отложенность и очередность выполнения, DNS балансировки и т.д.
  • Использование очередей ZERO MQ, German, RabbitMQ, Sentinel Cluster
  • Асинхронные функциональные языки Node.js с елементами Erlang, GoLang
  • AWS RDS, AWS DocumentDB, MongoDB, Galera MySQLl, PostgreSQL и т.п.
  • Serverless (AWS Lambda) (для части функционала)
  • Progressive Web Apps (PWA) на клиентской части. 

При тестировании высоконагруженных сайтов нужно использовать целый комплекс мер, используя AB, JMeter, Yandex.Tank. 

Хостинг для высоконагруженных сайтов

Мы в Evergreen предпочитаем работать со стеком AWS, но наша компетенция позволяет настраивать высоконагруженные системы и на выделенных серверах.

Для высоконагруженных сайтов очень важно использовать балансировщики нагрузки сетей и балансировщики запросов к веб-серверам, кеширование в зависимости от регионов (континенты, страны), CDN для статических файлов и кода front-end. 

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

Хотите подготовить ваш сайт к высоким нагрузкам, чтобы тысячи ваших клиентов были довольны сервисом, который вы предоставляете и своим пользовательским опытом? Обращайтесь, будем рады решить ваши задачи.

 

 

Заказать проектирование высоконагруженных систем

Расскажите нам, какой проект вы хотели бы создавать или развивать. Чувствуйте себя свободно - мы рады проконсультировать по любому профессиональному вопросу и сделаем это абсолютно бесплатно, просто позвоните нам или заполните форму.