Comments 7
Ого, схема на ArchiMate modelling language.
На текущий момент мы обрабатываем более 150 000 изменений в минуту.
А можно узнать сколько и какого виртуального железа стоит за этим в облаке?
Я обычно удивляюсь, когда кто-то ArchiMate нотацию узнает, так как ее применение не так популярно, как тот же UML.
Что касается железа, то все инстансы кластера именно с Tarantool размещены на 4 виртуальных машинах в конфигурации 16 CPU & 64 RAM. И по выдерживаемой нагрузке я чуть ошибся, там все же 150к изменений в секунду.
Я обычно удивляюсь, когда кто-то ArchiMate нотацию узнает, так как ее применение не так популярно, как тот же UML.
Встретились два одиночества...
И по выдерживаемой нагрузке я чуть ошибся, там все же 150к изменений в секунду.
Непонятна связь этой метрики с требованиями к системе: "С учетом географии «Магнита» – это более 420 000 изменений в минуту". Можете пояснить?
420к изменений в минуту рассчитывал эмпирически с учетом всех магазинов, расчет делал для примера и определения потенциального минимального трешхолда запросов, которое надо закладывать при проектировании. И то это только те изменения, которые генерируют покупатели. Помимо покупателей еще всегда есть операционные процессы, например, приемки товаров, обновления цен, которые тоже ощутимо увеличивают профиль нагрузки.
Сейчас же подключено уже 20% магазинов от всей сети, что уже с учетом операций магазина дает 150к RPS в пике, когда накопленные данные отправляются в DIH. Классический случай "ожидание - реальность".
Это даже схемы на Sparx EA похоже!
Если бы не случилась пандемия и не пришлось бы решать задачу в speedrun - насколько иначе подошли бы к ее решению?
В спокойном режиме необходимо было бы пройтись по всем операциям (ценообразование, работа с остатками, акциями), результаты их работ максимально централизовать в одном внутреннем хранилище и минимизировать время отставания данных между магазинами и этим внутренним хранилищем. Оно будет предназначаться под операционные процессы под операционный профиль нагрузки.
Далее через механизм CDC (Change Data Capture) настроить передачу данных уже в горячее хранилище, на которое уже будет падать пользовательский профиль нагрузки. Т.е. все равно иметь два места хранения данных, но под разные профили нагрузки.
Магнитная Одиссея 2020: как Tarantool и Golang опутали всю Россию сетью экспресс-доставки