Додо что это означает
Додо что это означает
Смотреть что такое «додо» в других словарях:
Додо — Додо: Маврикийский дронт, или додо (лат. Raphus cucullatus) вымершая нелетающая птица подсемейства дронтов, эндемик острова Маврикий в Индийском океане. Птица Додо сказочный персонаж из книги Льюиса Кэрролла «Алиса в Стране чудес». Рикардо Лукас… … Википедия
ДОДО — ИЛИ ДРОНТ исчезнувшая порода птиц из отряда куриных, водившаяся на Мадагаскаре. Словарь иностранных слов, вошедших в состав русского языка. Павленков Ф., 1907. ДОДО или ДРОНТ Вымершая порода птиц из отряда куриных. Словарь иностранных слов,… … Словарь иностранных слов русского языка
Додо — нескл., муж. Стар. форма имени (см. Додон). Словарь личных имён. Додо нескл., м. Стар. форма имени Додон (см.). Словарь русских личных имен. Н. А. Петровский … Словарь личных имен
Додо — ( возлюбленный им ): 1) потомок Иссахара, отец Фуи и дед судьи Фолы (Суд 10:1); 2) сын Ахохи и отец Елеазара, одного из трех храбрых у Давида (2Цар 23:9). Возм., то же лицо, что и см. Додай (1Пар 27:4); 3) отец Елханана из Вифлеема,… … Библейская энциклопедия Брокгауза
додо — сущ., кол во синонимов: 2 • дронт (2) • птица (723) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов
додоїти — дієслово доконаного виду … Орфографічний словник української мови
додо — I. ДОДО I dodo < faire dodo. Спать, баиньки. Наш маленький херувим устал, хочет до до. ВЕ 1903 8 605. Батюшки. Dodo. Пора и честь знать. выдавил наконец Борис, вставая. Д. Савицкий Тема для вариаций. // Знамя 1996 3 24. II. ДОДО II нескл.… … Исторический словарь галлицизмов русского языка
Додо — (друг Божий). а) (Суд.10:1 ) муж колена Иссахарова, преемник Фолы, одного из судей; б) (2Цар.23:24 ) муж из Вифлеема, отец Елханана; в) (2Цар.23:9 ) отец Елеазара. По Иудейскому преданию он был дядею Давида с отцовской стороны … Библия. Ветхий и Новый заветы. Синодальный перевод. Библейская энциклопедия арх. Никифора.
Додо — Д’одо (любящий) а) (Суд.10:1 ) предок Фолы; б) (2Цар.23:9 ; 1Пар.11:12 ) сын Ахохи (или из Ахохи?), отец Елеазара (он же Додай, см.); в) (2Цар.23:24 ; 1Пар.11:26 ) из Вифлеема, отец Елханана … Библия. Ветхий и Новый заветы. Синодальный перевод. Библейская энциклопедия арх. Никифора.
додо — дод о, нескл., муж. (птица) … Русский орфографический словарь
Додо что это означает
1 dodo
2 dodo
3 dodo
The President’s plans to animate the nation’s economy are as dead as a dodo. — Планы президента оживить национальную экономику абсолютно бесперспективны.
4 dodo
5 dodo
6 dodo
as dead as a dodo — мёртвый, умерший
7 dodo
8 DODO
задержка на отпадание
—
[Я.Н.Лугинский, М.С.Фези-Жилинская, Ю.С.Кабиров. Англо-русский словарь по электротехнике и электроэнергетике, Москва, 1999 г.]
Тематики
9 DODO
10 Dodo
11 dodo
12 dodo
13 dodo
14 dodo
15 dodo
16 dodo
17 dodo
18 dodo
19 dodo
20 dodo
См. также в других словарях:
dodo — dodo … Dictionnaire des rimes
Dodo — (Raphus cucullatus) Systematik Reihe: Landwirbeltiere (Tetrapoda) Klasse: Vögel (Aves) Ordnun … Deutsch Wikipedia
Dodó — Dodo Dodo (Raphus cucullatus) Systematik Reihe: Landwirbeltiere (Tetrapoda) Klasse … Deutsch Wikipedia
Dodô — Personal information Full name Ricardo Lucas Date of birth 2 May 1974 (1974 05 02 … Wikipedia
dodó — |ô| s. m. Peso de sete arráteis, em Goa. ‣ Etimologia: concani dadó dodó |ô| s. m. [Ornitologia] Ave da família dos rafídeos, de grande porte e asas curtas que não lhe permitiam voar, endêmica de algumas ilhas do oceano Índico e extinta devido… … Dicionário da Língua Portuguesa
dodo — DODO. sub. masc. Mot du langage familier, dont on se sert en parlant aux enfans, et qui n est d usage que dans ces phrases, Faire dodo, pour dire, Dormir; Aller à dodo, pour dire, Aller dormir, aller se coucher … Dictionnaire de l’Académie Française 1798
dodô — |ô| s. m. [Ornitologia] Ave da família dos rafídeos, de grande porte e asas curtas que não lhe permitiam voar, endêmica de algumas ilhas do oceano Índico e extinta devido à sua caça indiscriminada no século XVII. = DODÓ, DRONTE ‣ Etimologia:… … Dicionário da Língua Portuguesa
dodo — dȍdo m DEFINICIJA etnol. reg. hip. stric u Dalmaciji i Hercegovini ONOMASTIKA Dódo m. os. ime (potvrđeno u hrv. spomenicima u 11. st.), zast.: Dȍdomīr, Dodòvit pr.: Dòdaj (21, Bjelovar, Poreč, Zadar), Dòder (Virovitica, Osijek, Varaždin), Dòdeš,… … Hrvatski jezični portal
dodo — ► NOUN (pl. dodos or dodoes) ▪ a large extinct flightless bird found on Mauritius until the end of the 17th century. ● as dead as a dodo Cf. ↑as dead as a dodo ORIGIN Portuguese doudo simpleton (because the birds were tame and easy to catch) … English terms dictionary
Dodo — Do do, n.; pl.
Dodo [1] — Dodo, einer der zahlreichen Mündungsarme des Nigerstromes in Afrika … Pierer’s Universal-Lexikon
Значение слова «додо»
Что означает слово «додо»
Библейская энциклопедия арх. Никифора
Додо
(друг Божий). Суд 10:1 — муж колена Иссахарова, преемник Фолы, одного из судей. 2 Цар 23:24 — муж из Вифлеема, отец Елханана. 2 Цар 23:9 — отец Елеазара. По иудейскому преданию он был дядею Давида с отцовской стороны.
Библейский Словарь к русской канонической Библии
Додо
а) ( Суд.10:1 ) — предок Фолы;
б) ( 2Цар.23:9 ; 1Пар.11:12 ) — сын Ахохи (или из Ахохи?), отец Елеазара (он же Додай, см. );
в) ( 2Цар.23:24 ; 1Пар.11:26 ) — из Вифлеема, отец Елханана.
Смотрите также:
Синтаксический разбор «Мне потребуется вечность, чтобы всё объяснить.»
Морфологический разбор слова «додо»
Фонетический разбор слова «додо»
Значение слова «додо»
Синонимы «додо»
Карточка «додо»
Словари русского языка
Лексическое значение: определение
Общий запас лексики (от греч. Lexikos) — это комплекс всех основных смысловых единиц одного языка. Лексическое значение слова раскрывает общепринятое представление о предмете, свойстве, действии, чувстве, абстрактном явлении, воздействии, событии и тому подобное. Иначе говоря, определяет, что обозначает данное понятие в массовом сознании. Как только неизвестное явление обретает ясность, конкретные признаки, либо возникает осознание объекта, люди присваивают ему название (звуко-буквенную оболочку), а точнее, лексическое значение. После этого оно попадает в словарь определений с трактовкой содержания.
Словари онлайн бесплатно — открывать для себя новое
Словечек и узкоспециализированных терминов в каждом языке так много, что знать все их интерпретации попросту нереально. В современном мире существует масса тематических справочников, энциклопедий, тезаурусов, глоссариев. Пробежимся по их разновидностям:
Толкование слов онлайн: кратчайший путь к знаниям
Проще изъясняться, конкретно и более ёмко выражать мысли, оживить свою речь, — все это осуществимо с расширенным словарным запасом. С помощью ресурса How to all вы определите значение слов онлайн, подберете родственные синонимы и пополните свою лексику. Последний пункт легко восполнить чтением художественной литературы. Вы станете более эрудированным интересным собеседником и поддержите разговор на разнообразные темы. Литераторам и писателям для разогрева внутреннего генератора идей полезно будет узнать, что означают слова, предположим, эпохи Средневековья или из философского глоссария.
Глобализация берет свое. Это сказывается на письменной речи. Стало модным смешанное написание кириллицей и латиницей, без транслитерации: SPA-салон, fashion-индустрия, GPS-навигатор, Hi-Fi или High End акустика, Hi-Tech электроника. Чтобы корректно интерпретировать содержание слов-гибридов, переключайтесь между языковыми раскладками клавиатуры. Пусть ваша речь ломает стереотипы. Тексты волнуют чувства, проливаются эликсиром на душу и не имеют срока давности. Удачи в творческих экспериментах!
Сила ума
На какой стадии сейчас мой проект?
Найдено помещение. Подписан 3-х летний договор. Сделан ремонт, проведена вентиляция, водоснабжение. Разработан технологический проект. Оборудование и инвентарь уже на месте. Я только что вернулся из цеха, где заканчивают собирать морозильную и холодильную камеры. Настоящая моцарелла, пицца-соус и другие ингредиенты уже в пути из Москвы в Сыктывкар. Я уже набираю персонал. На столе лежит толстая пачка кандидатов на работу. Уже на этих выходных я начну тестировать оборудование и угощать друзей экспериментальными образцами. Через две недели мы начнем работать в тестовом режиме для читателей блога и других пользователей Интернета. А где-то через месяц каждый житель Сыктывкара сможет попробовать нашу пиццу и другие продукты. Подробнее о том, что я уже сделал — расскажу на следующей неделе, даже опубликую свой план-проект запуска бизнеса.
Бизнес-план будет позже. Начнем с имени. Как вы, наверное, догадались пиццерия не будет называться “Сила Ума” (так будет именоваться компания, которой будет принадлежать новый бренд).
Для меня было очень важным придумать хорошее имя, которое бы сразу соответствовало моим планам развития.
Для себя я наметил три главных критерия в выборе имени:
1. Короткое, простое, легко запоминающиеся слово и яркий образ.
2. Никаких ассоциаций и аналогий с итальянской темой, так как рынок переполнен подобными названиями. В каждом городе вы найдете псевдоитальянскую пиццерию — “Примавера”, “Милано”, “Марио”, “Чилинтано”, “Синьоры Помидоры” и так далее. Все сливается в одну массу. К тому же мы будем продавать “американскую”, а не итальянскую пиццу.
3. Никаких банальностей типа — “Дом пиццы”, “Пицца-Хаус”, “Сити-Пицца”, “Мир Пиццы” и так далее. Только уникальное название.
4. Наличие свободного домена в зонах *ru и *com.
5. Отсутствие на рынке близких аналогов — как на российском, так и на западном.
Итак, мой новый бренд будет называться “Додо Пицца”.
Додо — это смешная нелетающая птица величиной с гуся. Додо жили на Маскаренских островах, расположенных в Индийском океане. С приходом европейцев они были полностью уничтожены к концу 17 века. Не имевший ранее естественных врагов, додо был доверчив как ребёнок. Охота на додо не доставляла особого труда, к додо можно было спокойно подойти. Доверчивостью птиц пользовались потругальцы и били додо палкой по голове.
Птица Додо — это еще и персонаж книги «Алиса в Стране чудес», которую мы очень любим с моей дочкой. Когда Алиса наплакала море слез и в него попало множество волшебных существ, именно Додо предложил игру “Бег по кругу” для того, чтобы высохнуть. Когда я выхожу мокрый из речки, я предлагаю всем поиграть в “Бег по кругу”, но никто, как правило, кроме моей дочки меня не понимает.
Смысл игры заключался в следующем. Додо рисует на земле круг, расставляет соревнующихся в произвольном порядке. Затем безо всякой команды каждый начинает бегать в произвольном направлении. Соревнование длится полчаса, и по его результатам победителями оказываются все. Звери требуют награды, Додо, ткнув пальцем в Алису, говорит, что раздавать награды будет она. У Алисы как раз оказываются в кармане цукаты, которых хватает ровно на всех участников. Но получается, что самой Алисе ничего не досталось. Додо спрашивает, есть ли у неё ещё что-нибудь в кармане. И когда Алиса находит у себя наперсток, Додо забирает его с тем, чтобы торжественно вручить его Алисе в награду под общие рукоплескания 🙂
Вы спросите — причем здесь Додо и пицца? Додо станет героем нового бренда. Додо — добрый и смешной персонаж, который любит пиццу и клиентов. Додо будет героем рекламы. Додо должен нравиться детям и взрослым. Это, конечно, это будет Додо не из “Алисы”. Это будет наш новый Додо.
Какой он будет? Как он будет выглядеть и почему? Я расскажу об этом завтра.
Буду рад вашим мнениям, эмоциям, которые вызывает название “Додо Пицца”.
История о птице Додо из рода Фениксов. Великое падение Dodo IS
Каждый год 21 апреля мы вспоминаем историю Великого падения Dodo IS в 2018 году. Прошлое – жестокий, но справедливый учитель. Стоит помнить о нём, повторять уроки, передавать новым поколениям накопленные знания и с благодарностью относиться к тому, кем мы стали. Под катом мы хотим рассказать вам историю о том, как это было и поделиться выводами. Такую ситуацию не пожелаешь даже врагу.
История Великого падения
День 1. Авария, которая стоила нам миллионы рублей
В субботу 21 апреля 2018 года система Dodo IS упала. Упала очень плохо. Несколько часов наши клиенты не могли сделать заказ ни через сайт, ни через мобильное приложение. Очередь звонков в колл-центр выросла до такого состояния, что автоматический голос автоответчика сообщал: «Мы перезвоним через 4 часа».
В тот день мы пережили одно из самых серьёзных падений Dodo IS. Самое ужасное заключалось в том, что накануне мы запустили первую федеральную рекламную кампанию на ТВ с бюджетом 100 млн. рублей. Это было грандиозное событие для Dodo Pizza. IТ-команда тоже хорошо подготовилась к кампании. Мы автоматизировали и упростили деплой – теперь с помощью одной кнопки в TeamCity мы могли развернуть монолит в 12 странах. Мы сделали не всё возможное и поэтому облажались.
Рекламная кампания была потрясающей. Мы получали 100-150 заказов в минуту. Это была хорошая новость. Плохая новость: Dodo IS не выдержала такой нагрузки и умерла. Мы достигли предела вертикального масштабирования и больше не могли обрабатывать заказы. Система была нестабильна в течение примерно трёх часов, периодически восстанавливаясь, но сразу же падала вновь. Каждая минута простоя стоила нам десятки тысяч рублей, не считая потери уважения со стороны разъярённых клиентов. Команда разработки подвела всех: клиентов, партнёров, ребят в пиццериях и колл-центре.
У нас не оставалось выбора, кроме как закатать рукава и сесть за исправление ситуации. С воскресенья (22 апреля) мы работали в жёстком режиме, у нас не было права на ошибку.
Ниже собран наш суммарный опыт о том, как оказаться в такой ситуации и как из неё потом выбираться. Друзья, не допускайте наших ошибок.
Два фейла, которые запустили эффект домино
Начать стоит с того, как всё началось и где мы облажались.
В субботу 21.04.2018 примерно в 17:00 мы заметили, что начало расти количество локов в базе – предвестник проблем. У нас наготове был runbook для решения, так как мы понимали, откуда эти локи идут.
Всё пошло не так после того, как два раза runbook не сработал. На пару минут база приходила в норму, а потом снова начинала задыхаться от локов. Увы, на мастер-базе rollback_on_timeout был 600 секунд, из-за чего все локи и копились. Это первый важный фейл в этой истории. Простая настройка могла всё спасти.
Дальше были попытки вернуть систему к жизни разными способами, ни один из которых не увенчался успехом. До тех пор пока мы не поняли, что есть разница в схеме приёма заказов в мобильном приложении и на новом сайте. Вырубая их по очереди, мы смогли понять, где дыры у старой схемы приёма заказов.
Система приёма заказа была написана давно. На тот момент она уже была в переработке, и её выкатили на новом сайте dodopizza.ru. В мобильном приложении она не использовалась. Изначально причины создания новой схемы заказов были связаны с чисто бизнесовыми правилами, вопросы производительности даже не стояли на повестке дня. Это второй важный фейл — мы не знали пределов нашей системы.
День 2. Ликвидации аварии
Реакция команды была очень показательной. Наш СТО написал пост в Slack, и все пришли на следующий день – 22 апреля работа началась в 8:30 утра. Никого не нужно было уговаривать или просить прийти в свой выходной день. Все всё понимали: что нужно поддержать, помочь, руками, головой, в тестировании, оптимизации запросов, инфре. Кое-кто даже приехал со всей семьей! Ребята из соседних команд, не связанных с IT, приезжали в офис с едой, а колл-центр вывел дополнительные силы на всякий случай. Все команды объединились единой целью – подняться!
Новый приём заказа стал основной целью на воскресение, 22 апреля. Мы понимали, что пик заказов будет сравним с субботним. У нас был жесточайший дедлайн — в 17 часов повалит новый шквал заказов.
В этот день мы действовали по плану «сделать, чтобы не упало», который выработали накануне 21 числа поздно вечером, когда уже подняли систему и поняли, что произошло. План условно был разбит на 2 части:
Определяем фронт работ и работаем
Внедрение схемы с новым заказом в мобильное приложение было самой приоритетной задачей. У нас не было точных цифр по всей схеме, но по отдельным частям, количеству и качеству запросов к базе мы экспертно понимали, что он даст прирост в производительности. День в день над задачей работала команда из 15 человек.
Хотя по факту внедрение новой схемы заказа мы начали ещё до падения 21.04., но не довели дело до прода. Ещё оставались активные баги и задача висела в полуактивном состоянии.
Команда разделила регресс на части: регресс с двух мобильных платформ, плюс управление пиццерией. Мы много времени тратили вручную, чтобы подготовить тестовые пиццерии, но чёткое разделение помогало параллелить ручной регресс.
Как только вносилось какое-то изменение, оно тут же деплоилось на pre-production среду и моментально тестировалось. Команда всё время находилась на связи друг с другом, они реально просто сидели в большой комнате с включенным hangouts. Ребята из Нижнего Новгорода и Сыктывкара тоже всегда были на связи. Если возникал затык, он тут же решался.
Обычно мы выводим новый функционал постепенно: 1 пиццерия, 5 пиццерий, 10 пиццерий, 20 пиццерий и так на всю сеть постепенно. В тот раз нам нужно было действовать решительнее. Времени у нас не было – в 17 часов начинался новый пик. Мы просто не могли не успеть.
Примерно в 15:00 обновление было раскатано на половину сети (это около 200 пиццерий). В 15:30 мы убедились, что всё работает нормально и включили на всю сеть. Фича-тоглы, быстрые деплои, разбитый на части регресс и зафиксированный API помогли всё это сделать.
Остальная часть команды занималась разными вариантами оптимизации при создании заказа. Новая схема была не совсем новая, она таки использовала легаси часть. Сохранение адресов, применения промокодов, генерация номера заказа – эти части были и оставались общими. Их оптимизация сводилась либо к переписыванию самих SQL-запросов, либо к избавлению от них в коде, либо к оптимизации их вызовов. Что-то пошло в асинхронном режиме, что-то, как оказалось, вызывалось по несколько раз вместо одного.
Команда инфраструктуры занималась тем, что выделяла часть компонентов на отдельные инстансы просто для того, чтобы не пересекать нагрузку. Нашим основным проблемным компонентом был легаси фасад, ходивший в легаси базу. Ему и были посвящены все работы, в том числе и по разделению инстансов.
Организуем процесс
Утром мы провели единственный за день синк, разбились на команды и ушли работать.
Сначала весь лог изменений и задач мы вели прямо в Slack, потому что сначала задач было не так много. Но их количество росло, поэтому мы быстро переехали в Trello. Настроенная интеграция между Slack и Trello оповещала о любом изменении статуса в задачке.
Дополнительно нам было важно видеть весь лог изменения продакшена. Электронная версия была в Trello, дублирующая версия была на доске инфраструктуры в виде карточек. В случае, если что-то пойдёт не так, нам нужно было быстро понять, какие изменения откатить. Полноценный регресс был только для схемы с новым заказом, остальные изменения тестировались более лояльно.
Задачи вылетали на продакшн со скоростью пули. Суммарно мы обновили систему 15 раз за тот день. У ребят были развернуты тестовые стенды, по одному на команду. Разработка, быстрая проверка, деплой на продакшн.
Дополнительно к основному процессу CTO Саша Андронов постоянно бегал в команды с вопросом «Чем помочь?». Это помогало перераспределять усилия и не терять времени на то, что кто-то не подумал попросить помощи. Полуручное управление разработкой, минимум отвлечений и работа на пределе возможностей.
После того дня нужно было выйти с ощущением, что мы сделали всё, что могли. И даже больше. И мы это сделали! В 15:30 новая схема приема заказа была раскатана для мобильного приложения на всю сеть. Режим хакатона, под 20 деплоев на продакшн за день!
Вечер 22 апреля прошёл спокойно и чётко. Ни падений, ни единого намека не то, что системе может быть нехорошо.
В районе 22 часов вечера мы собрались ещё раз и набросали план действий на неделю. Лимитирование, перфоманс тесты, асинхронный заказ и много чего ещё. Это был долгий день, а впереди были долгие недели.
Возрождение
Неделя с 23 апреля была адская. После неё мы сказали себе, что выложились на 200% и сделали всё, что могли.
Мы должны были спасать Dodo IS и решили применить некоторую медицинскую аналогию. Вообще это первый реальный случай использования метафоры (как в оригинальном XP), который реально помогал понимать, что происходит:
Реанимация
Первый этап реанимации — стандартные runbook для восстановления системы в случае отказа по каким-то параметрам. Упало одно — делаем это, упало то — делаем это и так далее. В случае падения быстро находим нужный runbook, все они лежат на GitHub и структурированы по проблемам.
Второй этап реанимации — лимитирование заказов. Данную практику мы переняли у своих же пиццерий. Когда на пиццерию сваливается очень много заказов, и они понимают, что не могут быстро их приготовить, то они встают в стоп минут на 5. Просто чтобы разгрести очередь заказов. Мы сделали подобную схему для Dodo IS. Решили, что если станет совсем плохо, включим общий лимит и будет говорить клиентам, мол, ребята, 5 минут и мы примем ваш заказ. Эту меру мы разработали на всякий случай, но в итоге ни разу ей не воспользовались. Не пригодилось. И славно.
Лечение
Для того, чтобы начать лечить надо поставить диагноз, поэтому мы сфокусировались на performance-тестах. Часть команды пошла собирать реальный профиль нагрузки с продакшена с помощью GoReplay, часть команды сосредоточилась на синтетических тестах на Stage.
Синтетические тесты не отражали реальный профиль нагрузки, но они дали определённую почву для улучшений, показали некоторые слабые места системы. Например, незадолго до этого мы переводили MySQL-коннектор с ораклового на новый. В версии коннектора была бага с pooling sessions, которая приводила к тому, что сервера просто уходили в потолок по CPU и переставали обслуживать запросы. Мы воспроизвели это с тестами на Stage, зачинили и спокойно вышли на продакшн. Подобных кейсов было с десяток.
По мере диагностики и выявления причин проблем, точечно их исправляли. Дополнительно понимали, что наш идеальный путь — это асинхронный приём заказа. Начали работать над тем, чтобы внедрить его в мобильном приложении.
Адские недели: организация процесса
Команда из 40 человек работала над единой большой целью — стабилизация системы. Все команды работали вместе. Не знаешь, чем заняться? Помоги другим командам. Фокус на конкретных целях помог не распыляться и не заниматься ненужной нам ерундой.
Три раза в день была синхронизация, общий стендап, как в классическом скраме. На 40 человек. Лишь дважды за три недели (за почти 90 синков) мы не уложились в 30 минут. Самый долгий синк длился 57 минут. Хотя обычно они занимали 20-30 минут.
Цель синков: понять, где нужна помощь и когда мы выведем те или иные задачи на продакшн. Ребята объединялись в проектные команды, если нужна была помощь инфраструктуры, тут же приходил человек, все вопросы решались быстро, меньше обсуждения больше дела.
По вечерам, чтобы поддержать ребят, в нашей R&D-лаборатории готовили еду для разработчиков на вечер. Пиццы по самым сумасшедшим рецептам, куриные крылья, картошка! Вот это было нереально круто! Такая поддержка мотивировала ребят максимально.
Работать в таком нон-стоп режиме было чертовски сложно. В среду 25 апреля около 5 вечера к CTO подошёл Олег Блохин, один из наших разработчиков, который фигачил с субботы без остановки. В глазах у него была нечеловеческая усталость: «Я пошёл домой, не могу уже». Выспался и на следующий день был бодрячком. Так можно описать общее состояние многих ребят.
В следующую субботу 28 апреля (это была рабочая суббота для всех в России) было поспокойней. Мы уже не могли что-то изменить, наблюдали за системой, ребята немного отдыхали от темпа. Всё прошло спокойно. Нагрузка была, не столь огромная, но была. Выдержали без проблем, и это придало уверенности в том, что мы идём правильным путем.
Вторая и третья недели после падения прошли уже в более спокойном режиме, адского темпа до позднего вечера уже не было, но общий процесс военного положения сохранился.
Следующий день Х: проверка на прочность
Следующий день X был на 9 мая! Кто-то сидел дома и мониторил состояние системы. Те из нас, кто пошёл гулять, взяли с собой ноуты, чтобы быть во всеоружии, если что-то пойдет не так. Саша Андронов, наш СТО, ближе к вечернему пику отправился в одну из пиццерий, чтобы в случае проблем, увидеть всё воочию.
В тот день мы получили 91500 заказов в России (на тот момент второй результат за историю Додо). Не было даже малейшего намека на проблемы. 9 мая подтвердило, что мы на правильном пути! Фокус на стабильности, на перфомансе, на качестве. Дальше нас ждала перестройка процесса, но это уже совсем другая история.
Ретро Великого падения и 6 практик
В критических ситуациях вырабатываются хорошие практики, которые можно и нужно переносить в спокойное время. Фокусировка, межкомандная помощь, быстрый деплой на продакшн не дожидаясь полного регресса. Мы начали с ретро и дальше вырабатывали каркас процесса.
Первые два дня прошли в обсуждении практик. Мы не ставили себе цель «уложить ретроспективу в 2 часа». После такой ситуации мы готовы были выделить время на то, чтобы детально проработать наши идеи и наш новый процесс. Участвовали все. Все, кто так или иначе был задействован во время работ по восстановлению.
Как итог, получилось 6 важных практик, о которых хочется рассказать чуть подробнее.
Бонусы
21.04.2018 – памятная дата для Dodo IS. Каким запомнился этот день тебе?
Олег Блохин (Site Reliability Engineering): Шла первая или вторая неделя ФРК. Всё горело, никто ничего не понимал.
Паша Притчин (Site Reliability Engineering, Product Owner продукта Платформа Dodo IS): Сам момент падения я помню плохо. Помню, что это была суббота, был тёплый день.
На тот момент я занимался auth’ом, а это было далеко от больного бэкэнда. Поэтому непосредственно участия в момент падения я не принимал. Тогда мы делали свой бэклог независимо, не особо следя за происходящим в мобильном приложении.
Осознание происходящего пришло вечером, когда Саша Андронов (СТО) написал вот такое:
Для меня история падения началась именно с этого поста. В этот момент стало понятно, что всё действительно серьёзно.
На следующее утро я поехал в офис. Накануне я не участвовал в поднятии прода, поэтому контекста у меня не было. Но я не мог сидеть спокойно дома. Мне хотелось помочь хоть чем-то. Быстро выяснилось, что есть задача по снижению импакта от вчерашнего сбоя, а конкретно с поиском пострадавших клиентов. Кто-то делал заказ, деньги списались, а заказ не создался. Нужно было найти этих клиентов, вытащить их номера телефонов и передать в колл-центр, чтобы те обзвонили людей, извинились и сгладили негатив.
Со своей стороны мы отменяли эти транзакции в ручном режиме. Данные о корзинах с мобильного приложения и сайта хранились в redis, откуда их и надо было вытащить. Этим я и занялся. Если бы надо было делать что-то другое, я бы взялся. Ощущение тревоги и серьёзности происходящего не покидало.
В то утро все разработчики Dodo IS пришли в офис. За день мы сделали кучу задач по стабильности. Начиная от простого удаления мешающих эксепшенов, заканчивая переписыванием запросов в базу. Интересно, что в этот момент мы отбросили все структуры, команды, цели, продукты и прочее. Все стали одной командой разработки, цель у всех была одна — любой ценой не упасть вечером.
Утром в понедельник всё началось заново. Этот день и несколько последующих недель работ по стабилизации бэклога мы не зря назвали потом «Военным положением». Лозунг «Всё для фронта, всё для победы» весьма точно описывает происходящее.
Что всё-таки пошло не так?
Олег Блохин:
Основная причина падения – блокирующие запросы к базе. Старый механизм заказа очень сильно нагружал базу. Проблема частично решилась установкой ограничения на время выполнения запроса. Хорошо, что дальнозоркие ребята из клиентских сервисов уже заканчивали делать новый механизм приёма заказа. Спасибо Диме Новосёлову и Ане Морозовой. Отдельное спасибо Дамиру.
Паша Притчин:
Система не выдержала нагрузки и упала. Сервисы не смогли подняться сами, пришлось их долго и мучительно поднимать руками. Нагрузилась база (единая точка отказа), из-за чего вся сеть не могла нормально работать. Заказы не принимались.
Для меня сам момент падения не так интересен. Гораздо интереснее:
Что было самым ужасным в той ситуации?
Олег Блохин:
То, что во время инцидента никто ничего не понимал, а те, кто понимал не знал что делать.
Паша Притчин:
Понимание того, что мы могли бы всё исправить заранее и не допустить такой ситуации, но ничего не сделали. Надо помнить о таких событиях, чтобы не допустить их вновь.
Как это повлияло на нас? Какие принципы и подходы появились в тот момент и сохранились с тех пор в разработке?
Олег Блохин: Самое важное, что появилось после того случая – нагрузочное тестирование.
Паша Притчин:
Даже если они не падали, а просто тормозили, это всё равно могло вызывать каскадный сбой на более высоких уровнях, где замедление воспринималось как ошибка.
Мы выставили несколько ограничивающих настроек: innodb_lock_wait_timeout = 5; innodb_rollback_on_timeout = ON. Потом мы уже внимательно следили за ограничениями в базе. Не сказал бы, что после этого легендарного падения, все настройки были приведены в идеальное состояние, но другие падения показывают, что теперь мы умеем манипулировать такими настройками.
Назови три главных вывода, которые лично ты сделал из сложившейся ситуации?
Олег Блохин:
Что можно посоветовать другим, чтобы они не оказались в такой ситуации?
Олег Блохин:
Не откладывайте «технические» проблемы на потом, чтобы решить «бизнесовые». Лучше, когда у бизнеса нет одной фичи, чем когда лежит вся система. За собой надо прибираться.
Паша Притчин:
Надо всегда помнить, что мы все в одной лодке. Нам помогла взаимовыручка, гибкость, высокий уровень профессионализма и небезразличия. Эти качества нужны и сейчас.
Два года назад вся Додо готовилась к первой рекламной кампании на федеральных каналах — ФРК, как мы ласково её называли. Первой она была не только для нас, но и для всей страны — ещё никогда ни одна сеть пиццерий не запускала рекламу на первых кнопках телевизора.
В кампанию были заложены серьезные бюджеты и высокие ожидания, мы давали бесплатную пиццу за установку мобильного приложения, что должно было привести к лавинообразному росту заказов и новых клиентов. Пожалуй, лишь сравнением с первым запуском человека в космос (который, кстати, тоже случился в апреле) можно описать всю серьёзность отношения бизнеса к ФРК.
Вместе со всеми к рекламной кампании готовился и IT-отдел. Мы оценили потенциальный рост нагрузки на Dodo IS, и по нашим теоретическим выкладкам система должна была выстоять. Мы были достаточно самонадеянны и не проверили эти предположения хотя бы на тестовых окружениях…
Час X настал, ФРК стартанула. Гром грянул в первые же дни. Dodo IS начала падать, мы начали терять тысячи заказов и сотни новых клиентов, начали терять всё, во что вложили так много сил и денег. Трудно описать словами жгучее чувство стыда, который мы, разработчики, испытывали в тот момент. Это был оглушительный факап. Наши коллеги выложились на 146%, чтобы эта кампания стала возможной. И всё это для того, чтобы на старте Dodo IS тупо упала?
Позор решили смывать не кровью, но потом. Собравшись на экстренный брейншторм, мы выработали план действий, который позволил бы в самые кратчайшие сроки остановить падение. В этом плане было и создание нагрузочных стендов и асинхронный заказ и лимитирование запросов и многие другие оптимизации, которые мы постоянно откладывали в долгий ящик. Теперь же времени на раскачку не было, пришла пора действовать здесь и сейчас!
План спасения требовалось реализовать настолько быстро, насколько это возможно. Мы объявили «военное положение»: 11-часовой рабочий день, без выходных, на 2 недели. Переговорка «Сыктывкар» закрылась для бронирования и превратилась в штаб. Каждые 3-4 часа мы собирались в штабе, чтобы синхронизироваться по текущему прогрессу и при необходимости корректировали план. В те дни мы принимали решения с невиданной ранее скоростью, а воплощали их ещё быстрее. Золотые были времена.
Благодаря чёткой координации, мотивации, сфокусированности и ударным темпам работы уже через неделю ситуация стала существенно лучше. А ещё через неделю проблемы исчезли как страшный сон. Dodo IS смогла обслуживать вдвое больше заказов, чем до «военного положения». Нам удалось спасти первую ФРК! (правда от нас самих же).
С тех пор много воды утекло, и за эти годы Dodo IS пришлось столкнуться с куда большими нагрузками, чем в ту самую первую ФРК. Но теперь Dodo IS справляется. В том числе благодаря решениям из «военного времени», например, таким как асинхронный заказ. Ну а мы больше не факапим и регулярно проводим нагрузочное тестирование системы (особенно перед рекламными кампаниями), а наши тестовые пиццерии все так же называются loadtest, совсем как тогда, два года назад.