Shopify обслуживал более 1 миллиона запросов в секунду во время черной пятницы
Shopify обслуживал более 1 миллиона запросов в секунду во время черной пятницы
Вероятно, вы думаете, что с такими большим количеством запросов могут справиться только какие-то мощные микросервисы. На самом деле все обстоит несколько иначе.
Shopify использует 𝗺𝗼𝗱𝘂𝗹𝗮𝗿 𝗺𝗼𝗻𝗼𝗹𝗶𝘁𝗵 𝗮𝗽𝗽𝗿𝗼𝗮𝗰𝗵( модульную монолитную архитектуру), они хранят весь свой код в одной модульной кодовой базе.
Монолитная архитектура – самая простая архитектура для понимания и реализации. Поскольку монолитный дизайн прост в построении и позволяет командам быстро работать на начальном этапе разработки, он может помочь продвинуть разработку приложения, чтобы раньше представить свой продукт клиентам.
Централизация развертывания приложения и поддержки кодовой базы имеет множество преимуществ.
Вся функциональность доступна в одной папке; вам нужно будет управлять только одним репозиторием. Кроме того, это означает, что необходимо поддерживать один конвейер тестирования и развертывания, что может сэкономить много времени.
Возможность обращаться к различным компонентам, а не полагаться на API веб-сервисов, – однно из самых привлекательных приемуществ монолитной архитектуры по сравнению с несколькими отдельными сервисами.
Shopify реализовала одну из версий модульного монолита на 𝗥𝘂𝗯𝘆 𝗼𝗻 𝗥𝗮𝗶𝗹𝘀. Они организуют кодовую базу вокруг реальных концепций (таких как заказы, доставка, инвентаризация и выставление счетов), что облегчает разметку кода и людей, которые его понимают. Каждый компонент представляет собой мини-приложение на Rails (модуль).
Каждый компонент претендует на единоличное владение данными, с которыми связан, и определяет прямой, специализированный интерфейс с границами домена, передаваемыми через публичный API.
Cтатистики Черной пятницы на :
🔹 145 миллиардов запросов (~60 миллионов в минуту)
🔹 99,999+% аптайма
🔹 5 ТБ/мин данных из всей инфраструктуры
🔹 MySQL 5.7 и 8 обрабатывают более 19 миллионов запросов в секунду (QPS)
🔹 22 ГБ/сек журналов и 51,4 ГБ/сек метрических данных
🔹 9 миллионов проходов в секунду данных трассировки
🔹 Их Apache Kafka обслуживал 29 миллионов сообщений в секунду в пиковый момент
🔹 Все работает в облаке Google Cloud