Как новость про +4 выходных дня уронила нам базу данных

    Этот день — яркий пример того, как несколько вещей, которые сами по себе не приводят к отказу, могут удачно совпасть. Итак, 23 апреля было совершенно обычным днём, с обычным трафиком и обычной загрузкой ресурсов. Как обычно, с запасом больше трети, чтобы при потере любого из ЦОДов пережить это без проблем. Никто не думал, что к серверному мониторингу нужно прикручивать ещё мониторинг того, что говорит президент на прямой линии, поэтому дальше случилось вот что:



    Примерно в 13:30 у нас резко подскочила нагрузка на поиск по авиации и по железнодорожным билетам. Где-то в этот момент РЖД сообщила о перебоях на сайте и в приложении, а мы начали экстренно наливать дополнительные инстансы бекендов во всех ЦОДах.

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


    Вводная


    Наша инфраструктура за почти двадцать лет развития существенно разрослась. Приложения живут на трех платформах – старый код на php в монолите, первая версия микросервисов – на платформе с самодельной оркестрацией, вторая, стратегически правильная, это OKD, в котором живут сервисы на go, php и nodejs. Вокруг всего этого десятки баз на mysql с обвязкой для HA – основная «гирлянда», обслуживающая монолит, и много пар master-hotstandby для микросервисов. Помимо них мемкеши, кафки, монги, редисы, эластики, тоже далеко не в единственном экземпляре. Nginx и envoy в роли frontproxy. Все это дело живет в трех сетевых локациях и мы исходим из того, что потеря любой из них не отражается на пользователях.

    АБ-тесты: mysql против эластика


    У нас есть три нагруженных продукта. Расписание электричек, где просто очень много входного трафика. Расписание железной дороги по поездам дальнего следования и покупка-бронирование ж/д билетов — там и трафика много и поиск посложнее. Авиация с очень тяжелыми поисками, многоступенчатым кэшом, большим количеством вариантов из-за пересадок и вилок «плюс-минус 3 дня». Давным-давно все три продукта жили только в монолите, а потом мы начали потихоньку выносить отдельные части в микросервисы. Первыми разобрали электрички, и, несмотря на то, что обычно пик на майских приходится именно на них, новая архитектура очень удобно и просто позволяет масштабироваться под рост нагрузки. В случае с авиацией растащили большую часть монолита, и прямо в момент дня П уже неделю шло А/Б тестирование саджеста географии. Сравнивали две версии реализации – новую, на elasticsearch, и старую, исторически ходившую в основную гирлянду mysql. В момент ее запуска, 15 апреля, уже поймали пачку проблем, но тогда их быстро зачинили, поправили код и решили, что больше оно не выстрелит.

    Выстрелило. Надо заметить, что старая версия – это своя реализация полнотекстового поиска и ранжирования на mysql. Не самое лучше решение, но проверенное временем и в основном работающее. Проблемы начинаются, когда любая из таблиц сильно фрагментируется, тогда все запросы с ее участием начинают тормозить и сильно грузить систему. И, очевидно, в 8 утра мы этот порог фрагментации переступили, о чем и сообщил алерт. Стандартная реакция на такую редкую, но всё-таки ожидаемую ситуацию, вывести затупившую реплику из-под нагрузки (с нашим проксирующим слоем из proxysql это делается элементарно), дальше запустить optimize + analyze и потом вернуть обратно. С учетом запаса по мощности в обычное время при обычной нагрузке это не приводит к каким-либо проблемам. Но тут в спокойное время мы этот алерт не обработали.

    13:20


    Примерно в это время звучит новость про майские праздники и нерабочие дни.

    Пик трафика около 13:30


    Как мы потом выяснили, буквально спустя несколько минут после того, как было объявлено про дополнительные выходные (которые не выходные, но «выходные») начался рост трафика. Нагрузка пошла резко. В пике было 2,5 — 3 раза от нормы и так продолжалось несколько часов.

    Нам почти сразу же посыпались «оповещения о ЧП» — алерты уровня критичности «просыпайся и чини». В первую очередь это был алерт о росте 50*-х ошибок, которые мы отдаем клиентам с наших frontproxy. Уровнем ниже сработал алерт на ошибки подключения к БД и в логах мы видели примерно такое: «DB: Max connect timeout reached while reaching hostgroup 102 after 3162ms». Плюс алерты о нехватке мощностей на трех группах серверов приложений старой монолитной платформы. Alert storm в чистом виде.

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

    Немного придя в себя в ситуации почти полного ахтунга, начали реагировать. Масштабировать сервера приложений, разбираться с ошибками на стыке приложение – база. Быстро вспомнили про «горевший» с утра алерт и в processlist болеющей реплики нашли наших старых знакомых из саджеста географии. Списались с командой авиа, они подтвердили, что рост трафика в последние числа апреля, которого даже близко не было прошлые 15 лет, реален. И это не атака, не какая-то проблема в балансировке, а натуральные живые пользователи. И под их живыми запросами нашей уже и без того перегруженной реплике стало совсем нехорошо.

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

    Почти параллельно, где-то в 13:40, начали наливать новые сервера приложений, понимая, что эта нагрузка не то, что не уйдет быстро сама, а скорее и вырасти еще может, а сам процесс для монолитной части – сильно не быстрый.

    Манипуляции с базой на какое-то время помогли. Примерно с 13:50 и до 14:30 все было спокойно.

    Второй пик — около 14:30


    В этот момент мониторинг сообщил нам, что лёг сайт РЖД. Ну то есть на самом деле он сказал, что бекендам поездов еще больше поплохело, а про РЖД мы узнали позже, когда вышла новость. В realtime для нас это выглядело так.


    Нагрузка, похоже, связанная с перебоями на сайте РЖД

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

    Ожидание не было скучным. Где-то за 5 минут узкое место системы каким-то до сих пор не совсем понятным образом «пропихнулось» с слоя приложения на слой БД, то ли на саму базу, то ли на proxysql. И к 14:40 у нас полностью остановилась запись в основной кластер mysql. Что именно там произошло, мы пока не разобрались, но смена мастера на hotstandby резерв помог. И минут через 10 запись мы вернули. Примерно в это же время решили принудительно перекинуть всю нагрузку от саджеста на эластик, пожертвовав результатами АБ кампании. Насколько это помогло, пока тоже не осознали, но хуже точно не стало.

    15:00


    Запись ожила, вроде все должно быть хорошо, и на репликах и на proxysql перед ними нагрузка в норме. Но почему-то ошибки при запросах на чтение из приложения к базе не заканчиваются. Примерно за 15-20 минут втыкания в графики по разным слоям и поиска хоть каких-то закономерностей осознали, что ошибки идут только с одного proxysql. Рестартанули его и ошибки ушли. Корневую причину раскопали уже существенно позже, при детальном анализе сбоя. Оказалось, что во время прошлого ЧП, за неделю до, во время старта АБ кампании про саджест, на proxysql не закрылись корректно соединения к одной из реплик гирлянды, с которой тогда производили манипуляции. И на этом экземпляре proxysql мы тупо уперлись в нехватку портов для исходящего трафика. Метрика эта, понятное дело, собирается, но вот вешать на неё алерт нам в голову не приходило. Теперь он уже есть.

    15:20


    Восстановили все продукты, кроме поездов.

    15:50


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

    Как часто бывает – починили в одном месте, сломалось в другом. Бекенды стали принимать больше соединений, фронтпрокси стали меньше отбрасывать клиентские запросы из-за переполнения апстримов, как следствие вырос внутренний межсервисный трафик. И сложился сервис авторизации. Это микросервис, но не в OKD, а на старой платформе. Там масштабирование попроще, чем в монолите, но хуже, чем в OKD. Поднимали минут 15, несколько раз выкручивая параметры и добавляя мощностей, но в итоге тоже заработало.

    16:10


    Ура, все работает, можно сходить пообедать.

    Красивые картинки


    Красивые они потому, что не до конца информативные, но оси не прошли проверку СБ.

    График 500-х:



    Общая картина по нагрузке за 2 дня:



    Выводы от капитана


    1. Спасибо, что не вечером.
    2. С алертами нужно что-то делать. Их уже очень много, но, с одной стороны, всё равно иногда не хватает, а с другой – некоторые продалбываются, в том числе и из-за количества. Да и стоимость сопровождения с каждым новым алертом увеличивается. В общем тут пока есть понимание проблемы, но нет стратегического решения. Оно прячется где-то на стыке процессов и инструментов, ищем. Но пару алертов тактически мы уже запилили.
    3. Стоит внимательнее следить даже за минорными апдейтами софта. Багу, из-за которой proxysql не закрыл сокеты, скорее всего уже починили. Но это был минор и не про безопасность, а такое мы катим не слишком оперативно.
    4. Микросервисы лучше монолита, а OKD лучше нашей самодельной платформы. По крайней мере с точки зрения простоты масштабирования.
    5. Мы молодцы. Подготовленная инфраструктура дала хорошую основу, а команда, несмотря на пару факапов, отработала очень круто для такой стрессовой ситуации.
    Туту.ру
    Tutu.ru — сервис путешествий №1 в России.

    Похожие публикации

    Комментарии 52

      +14

      Сам работаю в Туту.ру, а тут материал от коллег. Прочитал как детектив. Крутой разбор! Редкий случай и от того вдвойне интереснее. Пиши еще. И спасибо за оперативность в публикации.


      P.S. Факапы случаются, но редко когда компания признает его, да еще и делится опытом, как все полечили.

        –14

        Лучше бы компания выделила ресурсы на оптимизацию и устранение технического долга.
        А то сейчас это какой-то повальный тренд — забивать на алгоритмическую сложность и копить техдолг.

          +4
          Лучше бы

          Люблю, когда люди решают, как поступать другим людям. Или вы SEO этой компании?

            +19

            Не стал бы доверять стратегические решения SEO.

              +4

              SEO или CEO?)

              +2
              У нас идет большое количество проектов, направленных на отдачу техдолга (в вводной части поста были ссылки про это: раз, два). Другое дело, что всегда (как мне кажется) технари будут считать, что этого недостаточно, и что нужно переделать еще в паре мест, а бизнес — что слишком много и что технари не вылезают из рефакторингов. Просто разные взгляды и разные подходы, нужно уметь договариваться )
            +6
            Никто не думал, что к серверному мониторингу нужно прикручивать ещё мониторинг того, что говорит президент на прямой линии

            вот уж да уж, никогда не знаешь кто накинет на вентилятор и с какой стороны на тебя этот вентилятор подует))


            Стоит внимательнее следить даже за минорными апдейтами софта.

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

            На самом деле всегда всё решаемо и обсуждаемо. Вот пришёл на новую работу, надеюсь тут я увижу картину не хуже (а может и лучше).

              0
              Моя мысль — именно следить внимательно, это не равно «сразу накатывать». И не только из бизнесовых соображений, хотя они тоже есть, но и из технических — на каждый починенный баг может приходиться новый посаженный, проявляющийся примерно в настолько же редких краевых случаях. И как все эти краевые случаи выловить не на продакшене, а раньше — большой вопрос.
              +2

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

                +1
                непонятно (т.к. не специалиист), но очень интересно)

                а уж формулировка «Выводы от капитана» повеселила отдельно.
                  0
                  чОрт, я даже не подумал ее так прочитать. Десять лет прошло )
                    +1
                    Ничего не понял:
                    Как прочитать?
                    После чего десять лет?
                      +3
                      Простите, пожалуйста, эта ветка совсем оффтопная от темы статьи. Просто когда-то давно мы с lexxair играли в спортивное «что? где? когда?» в одной команде и я был ее капитаном.
                        +8
                        Простите, пожалуйста, эта ветка совсем оффтопная от темы статьи.

                        оффтопить, так оффтопить

                        «Tutu.ru — сервис путешествий №1 в России»

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

                        Среди длинного списка прокладок-агрегаторов, tutu отличается для меня лишь тем, что я читаю ваш корпоративный блог, остальные для меня безликие и не запоминаются.

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

                        1 история. В билете оказалась дата прибытия на несколько часов позже реальной.
                        К чему это привело.
                        Автобус не доехал до места назначения. Пассажир погиб по дороге, в лоб автобуса въехал грузовик с цементом. Пока он был в морге, мы считали его живым, потому что не о чем было беспокоится, вроде как время прибытия не наступило.
                        По факту, наступило, но из-за ошибки в билете я этого не знал.
                        Так что, когда в мою дверь постучали и вошли несколько человек, представителей администрации города, и сообщили интересные новости, вау-эффект был потрясающий.
                        Администрация города — молодцы, а вот tutu — нет.
                        «Хорошо», что человек уже умер, а вот если бы он был бы жив и ему была бы нужна помощь, мы бы могли узнать об этом с опозданием, а счёт идет на часы.

                        2 история.
                        Я не суеверный, помня о кривости туту, дал им ещё один шанс, но нет, всё было ещё хуже.

                        Купил билет.
                        На сайте написано о необходимости распечатать билет:
                        image

                        Изумившись тому, что мне пришлют билет в течение аж часа, жду билет.
                        В билете читаю:



                        С мыслью о том, что, даже если распечатаю, с таким бардаком мне это не поможет (я всё понял правильно, так и оказалось), оставляю всё как есть.
                        В билете написано: Автобус: Мерседес
                        Фиг вам, это была маршрутка

                        Прихожу пораньше. Ищу маршрутку, а где она? Вот стоит какая-то, но на ней не тот номер маршрута, что у меня в билете.
                        Мало того, время отправления тоже не то — оно на десять минут позже реального. Из-за этого я бы опоздал, если бы не пришёл заранее.
                        Спрашиваю водителя (мудило редкостное, как это часто бывает).
                        С повелителем маршрутки из аудитории «Радио Шансон» лучше не иметь поводов для общения. Благодаря tutu, поводов было достаточно.
                        Я тебе русским языком говорю, иди туда, делай то, что я тебе сказал.
                        За такое на улицах я обычно разбиваю лицо, это норм. Работает хорошо, пока меня ещё не зарезали но делать так с человеком, который сейчас повезт по трассе меня и других пассажиров, тактически неправильное решение.

                        А делать нужно было вот что — идти в кассу автовокзала, расталкивать бунтующую очередь, показывать паспорт и просить, чтобы меня внесли в ведомость, им пофиг на tutu. Они сказали, что для майских праздников делают исключение, но после майских праздников осуществлять посадку по билетам, купленных на сайтах, которые не умеют у них формировать ведомость (а tutu не умеет) больше не будут. «Ничё не знаем, все претензии к перевозчику, Транс-Юг.»
                        Так что, спасибо, что вообще пустили в маршрутку, оказали милость.
                        Придя заранее, я оказался в транспорте в числе последних, взмыленный. Ни о каком выборе удобного места не было и речи.

                        Какой я идиот, что не купил билет как «все нормальные люди», в кассе.
                        Tutu — это же прокладка на прокладкой — автовокзалом, они ни за что не отвечают.
                        tutu.ru Мы — лишнее звено. Запомни это, пассажир.

                        Великая миссия компании tutu состоит в том, чтобы получить с меня комиссионные.
                        Дальше меня просто подставляют.
                        Я получу бумажку из которой нельзя точно узнать:
                        когда отправление;
                        каков номер маршрута;
                        каким видом транспорта будет осуществляться перевозка;
                        нужно ли распечатывать.

                        Самое главное, что расставшись со своими деньгами, пассажир не узнает, пустят ли его в салон с этой филькиной грамотой — электронным билетом от tutu.ru
                          +3
                          Я не из туту, но мне прям очень кажется, что здесь проблема не в туту вовсе, а в том, что автовокзал из второго случая напрочь пытается саботировать работу с ИТ-системами.
                          Насколько я знаю, пассажироперевозки сейчас имеют одну общую систему, и все автовокзалы должны с ней работать.
                          Комиссионщиками в целом можно сказать про любую кассу/сайт продажи каких-либо билетов, не относящуюся к авто/жд/вокзалу / аэропорту. То, что какой-то автовокзал вводит свои правила регистрации пассажиров вовсе не означает, что туту плохой комиссионщик. Но как минимум одно туту полезное для вас сделал — вам не пришлось ехать заранее на автовокзал и покупать в кассе билет, а значит некую пользу он вам принёс.
                            –1
                            >*Но как минимум одно туту полезное для вас сделал — вам не пришлось ехать заранее на автовокзал и покупать в кассе билет, а значит некую пользу он вам принёс.*

                            Совсем нет. После приезда я был ещё раз на вокзале в тот день и мог купить билет там, что и надо было сделать.
                            Смысл обращения к услугами этой компании был в том, чтобы избежать социальных контактов и выбрать более удобное место — как видите, электронный билет от tutu в этом деле только навредил — и в кассу пришлось бежать перед отправкой, и с водилой ругаться и сидеть на неудобном месте…
                            Такая услуга — мусор.
                            И это дорогая услуга.
                            Посмотрел, при стоимости билета в 880 рублей в tutu, у другого агрегатора — 705 рублей.
                            Tutu.ru Мы не дешевим.

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

                            Конечно.
                            Tutu.ru Мы ни при чём

                            >*… а в том, что автовокзал из второго случая напрочь пытается саботировать работу с ИТ-системами.*

                            Благодаря блестящей работе посредника-tutu, по-сути, остался без билета на этот рейс.
                            Ведь в маршрутной квитанции у меня другой рейс, другой номер маршрута, другое время отправления.
                            Если бы вокзал саботировал, то меня не посадили бы вообще.

                            >*То, что какой-то автовокзал вводит свои правила регистрации пассажиров вовсе не означает, что туту плохой комиссионщик. *

                            А что, есть хорошие?
                            Хорошая компания-прокладка — это отсутствующая. Делаю себе зарубку на носу — покупай билет по как можно более короткой цепочке, так делаю с авиабилетами ещё с тех времен, когда, благодаря Ozon.Travel потерял тысяч 15
                            Теперь и с автобусными билетами так буду делать.

                            Tutu — это художники. Они рисуют черными пикселями по белому полю в бланках нечто, что не соответствует реальности. Они — художники, они так видят. Им фиолетово, как моим фиолетовым яйцам. Пасхальным. Как водителю фиолетовой маршрутки с того рейса.

                            Всё, чем мы занимаемся в Туту.ру, — на 100% пропитано информацией и технологиями для её сбора, хранения, интеграции и анализа.

                            Стоит минуту потыкать в то, что они пропитали, вылазит всякое
                            Вот сейчас они нарисовали на своем сайте:



                            Пиксель-арт, да. Любые совпадения с реальным временем — случайные. Они — художники, они так видят.
                            17:00 + 4:30 = 21:30
                            Оба населенных пункта находятся в одном часовом поясе.
                            Но они ниасиливают в точное значения отметок времени. Первый билет содержал ошибки, второй содержал — неверное время отправления, ну и просто ткнул в первое попавшееся место их сайта — ошибка во времени.
                            Что то время? Художник думает о вечности.

                            TimsTims что в Вас побуждает защищать раздолбаев tutu.ru?
                              +1
                              по-сути, остался без билета на этот рейс, в маршрутной квитанции у меня другой рейс, другой номер маршрута, другое время отправления. Если бы вокзал саботировал, то меня не посадили бы вообще.
                              Может быть как-раз и саботировал — в базу забивает один номер маршрута, а едет фактически другой. Делает так, чтоб все покупали только в кассе, чем сталкивались с такими трудностями.
                              А что, есть хорошие (посредники)?
                              Ну например авиабилеты очень часто покупал в авиакассах, и нормально. Из плюсов — через такие авиакассы можно очень нестандартно изменить билет — например докупить один билет на несовершеннолетнего и прикрепить ко взрослому билету, чего ни один сайт не предложит.

                              Они — художники, они так видят. Но они ниасиливают в точное значения отметок времени.
                              Да, это треш конечно по времени. Но что-то мне подсказывает, что не только у туту такая жопа.

                              TimsTims что в Вас побуждает защищать раздолбаев tutu.ru?
                              Всё очень просто, я ищу истину, которая рождается в споре.
                            +5
                            Во-первых, от лица компании и от меня, как от руководителя вертикали автобусов, примите наши извинения о несоответствии сервиса вашим ожиданиям.

                            По времени отправления и прибытия мы получаем информацию напрямую от систем продаж билетов автовокзалов и перевозчиков, время прибытия является плановым, о чем мы предупреждаем на сайте, и зачастую зависит от ситуации в дороге, может изменяться как в меньшую, так и большую сторону. К сожалению, на текущий момент у нас в стране нет в открытом доступе системы онлайн мониторинга за передвижением автобусов, и мы не можем узнать о текущем местоположении или состоянии транспортного средства без информации со стороны перевозчика или пассажиров, СМИ.

                            Про электронный билет: одно из самых важных изменений, которого мы, tutu.ru, помогли достичь — это изменения в федеральном законе касающиеся признания электронного билета достаточным основанием для посадки на автобус, о чем я рассказывал в материале habr.com/ru/company/tuturu/blog/551090. К сожалению, не везде на местах соблюдают постановление, мы регулярно проводим мониторинг направлений где пассажиров не пускают с электронным билетом и видим, что за 4 месяца этого года количество вокзалов, осуществляющих посадку по электронному билету увеличилось на 30-40%и охватывает большую часть России. Мы актуализируем информацию о приёме электронного билета регулярно на основании информации от автовокзалов и из отзывов. То есть вас должны были принять по билету в электронном виде, и когда отказали — нарушили действующее законодательство. Но поскольку такие нарушения достаточно часты, мы предупреждаем пользователей о том, на какие вокзалы надо печатать билет. Очевидно, в вашем случае эта система дала сбой.

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

                            Пожалуйста, отправьте мне в личку или на [email protected] с темой «Вопрос с Хабра» номер ваших билетов и данные пассажиров, чтобы мы могли проверить действия наших сотрудников по вашим обращениям, а также провести проверку перевозчика и его расписания.
                              –6
                              Во-первых, от лица компании и от меня, как от руководителя вертикали автобусов,...

                              Прекрасно, «вертикаль автобусов» звучит дивно.
                              Меня вёз, в таком случае представитель горизонтали маршруток.


                              Официальный ответ компании не может писаться от лица анонимуса "Vlad_T".
                              Автор официальных ответов подписывается не только фамилией и именем, но да, мне после такого ответа всё равно, как Вас зовут, не представляйтесь и дальше, Вы останетесь в моём сердце как Vlad_T.


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

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


                              Каким образом верное решение арифметической задачи по сложению времени отправления и заявленного времени пути зависит от обстановки на дороге?
                              Ещё раз, уважаемый руководитель вертикали автобусов, почему у Вас на сайте не сходится время в пути, время отправления и время прибытия между собой в рамках арифметического выражения?
                              "2+3=6" – метафоры понятнее, или лучше не надо? Если нужно ещё как-то уточнить вопрос, не стесняйтесь, я буду уточнять до тех пор, пока не получу ответ.


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

                              О-о, какие сложные и неубедительные оправдания. Оказывается, для того, чтобы написать в билете 16-50 вместо 17-00, нужно отслеживать местоположение транспорта онлайн, надо же.
                              Вы ссылаетесь на плохую погоду на Марсе вместо того, чтобы признать, что tutu неизвестно реальное расписание движения автотранспорта.


                              Про электронный билет:
                              [многа-многа букв]
                              То есть вас должны были принять по билету в электронном виде, и когда отказали — нарушили действующее законодательство.

                              Вы сделали вид, что не заметили самого главного.
                              Никого вообще не волновало, в каком виде у меня билет.
                              Меня отказались сажать в транспорт по билету, купленному у tutu, вовсе игнорируя тот факт, была ли маршрутная квитанция распечатана или показана на телефоне.
                              Не уводите разговор в сторону – самое главное, что должен знать пассажир, приобретая билеты у Вашей компании, что ему не поможет то, что он распечатал билет.
                              Ещё раз – билет оказался недействителен вовсе не потому, что он не был распечатан.
                              Я показал билет на телефоне и был послан в кассу.
                              Если бы распечатал, аналогично, был бы послан в кассу. И Вас бы, руководитель вертикали автобусов, то же послали бы.
                              Если что-то всё ещё непонятно, я ещё раз для Вас распишу, обращайтесь. И так до победы, Вы сможете понять и признать, что ещё важнее, что выписываете документы, которые вокзалы считают невалидными независимо от того, напечатаны они ли нет. Я верю в Вас, уважаемый Vlad_T.


                              Очевидно, в вашем случае эта система дала сбой.

                              Для меня очевидно, что это именно Ваш случай, как «руководителя вертикали автобуса». То, что произошло, абсолютно не зависело от моих действий. Это результат именно Вашей работы или её отсутствия с перевозчиками на местах


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

                              Пассажирам нет дела до «если их предоставил». Если я опоздаю из-за того, что в билете не то время отправления, что и было у меня, мне абсолютно всё равно, по чьей вине это произошло.
                              Я запомню и уже запомнил и непосредственно с помощью вертикали автобусов закрепил, что tutu – это проблемы. Проблемы – это tutu.
                              Когда указываешь на эти проблемы, получаешь пространные рассказы об успехах tutu на ниве законотворчества, уходы в сторону, увиливания и отсылки к неким моим ожиданиям.


                              Пассажиры, покупайте билеты напрямую у перевозчиков и в кассах вокзалов.
                              tutu не нужен.


                              Пожалуйста, отправьте мне в личку или на [email protected] с темой «Вопрос с Хабра» номер ваших билетов и данные пассажиров, чтобы мы могли проверить действия наших сотрудников по вашим обращениям,….

                              Не было никаких обращений.
                              По поводу проверки действий – да, пожалуйста проверьте именно Ваши же собственные действия, как лица, представляющего компанию. Разберите пожалуйста, структуру беседы, Ваши мотивы как сотрудника и Вы cможете проверить, достигнуты ли поставленные в общении цели, а если нет, то почему? И что нужно делать, чтобы достигать их.


                              Ну а пока Ваши ответы приводят только к дальнейшей эскалации. Казалось бы, мнение о tutu нельзя испортить, но Вы смогли. Вы раз за разом делали такие ходы в общении, что это привело просто к омерзению при слове tutu.
                              Заметьте, тот человек, который не доехал, это мой отец. Из-за того, что время tutu пишет от балды, мы считали его живым, хотя уже 2 часа как нужно было обзванивать морги. И даже после такой истории я ещё оставался лояльным к tutu.
                              Вы своими ответами полностью похоронили мою лояльность к компании, в которой в настоящее время работаете.


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


                              …а также провести проверку перевозчика и его расписания.

                              С чего бы мне это было нужно?
                              То, что здесь расписал, по сути представляет часть работы тайного покупателя по внешнему аудиту качества сервиса; продемонстрировав билеты, я бы подарил почти полную проверку, а еще много лет назад мне за элементарные проверки платили много больше, чем стоил этот билет туда-обратно.
                              С чего бы мне вкладываться в работу tutu?
                              Мне совсем невыгодно, чтобы tutu работало лучше – ведь не буду пользоваться её услугами и никому не посоветую.
                              Я заинтересован в росте Ваших конкурентов, того же Яндекса, например. Да и то, чисто теоретически. В который раз убедился, что прокладки над перевозчиком не нужны.


                              примите наши извинения о несоответствии сервиса вашим ожиданиям.

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


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


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


                              Vlad_T, Ваш ответ совершенно бездарен.
                              Вы только подлили масла в огонь.
                              Может, участие в жизни корпоративного блога путем общения с бывшими клиентами – это не Ваше?


                              Ваши извинения очень дёшево стоят и не приняты мною.

                                –2

                                Ага, карма ожидаемо меняется в направлении нуля.
                                Не-а, работники tutu, вам это не поможет заткнуть моего персонажа. Результат будет ровно наоборот.

                                  –2

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


                                  tutu.ru Платите молча

                    +16
                    Напомнило:
                    британские энергетики вынуждены смотреть «Би-Би-Си» и срочно корректировать запросы энергосети. По окончании передач, которые не прерываются рекламой, британцы немедленно включают электрочайники и открывают холодильники. Явление получило название TV pickup.


                    habr.com/ru/post/369777
                      +1

                      Полнотекстовый поиск в mysql — это провал.

                        +2
                        Это легаси. Когда-то это было оправданно, сейчас переросли и отказываемся от него в пользу более подходящего решения.
                          0

                          Это года так с 2015 не оправданно минимум.

                            +2
                            Я не скажу сейчас с полной уверенностью, но скорее всего этот саджест появился раньше 2015 года.
                              0

                              А что, до 2015 года MySQL мог в этом тягаться с Solr и Sphinx?

                                0

                                Я с запасом на легаси дату взял)

                                  +3

                                  2010 год появления :) sphinx там был, но не давал реального роста производительности конкретно в этой задаче, а сложности с поддержкой все же были. Поэтому ушли от него на родной полнотекст.
                                  С задачей решение справлялось, поэтому не трогали. Сейчас есть задача изменения логики, делаем по красоте.

                            +2
                            Полнотекстовый поиск в mysql — это провал.

                            А можно подробнее? Что с ним не так?


                            Моя история успеха

                            От себя скажу, что реализация json_arrayagg в Маше провал: в случае пустого множества возвращается не NULL или строка "[]" (пустой JSON массив), а строка "[null]"

                              0

                              медленный при индексации, медленный при поиске, лексической гибкости никакой… Sphinx по сравнению с ним — просто космолёт, да и можно вынести хоть на отдельный сервер, и если даже поиск будет тупить — основной сервер при этом будет нормально работать.

                            0

                            rdaemon а что по осям ординат на графиках то? время ответа, кол-во запросов?

                              +1

                              Количество запросов

                              0

                              Нагрузочное тестирование могло бы помочь?

                                +1

                                Не особо — мы знали, что х2 выдержим, а больше не ожидалось по бизнес показателям. Обычно под ожидаемый рост заранее мощностей добавляем. А тут такой Black Swan очередной прилетел

                                  +1
                                  Ну и нагрузочное тестирование на 99% не отловило бы «кривой» state с незакрытыми коннекшнами на proxysql
                                    0
                                    Наверное, это на 99% было неправильное тестирование.
                                      0
                                      Возможно ) Но я очень плохо представляю, как его можно было бы устроить, чтобы оно это поймало. Для полного воспроизведения ситуации нам нужно было бы в один из прогонов произвести на стенде те же манипуляции, которые мы делали на проде за неделю до дня X (из-за которых коннекшны подвисли). И тогда следующий прогон дал бы искомый результат. Но вот как сообразить заранее в тест-планы вписать эту первую манипуляцию — не представляю.
                                  +3
                                  Вы в облаке живете или много свободного железа? Не очень понял, куда вы наливать начали софт под нагрузкой?
                                    +2
                                    Частично в облаках, частично на своём, подробно про это писал Molodoi. На своём какой-то запас тоже есть
                                    –1
                                    А можно еще нейронные сетки и прогнозирующий алгоритм прикрутить, и будет предупреждать чуть раньше чем сам можешь достоверно убедится визуально.
                                      0
                                      И как бы они справились в данном случае? Или кормить в сетку все текущие новости, чтобы сетка по ним пыталась понять, будет ли новый трафик?
                                        0
                                        Что-либо качественно прогнозировать по новостям это пока не делается, пока не изобрели, насколько я знаю. Я же подразумеваю, что какая-либо новость имеет инерцию, что она не сразу в полной степени отражается на всем, на что она может влиять.

                                        Скажем в статье, график отнюдь не моментально уходит в пик. И по начинающемуся подьему можно предугадать тенденцию, что оно дальше будет расти. Но опять же, не всякий начинающийся подъем будет расти дальше, или угадать и на сколько именно. И не всякая новость начинает действовать от момента объявления, может и раньше.

                                        Можно элементарно из графика по подобию отрезков смотреть какому варианту событий предшествует текущий момент, с каким разбросом (дисперсией) может развиваться ситуация. Вариантов анализа много, и текущий график вероятно прогнозируем, это не форексовские графики, где сами люди пытаются обмануть график.

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

                                        Любое прогнозирование, самим человеком или компьютеризированное, это возможность среагировать пораньше, и на сколько пораньше, это как раз зависит от качества прогнозирования. Вопрос лишь в целесобразности таких средств.
                                          0

                                          А потом вы прикручиваете эту штуку к бирже и делаете миллион процентов в неделю? по вашей логике мир новостей детерминирован )

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

                                            Только я не понимаю, почему Вы хотите именно новости ловить? Если Вы видите расходящиеся круги на воде, Вам совсем не обязательно было видеть куда упало, что бы знать где оно примерно упало. И совсем не обязательно знать что именно упало, и после еще дожидаться когда они дойдут до точки Х, что бы знать, что они до точки Х дойдут. Особенно если есть возможность померить и посчитать.
                                      +6
                                      Спасибо за статью. Было интересно. Круто когда компания не стесняется писать о своих недостатках. Вы молодцы.
                                        +4

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

                                        +1
                                        «наш ДБА, вывел реплику из-под нагрузки, прибил долгоживущие процессы и выполнил стандартную процедуру оптимизации таблиц».

                                        Мне одному кажется, что истории из серии прибить долгие запросы в БД и сделать оптимизацию — должно быть делом рук службы мониторинга/дежурных админов и/или вообще какой-то автоматизации?
                                        А роль ДБА — предотвращать в т.ч. ситуации с долгими запросами.
                                          +4
                                          Вот это очень хорошие вопросы и достаточно сложная тема.
                                          Написать автоматику, которая бы прибивала только «вредные» долгие запросы, при этом не трогая те, которые долго работают ожидаемо, не очень тривиально. Написать что-то простое для использования во время подобных сбоев — можно, но пользы от этого будет не очень много.

                                          Про процессы и людей. Мы пробовали жить с выделенной второй линией, которая как раз обрабатывала поток сервис-деска, что-то автоматизировала, что-то чинила вручную. Не зашло. Сейчас админы сами дежурят, сами автоматизируют, сами настраивают мониторинг и следят за ним. Все это, как мне кажется, стимулирует изначально делать более надежные системы, потому что все ошибки прилетают тебе же и это прям идеальный вариант обратной связи. У такого подхода есть свои недостатки, он наверняка применим далеко не в каждой команде и не в каждой компании, но нам сейчас норм
                                            0
                                            Мы пробовали жить с выделенной второй линией, которая как раз обрабатывала поток сервис-деска, что-то автоматизировала, что-то чинила вручную. Не зашло.

                                            А можно про это подробнее? Я помню, на эту вторую линию подавалось много надежд, когда АБ её возглавил, но что же случилось потом?

                                              0
                                              Привет) Ниже — исключительно про команду, не про компанию в целом, у нас все-таки специфика.

                                              Вторая линия помогла перенастроить мониторинг и автоматизацию и в этом она надежды оправдала. Но потом с выделенной второй линией получалось, что система отдельно у админов, а мониторинг и автоматизация той же системы — отдельно, у саппорта. Эффективно взаимодействовать получалось не всегда, обмен знаниями в обе стороны был достаточно ограниченным. Кроме того, были проблемы с приоритизацией, когда что-то было нужно друг от друга, ощущение единой команды тоже то было то нет. Ну и у ребят из саппорта было непонимание куда и как расти и развиваться.

                                              В итоге через достаточно тяжелый для всех период пришли к «you build it, you run it» и по ощущениям стало сильно проще. Наверное, все проблемы, о которых я писал выше, тоже можно было бы решить как-то иначе, без смены подхода. Но пока кажется, что этот переход был удачным — летаем так уже больше двух лет и желания вернуться не возникало.
                                                0

                                                Привет-привет :)


                                                пришли к «you build it, you run it»

                                                Ясно. С повальной докеризацией и serverless замечаю тенденцию, что админов в компании может вообще не быть. Зачем платить зарплату человеку, которого может заменить AWS или просто достаточно рукастый разработчик, чтобы поддерживать супервизор в свободное от разработки время? Но это с оговоркой, что я сужу по ситуации в "столице стартапов" (Берлин).

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

                                        Самое читаемое