Меню

Додо ошибка при запросе промокод

Знакомство с «Додо Пиццей»

«Додо Пицца» – это крупная сеть пиццерий и сервис доставки еды, успешно функционирующий с 2001 года. Первая пиццерия была открыта в городе Сыктывкар, а сегодня «Додо Пицца» развозит вкусную пищу по всей России, а также еще в 13 странах. Более 500 заведений кормят людей. Компания гарантирует быструю доставку горячей пиццы в течение 1 часа. Если курьер не успеет, ты получишь сертификат или промокод от «Додо Пицца» на большую бесплатную пиццу.

Минимальная сумма заказа – 549 рублей в Москве. Для каждого города установлена своя минимальная сумма. Еда доставляется бесплатно.

Преимущества компании

«Додо Пицца» предоставляет уникальную возможность лично проконтролировать приготовление блюд. В большинстве пиццерий установлены онлайн-камеры, позволяющие в режиме реального времени наблюдать как работают повара на кухне. В компании очень строго соблюдают правила техники безопасности, а сотрудники тщательно следят за собой. Гигиена, профессионализм и любовь к своей работе – вот гарантия отличного вкуса еды от пиццерии!

Меню

В разделе «Меню» на сайте представлен ни один десяток вкуснейших блюд. Здесь каждый найдет свой идеальный обед. Раздел «Пицца» представлен десятками вариаций любимого блюда: здесь имеются как популярные виды – «Пепперони», «Грибная», «Маргарита», так и необычные пиццы – вегетарианская или сладкая пицца-пирог с фруктами, ягодами и сгущенкой!

меню додо пицца

Для друзей и коллег можно заказать на выбор любое комбо: пиццы с закусками и напитками в комплекте для всей компании сделают вечер еще веселее. Аппетитные закуски – салаты, додстеры, рулетики и многое другое. Для сладкоежек имеется внушительный раздел с десертами: маффины, сырники, сладкие рулетики и нежные чизкейки на выбор. Запить вкусную еду можно газировкой, соком, чаем, водой или морсом. «Додо Пицца» выпускает и сувенирную продукцию, в каталоге ты сможешь найти:

  • подарочные сертификаты (на доставку и самовывоз);
  • книгу об основателе компании и истории бренда;
  • коллекционные магнитики;
  • футболки;
  • раскраски, колпаки и клювы для детей.

Бонусы, скидки, акции и промокоды от «Додо Пиццы»

Пиццерия идет навстречу своим клиентам и постоянно внедряет выгодные акции на покупку еды. Ты можешь сэкономить, заказав:

  1. Классическое комбо: две пиццы по 30 см с хорошей скидкой.
  2. Самостоятельно составленное комбо. Данная акция примечательна тем, что цена остается неизменной, какие бы продукты ни выбирал клиент.
  3. Акция для именинников – пирог-пицца в подарок к любому заказу (кроме комбо или заказов с дополнительными ингредиентами). Подарок можно получить в срок от трех дней до дня рождения и в течение 10 дней после.
  4. Бонусы к напиткам: 2 или 3 бутылочки Coca-Cola по суперцене.

Воспользуйся бесплатной доставкой вкусных блюд, приготовленных на глазах у клиентов.

список акций

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

Использование промокода от «Додо Пиццы»

Комбинация помогает получить значительную скидку или подарок к заказу. Как использовать промокод на dodopizza.ru?

  1. Выбери действующий промокод «Додо Пиццы» на сайте promokodus.com.
  2. Выдели код и скопируй его. На телефоне выбери «Копировать» в выпадающем меню, на компьютере сочетанием клавиш Ctrl + C либо кликнув правой кнопкой мыши, нажми на кнопку «Копировать».
  3. Перейди на страницы интернет-магазина или в приложение «Додо Пицца: доставка и ресторан».
  4. При оформлении заказа вставь скопированный код в специальное поле.
  5. Оплати покупку по карте онлайн, дождись курьера, чтобы насладиться своей едой.

Мы предлагаем тебе большой выбор актуальных купонов и промокодов «Додо Пиццы», которые действуют в январь — февраль 2023 года. Чтобы не упустить новых выгодных предложений от лучшей российской пиццерии, подпишись на нашу рассылку.

Вечером пятницы 23 сентября, в самое «горячее» время для Додо Пиццы, развалилась платформа Dodo IS. Приём заказов превратился в тыкву, клиенты и пиццерии 4 часа испытывали проблемы. Это было наше самое крупное падение с 2018-го года как в техническом плане, так и по недополученной выручке.

Особенная боль — то, что мы упали в прайм-тайм. Наш бизнес устроен циклично и зависит от сезона: осенью заказов больше, чем летом, а по вечерам пятницы больше в несколько раз, чем утром вторника, обычно пик заказов приходится на вечер пятницы (с 16 до 20 по Москве). Это время — самое напряжённое для системы и самое ценное для бизнеса.

У Dodo IS произошёл каскадный сбой и мы долго не могли реанимировать систему. Описываем наш путь во время этого инцидента:

  • Накинем ресурсов и все полетит?

  • Рассылка от маркетинга пушей в самый пик — может, дело в этом?

  • Наверняка это DDoS.

  • Или плохой релиз, вышедший недавно?

  • Короче, это что-то с базой.

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

Хронология событий и гипотезы

Первые алерты: ничего критичного, просто растёт нагрузка

Это была обычная пятница. Заказы принимались, алертов, которые говорили бы о сбоях системы, не было. В 16-52 прилетел алерт от MySQL о том, что много активных тредов.

График поступающих заказов — это важный индикатор реальной работы системы. Если заказы совсем перестают поступать, т.е. падают в 0 по какому-то источнику, то для пользователя это выглядит по-разному: может не открываться приложение, заказ может добавляться в корзину, но не приниматься. Т.е. не проходит ключевой сценарий — заказать пиццу не получается.

В 16-59 — алерт с бэкенда мобильного приложения, летят ошибки.

Но система продолжала работать, заказы шли. Инцидент открыли только в 17:07.

Когда команда подключилась к разбору, заказы из всех источников поступали, хоть и валились ошибки при работе бэкенда мобильного приложения (mapi — от mobile api) с базой для хранения корзин и сессий (база на CosmosDB). Нагрузка на систему продолжала нарастать, близился вечерний пик заказов.

Каких-то явных отклонений мы не увидели и решили, что это естественный рост по нагрузке — мы упёрлись в лимиты базы (MySQL и CosmosDB).

Так выглядит архитектура заказа. Есть 3 источника заказа: касса ресторана, мобильное приложение и сайт. Все они проходят через Legacy Facade (LF), а потом попадают в базу монолита. Касса частично берёт данные прямо из базы монолита.

Mapi и site (dodopizza.ru и сайты других стран) имеют своё хранилище, в основном это CosmosDB (или MongоDB, в зависимости от конфигурации) для хранения драфта корзин или предрасчётов, нужных на клиенте.

LF (Legacy Facade) — специально сделанный сервис, который выдаёт данные по http из базы. В нём есть части логики, которая когда-то была на слое репозиториев и сервисов доступов к данным в монолите. LF мы создали 5 лет назад, когда делали новый сайт и мобильное приложение, чтобы вести независимую разработку на клиентах. Логику приёма заказа, расчёта заказа, формирования меню, выдачи данных по клиенту, проверки промокодов зашили в LF.

Первая и основная гипотеза: не хватает ресурсов, надо добавить

Если трафик вырос, то не так важно, из-за чего именно: надо накинуть чуть больше ресурсов в разные части цепочки принятия заказа и всё полетит.

В 17:15 начинаем скейлить:

  • поднимаем поды (считай количество инстансов приложения в Kubernetes) для Кассы с 3 до 5,

  • поднимаем реквест-лимиты в CosmosDB,

  • поднимаем поды у mapi с 4 до 8.

Но это не имеет эффекта, заказы с mapi падают в 0. Понимаем, что из всей цепочки не заскейлили БД монолита. Она у нас в нормальном режиме работает на 32 ядрах — скейлим до 64.

В 17:30 заказы по всей системе падают в 0.

Некоторое время после рестарта базы это нормально. Но когда база поднялась, то отказывает уже LF, в котором находится приём заказа от всех источников. LF кидает ошибки bulkhead rejected request: выдаёт слишком много ошибок на запросы, закрыл bulkhead и не принимает от источников заказа запросы на исполнение. Разбираемся, что делать с этим.

График заказов в минуту из всех источников показывает, что с 17:30 система не работала. Просто накинуть ресурсов было недостаточно.

Параллельно отмечаем, что была массовая рассылка пушей. Может, она тоже влияет?

Днём отдел маркетинга запустил СМС и пуш-рассылку почти на 3.5 млн клиентов.

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

Такая же по объёму рассылка последний раз была в одну из пятниц июля 2022 года, и Dodo IS выдержала. Нюанс был в том, что летом заказов меньше, чем в сентябре. И в этот раз рассылка наложилась на гораздо больший пик заказов.

Доставка пушей.

Доставка пушей.
Клики по пушам.
Клики по пушам.

В 17:42 останавливаем рассылку, но и после этого поднять систему не получается. После остановки дополнительная нагрузка от открытия пушей должна была уйти, а система подняться. Этого не произошло.

Продолжаем пытаться восстановить систему.

17:46 Из-за того что мобильное приложение перестало работать, клиенты пошли на сайт заказывать пиццу. Это не удивительно, ведь приложение само предлагает перейти на сайт. Скалируем site с 5 до 7 реплик, планируем довести до 10 реплик.

Поды сайта нагружены под 100%.

Поды сайта нагружены под 100%.

В 17:49 трафик на сайт увеличился в 3 раза, с 15 до 45 тысяч запросов. В обычный будний вечер (не пик) на сайте около 20 заказов в минуту, на мобилке — около 200. Не все пользователи мобилки уходят на сайт, а где-то четверть. Это даёт такой вклад в запросы.

Сильно возросший трафик на сайте вынуждает нас продолжать увеличивать количество реплик по цепочке, в том числе для LF.

Третья гипотеза: нас жёстко DDoS-ят

Но трафик на систему всё равно достаточно большой, даже для вечернего времени. Предполагаем, что идёт DDOS-атака, которую мы не можем отразить и которую не можем заметить. Если бы это была DDOS-атака, то фродовый трафик можно было бы порезать. И ещё снизить в этот момент нагрузку. Может быть, система бы поднялась. А пока мы достоверно не задетектили атаку, трафик может быть нашим собственным.

Количество запросов после 17:25 возрастает c 11 до 40-50 тысяч.

В 18:41 эта гипотеза как будто подтверждается: отражена атака на сайт в размере 2.7 млн запросов при норме 11000 запросов.

Но ни до, ни после этой подтверждённой атаки нам не удалось найти следов каких-либо других атак. К тому же атака была на сайт, а повышенный трафик в основном шёл на mapi. Уже после инцидента мы детально разбирали трафик, смотрели самостоятельно запросы. На mapi нелегитимного трафика не было, а на сайте он был и был отражён.

Во время всего инцидента мы не исключаем версию атаки. Периодически к ней возвращаемся. Это оттягивает силы и внимание от действий по другим направлениям.

Параллельно со всем этим мы пытались восстановить систему разными действиями и получить больше данных

На втором часу сбоя имеем:

  1. Ресурсов накидали, не помогло.

  2. Пуши стопнули, не помогло.

  3. Предположили DDOS, но никаких подтверждений нет.

  4. Dodo IS лежит.

Видимо, надо копать глубже и точечно настраивать части системы, чтобы её поднять.

В 18:19 снимаем трейс с LF, изучаем. Пробуем понять, что не позволяет системе подняться.

В 18:24 выставляем настройки Bulkhead в LF до 1000/100 (BulkheadConcurrency/BulkheadQueue).

Было:

<!-- BulkHead lf-->
    <add key="BulkheadConcurrency" value="150" />
    <add key="BulkheadQueue" value="20" />

Стало:

<!-- BulkHead lf-->
    <add key="BulkheadConcurrency" value="1000" />
    <add key="BulkheadQueue" value="100" />

В 18:24 рестартуем LF.

Идея была в том, чтобы разжать LF, позволив ему подняться, принять в себя все запросы.

Конечно, зажата пропускная способность была не просто так. Это нормальное ограничение, чтобы не пропускать в базу много трафика и не положить её. Положить базу — значит, положить все источники приёма заказа и часть других сервисов.

Также разжатием мы хотели увидеть новую информацию, новые данные.

База данных, к которой обращался LF, к тому времени была на 64 ядрах при нормальной работе в пики на 32-х. Загрузка по CPU у неё была около 17%. Это значит, что даже увеличив количество параллельных коннектов в базу, мы бы её не положили (при разжатии балкхэдов был расчёт, что увеличенная база выдержит).

В 18:32 ушли warnings от LF bulkhead rejected request.

В 18:34 появились заказы на кассе.

Нам показалось, что вот сейчас всё полетит, раз уж касса ресторана принимает заказы.

Но на самом деле касса ресторана принимает заказы только при выключенном сайте и мобильном приложении. Значит, проблема не решена. Когда включаем сайт и mapi (это видно по графику дальше), то всё опять ложится.

C 19:05 в логах LF много ошибок:

  • System.OperationCanceledException: Query execution was interrupted

  • System.OperationCanceledException: The operation was canceled.

  • Основные URL

    • /MasterDataManagement/v2/GetMenu

  • Статистика:

По крайней мере, мы подсветили запросы, из-за которых не проходит флоу приёма заказа.

Основной из них — запрос на получение меню GetMenu.

При этом система не выдерживает, когда включаются все источники приёма заказа.

В 19:05 — количество SlowLog запросов выросло:

Сам запрос выглядел так

let _start_utc = datetime('2022-09-23T13:00:00Z');
let _end_utc = datetime('2022-09-23T20:00:00Z');
let _msk_start = datetime_add('hour', 3, _start_utc);
let _msk_end = datetime_add('hour', 3, _end_utc);
SreMysqlSlowLogs(MONOLITH_RU_DB, _start_utc, _end_utc)
| extend TimestampMsk=datetime_add('hour', 3, Timestamp)
| summarize count() by bin(TimestampMsk, 5m)
| render timechart

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

В 19:19 по совету @georgepolevoy применяем Bulkhead Policy в LF , чтобы уменьшить количество принимаемых запросов к API, тем самым снизить нагрузку на БД. Для ускорения процесса решили поправить прямо в Kubernetes в Secrets configs-legacyfacade. Но поломали конфиги (там нужно было конвертировать в base64).

В 19:27 замечаем, что сегодня нагрузка на БД чуть больше обычного.

Примерно в 19:38 видим, что на базе много тредов.

19:48 — зависшие запросы к БД.

Это запрос на метапродукты (т.е. например, есть продукт Кофе американо, а у него есть объём 0,2, 0,3 и 0,4 л) и топпинги (дополнительные ингредиенты) в меню. Да, это связано с вызовом метода GetMenu, который мы видели выше, когда разжали балкхэды.

В обычной жизни запросы к топпингам выполняются за 0.05 секунды, а на инциденте — более 10 секунд. Позже мы исследовали этот запрос и никакой неоптимальности на уровне SQL в нём не было. Этого запроса просто было слишком много и он не успевал обрабатываться. В качестве митигации думаем про изменение настройки thread_handling БД c one-thread-per-connection на pool-of-threads.

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

  • В20:24выставили настройку thread_handling pool-of-threads и перезапустили БД.

  • В 20:27 БД перезапустилась.

  • В 20:28 БД по CPU высокое и не спадает. До этого CPU было небольшое, а теперь опять выросло. Грузим все 64 ядра мощной базы.

БД перезапустилась, по CPU лучше не стало.

БД перезапустилась, по CPU лучше не стало.

В итоге изменение свойств базы с обработкой коннектов нам не помогло.

На 21:00 вся система была в разваленном состоянии. Сайт, мобильное приложение и касса ресторана не принимают заказы уже 2,5 часа.

На этот момент понятно, что в базу идёт большое количество запросов, и они связаны с меню. При этом ни большое, ни малое количество реплик веб-сервисов не позволяет системе нормально работать.

Четвёртая гипотеза: может, это плохой релиз?

Вернёмся чуть назад во времени. В 19:22 у собравшихся появляется идея посмотреть, что же выходило в этот день на продакшен из обновлений. Может, мы найдём в них какую-то зацепку, которая поможет починить всё. Смотрим на последний релиз монолита. Монолит делает запросы к базе монолита, в монолите находится LF, а значит, что-то могло повлиять на них.

Релиз был раскатан в 11:01 23 сентября и весь день проработал нормально. Обычно перформансные проблемы в релизе проявляются достаточно быстро.

Но этот релиз был раскатан в пятницу утром (в пятницу после 15 мы ничего не катим), и пока у него не было ни одного проработанного вечера. Этот вечер был первым.

Пошли изучать код релиза. В релизе было 15 задач, поэтому детальное изучение занимает время.

В 19:25 запускаем откат монолита России на 928 релиз.

В 19:27 релиз монолита падает по причине того, что под Migrator не сумел выполнить запрос к базе из-за того, что она нагружена.

Мигратор — это встроенный в релиз механизм обновления данных или схемы базы. Он используется для небольших изменений в базе, когда надо создать новую таблицу или обновить данные до 100К записей. Для больших изменений мы используем обновление базы вне релиза.

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

Возможно, откати мы тогда, все могло бы быть иначе.

После первой и единственной попытки откатить релиз отрабатываем версии с балкхэдами, точечными запросами в меню на базе и прочие.

В 21:18 всё таки решаем откатить на 928 релиз. Это тот релиз, который пристально изучали и в котором ничего не нашли и тот, на который мы ещё час назад попробовали откатить, но из-за мигратора не получилось. Фактически это уже был жест отчаяния: что бы мы ни делали, восстановить работу системы не выходило.

Релиз откатился примерно в 21:20.

  • 21:26 По заказам пока лучше не стало. Нагрузка на БД по CPU спала, хотя по заказам лучше не стало.

  • 21:30 Пошли заказы по mapi с растущим трендом.

Всё поднялось. Невероятно. Но что это было? Почему? Может, дело в релизе?

И во время инцидента, и после ничего плохого в коде релиза не нашли. Уже после инцидента гипотеза, что были проблемы в релизе была основной для изучения. Мы на неделю остановили поставки новых версий, изучали вдоль и поперёк, но ничего негативного в релизе не обнаружили. В конце первой недели после сбоя накатили тот же релиз, что был в момент сбоя. Он работал хорошо.

Анализ инцидента

Частью описания постмортема является анализ инцидента. Мы его делаем, отвечая на несколько вопросов:

Что навредило. Что мы делали на инциденте, что нам не помогало. Это лишние или ошибочные действия.

  1. Скорее всего, скейл базы с 32 до 64-х ядер только ухудшил положение дел. После скейла очистился кеш БД и это привело к дальнейшему каскадному сбою.

  2. Удвоение количества подов mapi, сайта было лишним и только создавало нагрузку на дальнейшие сервисы (LF), увеличение количества подов LF увеличило на базу и привело к каскадному сбою.

  3. Мы полностью отводили трафик от mapi и сайта для всех стран (меняли selector в k8s service), а правильнее было бы отводить трафик от Ingress до сервиса для конкретной страны. Это влияло на другие страны. Плюс шел трафик на инстанс mapi из других стран, а это усложняло разбор.

  4. Полный возврат трафика на mapi и сайт в час пик. Как только мы включали эти сервисы — система падала.

Чего нам не хватало на инциденте. Этот вопрос помогает уже сформировать список задач на будущее.

  1. Не хватает экспертизы, чтобы смотреть метрики MySQL. У нас есть ранбук, но его никто не отрабатывал на реальных кейсах.

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

  3. В SHOW FULL PROCESSLIST не хватает информации, с какого приложения идут запросы. Например, по имени пользователя. Везде только read_user и write_user. Нет 100% уверенности, какой именно компонент грузит БД, приходится искать по коду Dodo IS. Сначала эти пользователи использовались в монолите, где тоже невозможно разделить, какие части сервисов какие запросы делают. Но потом другие сервисы тоже стали использовать тех же пользователей.

  4. Не хватает информации, сколько каждый сервис может держать RPS. Это бы помогло в расчёте, сколько можно добавить реплик приложения, сколько нужно добавить реплик LF.

  5. Нет процесса по плановому мониторингу метрик в PMM о состоянии MySql-инстансов БД. Мы могли бы заранее увидеть проблемы с cache и с другими настройками. Нужны дополнительные алерты.

  6. Не хватает поэтапного заведения трафика на приложения (1, 10, 50, 100%), чтобы кеши всех нижележащих сервисов успели прогрузиться.

Что пошло не так. Здесь больше случайные факторы или оставшиеся нюансы.

  1. Перестал работать мониторинг. Увеличение количества реплик приложений повлияло на количество собираемых метрик нашей системой мониторинга, из-за чего ей перестало хватать оперативной памяти, приложения мониторинга были остановлены по OOM (OutOfMemory) и в дальнейшем не смогли запуститься. Нагрузку давала также Grafana, так как все стали её активно использовать при расследовании инцидента.

  2. Не запустился innotop из пакета MySQL Swissknife(это наш внутренний инструмент для доступа к базам). Выдавало ошибку при работе с VPN.

  3. Для запуска innotop на bastion-сервере пришлось отключить SSL на БД монолита.

  4. База данных «ушла в пике» и почему-то выполняла простейшие запросы по 10-15 секунд, что не позволяло прогреть кеши в LF и начать нормальную работу.

  5. Не скалировался нодпул для нод с Прометеем при указании 32 нод, а при указании 30 нод всё заработало. Причины: 32(nodes)*128(max pods per node) = 4096 адресов, а у нас subnet с /20 маской, всего на 4096 адресов, поэтому система не дала создать такой пул.

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

  7. Отвлеклись на атаку на сайт.

  8. Скопилась очередь SMS, текущее количество подов communications не справлялось с рассылкой. При этом большинство СМС уже не стоило отправлять, так как срок их действия истёк.

  9. Отвлекались на анализ атаки через SMS.

Какие действия помогли решить инцидент

Отключение сайтов и mapi убрало нагрузку на БД и позволило продолжить принимать заказы через кассу ресторана.

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

Подробная хронология и анализ действий позволяет найти первопричину и исправить её.

Самая глубокая причина, до которой удалось докопаться

В базе данных с заказами России был неверно сконфигурирован кеш по работе с таблицами.

На графике видно, как набирался кеш (16 — 16:40), а потом резко увеличилось количество открытых дескрипторов (перестали влезать в кеш). Сначала увеличилось количество тредов(16:40), потом пошли первые алерты(16:52).

На графике видно, как набирался кеш (16 — 16:40), а потом резко увеличилось количество открытых дескрипторов (перестали влезать в кеш). Сначала увеличилось количество тредов(16:40), потом пошли первые алерты(16:52).

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

При этом в БД перестали попадать в кеш файловых дескрипторов таблиц, это увеличило количество тредов в Idle состоянии. Mapi при этом перестало работать, из-за недостаточного количества реплик на них была 100% нагрузка на CPU.

В попытке вернуть mapi в работоспособное состояние мы удвоили количество реплик приложения, тем самым вызвали срабатывание Bulkhead-механизма в LF (он сразу отклонял часть поступающих запросов), а также ещё сильнее нагружали БД, что привело к каскадным сбоям по всей системе.

Подробно про файловые дескрипторы в MySQL

Дело в том, что таблицы в MySQL представлены в виде файлов. Для доступа к файлам используются файловые дескрипторы операционной системы. В целях оптимизации, MySql создаёт кеш дескрипторов до таблиц. Если кеш заполнен и в нём нет нужного дескриптора, то:

  • удаляются неиспользуемые дескрипторы, в первую очередь те, которые использовались реже всего;

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

Настройки кеша у БД были такие:

  • max_connections = 5000

  • table_open_cache = 2000

  • open_files_limit = 27098

    • максимум из

      • 10 + max_connections + (table_open_cache * 2)+2048 (for Windows)

      • max_connections * 5

Effective value — реальный размер кеша вычисляется по формуле MAX((open_files_limit – 10 – max_connections) / 2, 400) = MAX(11044, 400) = 11044 дескрипторов.

В минуту приходит около 6000 select запросов, в секунду — 100 запросов. Если в каждом из них в среднем по 5 JOIN, то будут открыты 500 дескрипторов. При этом, если запросы будут выполняться 2 секунды, то вновь пришедшие запросы не смогут воспользоваться кешом и будут ходить мимо него, ожидая открытия нового файлового дескриптора, замедляя свое выполнение и увеличивая количество Idle threads.

Документация:

  • https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_table_open_cache

  • https://dev.mysql.com/doc/refman/5.7/en/table-cache.html

  • https://dev.mysql.com/doc/refman/5.7/en/creating-many-tables.html

  • https://mariadb.com/kb/en/optimizing-table_open_cache/

Решения

Быстрые временные решения

  1. Стоп на время фича-разработки в части Приём заказа. Субботник по стабильности.

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

Долгосрочные системные решения:

  • Поменять настройки кеша файловых дескрипторов в базе. Улучшить работу базы.

    • Увеличить значение настройки table_open_cache с 2000 до 40000.

    • Узнать про innodb_log_file_size (сейчас 512 МБ, а нужно 3 Гб).

    • Innotop должен работать локально из-под VPN с SSL подключением до MySQL.

    • Сделать innodb-buffer-pool-load-at-startup.

    • Настроить процесс мониторинга метрик MySql БД монолита России и стран.

    • Исследовать SlowLog на предмет Full Scan запросов при рестарте LF.

    • Актуализировать ранбук «Большое количество тредов на БД».

  • Переработать систему нагрузочного тестирования. Мы должны были отлавливать узкие места и проблемы заранее, а не на продакшен-среде.

    • Переработать сценарии. Надо добиться точности соответствия нагрузке на базу монолита.

    • Актуализировать профиль нагрузки с продовыми показателями. Сценарий нагрузки с рассылкой и открытием пуш-уведомлений был некорректным. Более года назад у нас были сценарии проверки открытия пуша на нагрузке. Но тогда рассылки были небольшие и сценарий был не критичным. Сейчас же количество рассылки выросло в несколько раз и вклад этого сценария стал больше. Это не учитывали в профиле нагрузки.

    • Актуализировать инфраструктуру ld и prod окружений.

    • Сделать возможность запуска нагрузки на разных стендах (сейчас все только на одном). Этим мы уберём узкое место в тестировании. Из-за этого узкого места мы не можем проверять достаточно сценариев.

    • Усилить состав инженеров по нагрузке.Наймем больше перфоманс инженеров, подключим разработчиков.

  • Увеличить способность системы выдерживать нагрузки. Все концы сходятся в нескольких точках отказа. Каждый домен вносит свой запутанный вклад в нагрузку LF и базы.

    • Оптимизировать выдачу меню. Источники заказа (сайт, mapi, касса) ходят за меню в LF, там оно кешируется, а при протухании кеша строится заново из базы монолита. Протухание кеша может быть из-за рестарта подов, потому что кеш в памяти.

    • Вынести расчёт заказа из монолита в отдельный сервис.

    • Оптимизировать открытие приложения после клика на пуш.

    • Улучшения в текущих сервисах

      • Актуализировать настройки Bulkhead для LF

      • Не отправлять пользователей из мобильного приложения на сайт, если он не доступен

      • Научиться поэтапно открывать трафик до сервисов mapi и сайта

      • Настроить HPA для mapi, сайта и LF

      • Добавить startup пробы для LF, для прогрева кешей

      • Механизм по отведению трафика сайта и mapi от LF

      • Проверить работу reaction. Назначил не того IC

      • Инструментировать все кеши метриками и трейсами system.diagnostics

  • Улучшить мониторинг и инструкции при работе со сбоями.

    • Мониторинг не выдерживал такого количества участников инцидента (в пике на созвоне было более 20 человек). В середине инцидента мы потеряли метрики, их пришлось руками восстанавливать. Надо переходить с Prometheus на VictoriaMetrics.

Текущие изменения в получении меню

Меню — ключевой объект для приёма заказа. В нём сочетается много данных:

  • список продаваемых товаров — для каждой пиццерии он несколько свой;

  • описание продукта, карточка продукта. Есть особые карточки по особым дням, например, новогодняя пицца с бужениной и клюквенным соусом;

  • сложные продукты (метапродукты) сочетают в одной карточке несколько товаров. Открывая Кофе, мы видим Кофе с объёмом 0,2, 0,3, 0,4 л;

  • цены плюс персональные цены для некоторых пользователей;

  • сама структура меню включает разные категории: пицца, комбо, закуски и т.д.;

  • «стопы», т.е. какой-то продукт может закончится в пиццерии и будет поставлен в стоп продаж. В меню такой продукт отображается как не продающийся в данный момент.

Примеры меню:

Вся эта сборка происходит в момент запроса GetMenu. Конечно, кешируется на всех уровнях всё, что возможно. Но всё равно цепочка запросов последовательная, в случае каскадного сбоя (который и был у нас) загрузка достаточно тяжелая: клиентская часть приёма заказа(iOS, Android, касса) + кеши → mapi + его база + кеши → LF + кеши → база данных и её кеши.

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

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

Работа такого сервиса:

  • RMQ — шина, по которой должны распространяться события об изменении продукта, структуры меню, цен, карточки продукта и т.д.

  • DMS — библиотека, которая обрабатывает события в Consumers, учитывает данные? уже хранящиеся в сервисе, обогащает их текущими пришедшими через события. На выходе получается DataWindow – витрина данных.

  • RegisterBuilder делает итоговый JSON, помещая его в Storage, это blob.

Или тот же путь подготовки данных, только верхнеуровнево:

  • DataCatalog — сервис справочников. Он порождает события изменения меню, цен и все остальные.

  • MenuService — наш сервис, который готовит меню. Он же ещё и порождает событие MenuChangedEvent, которое mapi/site/касса могут использовать для отслеживания каких-то изменений.

  • menu.json — собранная версия меню для конкретной пиццерии. В нём не содержатся персонализированные цены, они получаются отдельным обогащением, но без них уже можно взять это JSON и построить на клиенте по нему меню по точке продаж.

Таким образом, работа по созданию меню перекладывается из цикла запроса пользователя в асинхронный режим. Когда пользователь открывает мобильное приложение после прилёта маркетингового пуша, mapi надо только сходить в blob storage и скачать там JSON. Можно JSONи закешировать у себя, а инвалидировать кеш по событию menuChangedEvent. В любом случае, выдача меню не будет включать в себя построение его на лету.

Все это уже делалось и до сбоя 23 сентября, просто не успело полностью выйти. Мы форсировали работы по раскатке.

График снижения запросов на метод GetMenu при раскатке сервиса menu.

График снижения запросов на метод GetMenu при раскатке сервиса menu.

23 сентября 2022 года произошло самое крупное и долгое падение системы с 2018 года. Быстро разобраться и восстановить систему не получилось, поэтому нам пришлось приостановить разработку фич и сосредоточиться на поиске и исправлении глубинных причин.

В итоге мы оптимизировали меню, перерабатываем сценарии нагрузочного тестирования, улучшаем мониторинг и много еще чего.

Одной проблемы не было. Был комплекс проблем. Именно поэтому они все сыграли в некоторой синергии и дали такой эффект. В сложных системах нет одной первопричины(см How Complex System Failed).

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

Полезные ссылки:

Шаблон постмортема Dodo Engineering.

Содержание

  • 1 Как получить промокод Додо Пицца
  • 2 Действующие промокоды Додо Пицца 2023
  • 3 Купоны Додо Пицца на январь 2023 года
  • 4 Специальные промокоды
  • 5 Как получить промокод на первый заказ Додо Пиццы
  • 6 Акции и скидки
    • 6.1 Додо Пицца скидка на пепперони
    • 6.2 Dodo Pizza скидка на День рождения
  • 7 Как получить Dodo пиццу бесплатно
  • 8 Купоны Dodopizza.ru, которые вы пропустили
  • 9 Как активировать промокод Додо Пицца
  • 10 Как получать новые промокоды
  • 11 Бонусная программа Додо Пиццы

Додо Пицца — одна из самых популярных сетей быстрого питания на российском рынке, дополнительно к обслуживанию в зале, оказывающая услуги по доставке еды по адресам клиентов. Даже в большей части сервис занимается именно доставкой, если брать за внимание статистические данные из крупных городов. В компании довольно широкий выбор блюд, как традиционной кухни для пиццерии, а именно пицца, так и закуски, десерты и салаты. Дополнительно можно заказать напитки или соусы. Цены более чем приемлемые, качество и обслуживание находиться на должном уровне, что неоднократно подтверждается отзывами клиентов.

додо пицца

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

Однако, сегодня статью хотелось бы посвятить немного иной теме, а именно промокод Додо Пицца, что собой представляет, какие привилегии получает клиент? Какие бывают, как правильно использовать, при какой сумме действуют и т.д?

Как получить промокод Додо Пицца

Промокоды Додо Пицца доступны абсолютно всем пользователям сервиса без каких-либо ограничений. Купоны от Dodopizza представляют собой уникальный набор цифр и букв. Коды предлагает сам сервис в честь определенных акций или программ лояльности.

В некоторых случаях, скидку могут предоставлять сторонние сервисы и организации, сотрудничающие с Додо.

Существует огромная масса ресурсов, где публикуются купоны в открытом доступе. Достаточно ввести в поисковике нужный запрос и выбрать любой ответ. Как правило, коды имеют определенные ограничения по сроку действия, зачастую, действие распространяется на период от месяца до двух, хотя бывают и более продолжительные акции. В целом, подробные сведения о каждом купоне, содержаться в описании к нему.

Кстати, просмотреть действующие коды можно и на официальном сайте сервиса Додо Пицца, достаточно перейти по соответствующей вкладке.

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

Действующие промокоды Додо Пицца 2023

  • LKJN — бесплатная пицца «Карбонара» 25 см при заказе от 1099;
  • TRIO2 — получаем три пиццы 25 см за 650 рублей;
  • K4FT1GLCXM — скидка 20% от 1200 рублей на весь заказ;
  • 5G2TY6XS9K — скидка 20% от 1 000 рублей на весь заказ для новых клиентов;
  • G4223SVK8Z — «Пепперони» 25 см в подарок при заказе от 999 рублей (три города, кроме Сочи) или 1099 р (в г. Сочи);
  • KK7TLYKC6A: скидка 50% на вторую большую пиццу, меньшую по цене.
  • CVDF — бесплатно «Сырные палочки с песто» при заказе от 999 рублей;
  • LNG1Y — пицца Аррива (25 см) в подарок при заказе от 950 рублей;
  • 9110 — Бесплатная пицца Пепперони 25 см при заказе от 790 рублей;
  • DODOTATTOOбесплатные татуировки в подарок при заказе от 449 рублей;
  • 99KN — кусок пиццы + напиток на выбор за 99 рублей;
  • NMQE2 — скидка 20% от 999 рублей;
  • LKYT — скидка 10% на весь заказ (Ростов, Таганрог и Воронеж за 999р, Сочи за 999 рублей);
2084 Хотите бесплатную пиццу Песто 25 см? Просто воспользуйтесь данным промокодом, оформляя заказ до 999 рублей.
VK315 Получайте бесплатную Карбонару 25см, используя промокод VK315. Работает только при заказе от 795 рублей в Тюмени.
0545 Оформляйте заказ на доставку или самовывоз с промокодом 0545. Если сумма заказа составит 890 рублей и выше, то пиццу 25 см выдадут в подарок. Работает только 1 раз.
DC01 Только в Набережных Челнах. Совершите заказ на сумму от 699 рублей и получите в подарок «Двойной цыплёнок» 25см
0757 Только в Москве и Подмосковье можно получить в подарок Чизбургер-пиццу 25 см. Подарок выдается при заказе любой пиццы 35 см. Промокодом можно воспользоваться лишь один раз.
PIKABU90 Только для жителей Москвы и Подмосковья предлагается уникальная возможность по бесплатному получению пиццы «Цыплёнок Ранч» 25 см! Используйте уникальный промокод и оформите заказ от 999 рублей, чтобы получить свой подарок. У вас есть только 1 шанс, чтобы воспользоваться кодом.
0856 Только для жителей Москвы и Подмосковья предлагается уникальная возможность по бесплатному получению пиццы «Цыпленок барбекю» 25 см! Используйте уникальный промокод и оформите заказ от 890 рублей, чтобы получить свой подарок. У вас есть только 1 шанс, чтобы воспользоваться кодом.
M555 Специальное предложение в Арзамасе, Балаково, Волгограде, Волжском, Дзержинске, Кемерово, Копейске, Кстове, Курске, Магнитогорске, Нижнем Тагиле, Новокузнецке, Новокуйбышевске, Оренбурге, Пензе, Самаре, Тольятти, Чапаевске и Уфе. Только один раз при заказе от 555 рублей получайте в подарок В подарок пиццу Ветчина и грибы 25 см.
98473 Оформляйте заказ от 695 рублей в Екатеринбурге, чтобы получить бесплатно пиццу Чизбургер 25 см. Промокод можно использовать лишь один раз при самовывозе или доставке.
89645 Только в Екатеринбурге. Пицца Овощи и Грибы 25 см предоставляется в подарок при заказе от 699 рублей.
34527 Бесплатная «Двойная пепперони» за заказ от 699 рублей. Только в Екатеринбурге и только 1 раз.
IG55 Оформляйте заказ от 555 рублей, чтобы при помощи данного промокода получить 25 см пиццу Ветчина и Грибы. Каждый клиент может воспользоваться данным предложением лишь 1 раз, а действует оно не во всех городах.
2023NEW Уникальное предложение действует только для жителей Екатеринбурга. Получите 15% скидки на свой заказ, который нужно будет забрать самовывозом. Действует только при оформлении заказа через сайт или мобильное приложение.
54Q6L Получайте бесплатную пиццу Мясная 25 см, оформив заказ от 999 рублей. Воспользоваться промокодом можно лишь один раз.
MEGA25 Оформляйте заказ от 985 рублей, чтобы получить бесплатную пиццу Пепперони 25 см. Предложение действует только 1 раз.
0380 Предложение действует в городе Набережные Челны. При покупки трёх пицц одну вы получите бесплатно.
TWFG2 Одноразовый промокод на скидку в 15 %. Просто оформляйте заказ от 1199 рублей (на комбо не распространяется).
visa Сэкономьте 15% на своём заказе. Просто воспользуйтесь указанным промокодом в ДодоПицца, оформляя заказ от 1400 рублей. Не распространяется на комбо и добавление ингредиентов.
C1K31 Лишь один раз можно воспользоваться данным промокодом в Додо Пицца. С его помощью вы можете получить пиццу Мясная 25 см в подарок при заказе от 999 рублей.
EDA495 Одноразовый промокод для жителей Тюмени. При оформлении заказа от 545 рублей вы получите пиццу Четыре сезона бесплатно.
D20 Получите две большие Пепперони со скидкой 20%.
BB99 Специально для жителей города Владимир. Используйте промокод BB99 с понедельника по четверг с 21:00 по 00:00. Так вы сможете получить скидку 35% при заказе любой большой пиццы.
30PIZZA Оформляя свой первый заказ, вы можете получить 30% скидки на любую пиццу 35 см. Для этого воспользуйтесь указанным промокодом. Он сработает вне зависимости от вашего города проживания. Предложение доступно при заказе на самовынос или доставку.
0000 Специально для жителей Тольятти создана уникальная возможность сэкономить 100 рублей на своём заказе. Предложение действует лишь на доставку с 1 часу ночи до 6 утра.
45805 Для жителей Липецка есть возможность получить пиццу Пепперони 25 см в подарок. Для этого нужно оформить заказа на сумму от 575 рублей с использованием промокода. Промокодом можно воспользоваться лишь один раз.
DDC6E Специально для Москвы и Подмосковья действует данное предложение. Воспользовавшись кодом и оформив заказ от 590 рублей, вы получите фирменный додстер. Предложением можно воспользоваться только один раз при заказе доставки.
DDD395 Для любителей Пепперони из Волгограда и Пензы есть интересное предложение. Вы можете приобрести большую пиццу за 395 рублей, получив 300 рублей скидки (обычная цена на большую Пепперони 699 рублей).
BIG20 Каждый может получить скидку 20% при оформлении заказа на самовывоз.
D3000 Оформляйте заказ от 3000 рублей, чтобы получить 15% скидку. Предложение действует только с промокодом D3000 в Волгограде, Кемерово и Нижнем Новгороде.
5311A Только для новых клиентов из Волгограда и Волжского действует уникальное предложение. Вы можете получить 50% скидку на любую пиццу диаметром 35 см. Промокод работает только при первом заказе.
B100 Жители Волгограда, Нижнего Новгорода, Пензы, Тольятти и Волжского могут получить 100 рублей скидки на свой заказ. Для этого нужно использовать промокод B100.
DODO Клуб Получите бесплатный Додстер Додо Пицца. Чтобы получить заветный промокод, вступите в клуб Додо Пицца по адресу club.dodopizza.ru. Код сработает при заказе на минимальную сумму на доставку и самовывоз.
D120 D120 – это промокод от Dodo Пицца, что действует в день рождения клиента. По нему можно получить подарочную пиццу-пирог диаметром 25 см к вашему основному заказу. Необходимо зарегистрироваться на сайте, указав в вашем личном кабинете настоящий день рождения. Потом поменять его уже не выйдет. Акцией можно воспользоваться на три дня раньше дня рождения. Также она работает еще 10 дней после окончания праздника.
808 Скачайте мобильное приложение Додо Пицца в Google Play и сделайте через него свой первый заказ, указав код 808. В качестве вознаграждение вдобавок вы получите Пепперони 25 см.
950 950 – это промокод от Додо Пицца на первый заказ. Использовать его можно только, если вы совершаете свой первый заказ через мобильное приложение. Одноразовое предложение дарит возможность получить бесплатно маленькую пиццу 4 сезона при заказе от 495 рублей. Предложение действует до 29 января 2018 года.
24 Настоящая радость для полуночников. Промокод 24 для всех, кому «не спицца». При покупке большой пиццы после полуночи и до шести утра можно приобрести дополнительно маленькую пиццу всего лишь за 95 рублей. Эксклюзивно для Калуги.
20BGS Используйте данный промокод ДодоПицца при заказе 2 больших пицц, чтобы получить скидку в 20%. Предложение доступно только в Воронеже, Ростове-на-Дону, Таганроге и Сочи.
4550 0347 Выбирайте один из промокодов, заказывая 2 пиццы (35 или 25 см), чтобы получить в подарок Пепперони Фреш соответствующего размера. Действует в Санкт-Петербурге и некоторых городах.
799C Жители Казани могут получить бесплатный Чизбургер пиццу 25 см к своему заказу. Для этого нужно воспользоваться кодом 799C, оформляя заказ от 799 рублей.

Не забудь поделиться информацией с друзьями!

Купоны Додо Пицца на январь 2023 года

  • Пепперони Фреш в подарок по промокоду RUP_ROMO991.

Заказывая на сумму от 999 руб. с доставкой по Москве и Московской области или самовывозом, примените промокод и получите пиццу «Пепперони Фреш» 25 см. бесплатно. Актуально для одного заказа каждого клиента. Не суммируется с другими акциями, не действует на дополнительные ингредиенты и комбо.

  • Пицца Песто 25 см. в подарок по промокоду 2084.

Добавьте в корзину любую продукцию из меню Додо Пицца на сумму от 999 руб. Примените промокод, чтобы получить пиццу Песто 25 см. за 0 рублей.

  • Любая пицца 35 см. + мясная пицца в подарок (Москва) по коду 0656.

Онлайн ресторан Додо Пицца подарит пиццу мясную 25 см. к покупке любой большой пиццы 35 см. Только для Москвы и МО.

20%

  • Промокод VISASALE на скидку 20% при оплате картой Visa

Расплатитесь Ваше картой Visa, получив скидку 20% по промокоду на заказ на сайте Додо Пицца. Минимальная сумма в корзине 1800 руб.

  • Промокод ZX845 на пиццу «Цыпленок Ранч» в подарок.

Пиццу 25 см. можно получить даром, если при оформлении заказа указать промокод. Предложение действует при сумме в корзине от 845 руб. Города: Кемерово, Нижний Новгород, Пенза, Нижний Тагил, Новокузнецк.

  • Промокод D120 Додо Пицца на подарок в День Рождения.

К заказу за 3 дня до и 10 дней после Дня Рождения получите сладкую пиццу-пирог «Запеченное яблоко» бесплатно! Код купона Додо Пицца можно использовать не более 1 раза в день.

15%

  • Промокод D3000 на скидку 15% в некоторых городах.

Предоставляется скидка 15% на заказы с доставкой или самовывозом от 3000 рублей в следующих городах: Самара, Волгоград, Оренбург, Кемерово, Пенза, Тольятти, Нижний Новгород, Курс, Магнитогорск, Владивосток и некоторых других городах.

200 руб.

  • Большая пицца Пепперони за 395 рублей по промо-коду DDD395.

При самовывозе из ресторанов Додо Пицца действует промокод на специальную цену для пиццы 35 см. Актуально для следующих городов: Нижний новгород, Самара, Волгоград, Тольятти, Пенза, Волжский и некоторых других.

Промокоды Dodopizza.ru на пиццу бесплатно:

  1. PEPPER25;
  2. CHCHICK30;
  3. PEPPER35;
  4. CHCHICK35;

Промокоды на бесплатные пиццы в Раменском и Жуковском:

  1. Пепперони 25 см. в подарок к доставке от 745 руб. в
  2. Сырный цыпленок 30 см. к покупке от 915 руб.
  3. Пепперони 35 см. к заказу от 1295 руб.
  4. Сырный цыпленок 35 см. для доставки от 1295 руб.
  • Промокод Додо: 3 пиццы по цене 2-х:
  1. PKN21;
  2. D330;

Добавьте 3 любые пиццы в корзину и примените промокод, чтобы получить одну из них бесплатно.

  1. Промокод для Нижнего Новгорода, Волгограда, Волжского, Воскресенска, Пензы, Тольяти и Самары.
  2. Код акции для города Йошкар-Ола.
  • Двойной цыпленок в подарок по купону в Тюмени по промокоду VK098.

Двойной цыпленок 25 см в подарок при заказе от 795 рублей по промокоду с доставкой из пиццерии Додо в Тюмени.

  • Промокоды на пиццу в подарок для Челябинска:
  1. ST28;

  2. E32Y;

Пицца Ветчина и сыр 25 см. в подарок по промокоду к покупке от 695 руб. Ветчина и сыр 30 см. бесплатно при сумме доставки от 815 руб.

  • Пицца в форме мишки и игрушка в подарок.

Заказывайте пиццу в форме мишки. В подарок будет предоставлена одна игрушка из коллекции Ми-ми-мишки.

  • Пицца Колбаски барбекю + стикерпак в подарок.

Выберите пиццу Колбаски барбекю с острой чоризо, соусом барбекю и овощами и получите в подарок подборку футбольных стикеров.

  • Скидка 10% на заказ в приложении.

Клиенты, желающие покушать в пиццерии, могут оформить свой заказ через приложение, переключившись на вкладку «в зале» и сэкономить 10%.

  • 2 или 3 бутылки Coca-Cola со скидкой 15%.

При покупке 2 или 3-х бутылок напитка Coca-Cola с любым вкусом появится скидка.

  • Скидки до 45% на комбо-наборы пицц.

При одновременной покупке нескольких пицц в наборе действуют скидки до 45%.

  • Пицца в подарок за ожидание.

Пицца в подарок при условии, что доставка заняла более 60 минут.

  • Бесплатная доставка пиццы.

Оформите заказ на сумму от 495 руб. и воспользуйтесь услугой доставки бесплатно.

  • Додстер в подарок за регистрацию.

Станьте членом Додо Клуба и в дополнении к минимальному заказу получите додстер в подарок. Промокод будет выслан на Ваш электронный адрес, на этапе оформления заказа.

  • Пицца за 29 руб. по промокоду Додо Пицца.

Только сегодня все покупатели большей пиццы 35 см. могут применить промокод Додо Пицца и заказать любую маленькую пиццу 25 см. всего за 29 руб.

  • Купоны Додо Пицца на скидки 30% и 25% в будние дни.
  1. Промокод предоставит скидку 30% на бизнес-ланч(2 любые пиццы среднего размера 30 см.). Код действует с 11:00 до 14:00.
  2. Скидка 25% на средние и большие пиццы при заказе с 13:00 до 17:00. Промокоды можно применить с понедельника по четверг, исключая праздничные и предпраздничные дни.

Специальные промокоды

На главной странице мы опубликовали все действующие промокоды, купоны и акции от Додо Пицца. В данном разделе мы разместили все рабочие промокоды на январь текущего года. Также мы ведем отдельные разделы с промокодами. Вот полный список категорий:

  • Промокоды от Додо Пицца на первый заказа — здесь вы найдете выгодные предложения, которые действуют только, если вы делаете заказ в Додо впервые.
  • Бесплатная пицца в Додо Пицца — данный раздел посвящен промокодам, которые дают возможность при выполнении всех условий получить пиццу бесплатно.
  • Скидка в день Рождения в Додо Пицца — промокоды для тех, у кого скоро будет, уже наступило или было не так давно день Рождения. Как правило по таким промокодам именинникам полагается какое-то товар бесплатно.

Как получить промокод на первый заказ Додо Пиццы

Додо Пицца рада новым клиентам и дарит промокод на первый заказ. С его помощью можно купите пиццу с 50% скидкой.

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

  • 4220 — скидка 20% на первый заказ.

Акции и скидки

Способов сэкономить в Dodo Pizza достаточно. Во-первых, здесь довольно часто проводятся различные акции: например, скидки на вторую такую же позицию в ассортименте (как правило, это касается только пиццы) или акции формата три по цене двух или четыре по цене трёх. Также вы можете рассчитывать на подарок в виде пиццы на день рождения. Кроме того тут предлагается не просто бесплатная доставка, а даже подарки за заказ на определённую сумму.

Действует в «Додо Пицца» и бонусная система. Например, при любом заказе (будь то сайт или офлайн заказ — в ресторане) вам вернётся бонусами 5%.

Dodo Pizza — меню

Додо Пицца скидка на пепперони

Большая пицца пепперони по промокоду DDD395 за 395 рублей! Специальная цена предложена только при условии самовывоза из ресторана. Предложение не суммируется с акциями и другими code, и не работает на комбо и дополнительных ингредиентах.

Dodo Pizza скидка на День рождения

В личном кабинете на сайте указываете свою дату рождения. Потом надо добавить в корзину продукты на 555 руб. и вбить код DR555. В корзину автоматом упадет додо колпак, открытка и пицца «Пепперони». Промокод Dodo Pizza действует в ресторане 1 раз в день, доставка, самовывоз в течение 14 дней, три дня до и 10 дней после праздника. В акции исключается участие комбо и дополнительных ингредиентов.

Додо Пицца дарит на День рождения сладкий пирог-пиццу. Чтобы его получить по промокоду Dodo Pizza, нужно собрать в личном кабинете корзину на минимальную сумму доставки, и выбрать промокод 120. Получать этот подарок можно каждый день за 3 дня и 10 дней после Дня рождения.

Как получить Dodo пиццу бесплатно

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

  • Заполни анкету на сайте;
  • Запишись на проверку;
  • Сделайте заказ согласно графику;
  • Сфотографируйте заказ и напишите отчет;
  • Получи бонусы;
  • Оплатите заказ полностью бонусами;

Купоны Dodopizza.ru, которые вы пропустили

Скидка Описание скидки Промокод Действует до

-50 % Выгода 50% на одну большую пиццу в заказе! (г. Тюмень) 3950 05.05.2019
-50 % Скидка 50% на вторую пиццу 30 см! (г. Подольск) B50 08.06.2019
-100 руб. Пицца на 100₽ дешевле при заказе с 0:00 до 2:00! (г. Пенза) EEE1 30.04.2019
Подарок Фирменный картофель в подарок к заказу! (г. Нижний Новгород) 24132 03.05.2019
Подарок Пепперони 25 см в подарок новым покупателям! (г. Саратов, Кировск (Лен. область) 303 01.05.2019

Как активировать промокод Додо Пицца

Использовать промокод Додо Пицца довольно просто. Делается это непосредственно во время оформления заказа. Ниже предоставлен порядок действий на основе формирования заказа через сайт пиццерии:

  1. Перейдите на официальный сайт dodopizza.ru;
  2. Сделайте заказ;
  3. Откройте корзину;
  4. Прокрутите открывшуюся страницу вниз;
  5. Найдите поле для ввода промокодов;
  6. Введите код;
  7. Нажмите на кнопку «Применить».

Подобным образом активируются промокоды Додо Пицца и через мобильное приложение. Во время оформления заказа вы увидите специальное поле. В любом случае, как только вы нажмете кнопку «Применить», стоимость заказа будет сразу же изменена.

Как получать новые промокоды

Чтобы первыми узнавать о всех новых промокодах, купонах и прочих акциях, рекомендуем вам подписаться на наши социальные сети: Инстаграм или Вконтакте. Все ссылки на наши социальные сети вы сможете найти в правой колонке (если посетите наш сайт с компьютера) или в верхней части сайта (если зашли на сайт с помощью мобильного устройства). Также вы сможете найти все ссылки в разделе Социальные сети

Обязательно включите уведомления, чтобы получать оповещения о новых промокодах от Додо Пицца, которые будут выходить в 2023 году.

Бонусная программа Додо Пиццы

Программа лояльности Додо Пиццы — это не только акции. При оплате заказа 5% от него возвращаются на счет в виде виртуальной валюты – додо-рублей, которая эквивалентна рублю один к одному. При оформлении доставки приложение автоматически предлагает использовать накопленные додо-рубли для оплаты части или всего заказа.

Чтобы накапливать и тратить бонусы в ресторане, назовите номер телефона, привязанной к личному кабинету. Доступ к ним возможен при оплате как наличными, так и картой.

Додо-рубли


Просмотров:
6 310

Помогла статья? Оцените её

Загрузка…

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Додж стратус самодиагностика ошибок
  • Додж стратус ошибки p1684