Високонавантажені сайти

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

Для чого потрібно передбачити роботу сайту на високих навантаженнях заздалегідь? Першочергово, щоб забезпечити стабільну роботу сервісу під час пікового навантаження і при постійному великому потоці відвідувачів (запитів). Нижче ми будемо говорити про прикладні аспекти розробки високонавантажених сайтів і про технології, що ми використовуємо.

Створення високонавантажених сайтів

До високонавантажених сайтів відносяться такі додатки як:

  • соц мережі
  • великі 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.

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

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

 

 

Замовити проектування високонавантажених систем

Розкажіть нам, який проект ви хотіли б створювати або розвивати. Почувайтеся вільно - ми раді проконсультувати з будь-якого професійного питання і зробимо це абсолютно безкоштовно, просто зателефонуйте нам або заповніть форму.

Цей сайт є українською мовою. Ви можете переключити мову у меню, або зробити це зараз.