Я не уверен, что это история для Хабра; с другой стороны, я уверен, что эта история именно для хабра. Так это или нет, пусть судит читатель, а я попробую, насколько, конечно, способен, ее подробно рассказать с использованием большого количества букв и совсем без картинок. Причем так, чтобы меня поняли не только люди тесно связанные с данным видом деятельности.

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

Итак, как у любого «большого» проекта у нашего тоже должен был быть свой сайт с блэк джеком и сами знаете чем. Так вот, этот сайт при подключении нового абонента согласно условиям подключения получал обезличенные данные. Город, улица, дом и какой-то уникальный идентификатор. Задача сайта, получив информацию, отобразить эти точки на карте. Процесс преобразования названия в координаты (широта, долгота) называется прямым геокодированием (есть еще обратная — ну, вы наверное уже поняли ее смысл без объяснений). Так вот, прямое геокодирование требует специфичных данных, которых ни у кого нет, кроме пары известных компаний с их же картами. Правда, у меня была еще одна компания, но ее возможности процесс упрощали довольно слабо.

Так вот, все эти компании, конечно, не ждут всех желающих загрузить свои сервисы большим кол-ом запросов и наглецов бы быстро отсекли, но в нашем случае было все просто. Конечно, абонентов было очень много, но не настолько, чтобы такие крупные компании прочувствовали наглых пользователей в лице «меня». Одной из проблем подобных запросов являются ошибки или большое количество вариантов в ответе. Когда приходил адрес или дом от оператора (а приходило это с помощью специального API на сайте автоматически, то есть если где-то в офисе оператор вбивал нового абонента в своей программе в свою базу, то этот же адрес автоматом попадал на сайт) сайт ставил адрес в очередь и через какое-то время пытался этот адрес перевести в координаты.

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

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

После подготовки всего необходимого обновление было успешно «залито» на сервер заказчика, доступ к которому был только один и только через панель управления. Для знающих людей — никакой. Стоит добавить, что к этому моменту количество «абонентов» в БД сайта уже имело большое количество знаков. В процессе обновления что-то пошло не так, как хотелось бы. Один из самых простых вариантов в этой ситуации — забыть всё это недоразумение и вернуть сайт к его виду ближайшего прошлого. И вот, будучи главным разработчиком в этой маленькой конторке, на программиста + я, решил откатиться прямо на «бэкап», которую мне любезно предоставила панель управления, которую, в свою очередь, установил какой-то крутой админ оператора.

Я проверил все детали, посмотрел содержимое «бэкапа», а точнее, торжественное обещание Панели, что в бэкапе содержится все каталоги, сайт, база данных, настройки и т.д. и т.п. Я вообще всегда отличался чутьем в заднем месте — это отмечали многие работодатели, смотря как работают мои поделки. Почти все поделки предусматривали любое самое невероятное развитие событий (некоторых это даже бесило, не все любят, когда проект предусматривает всё) и очень редко по-настоящему давали неприятный баг. Так вот, мое заднее место, посмотрев на всю эту чудо-панель, почувствовало неладное и я решил связаться со случайно знакомым, админом в этой компании, который отвечал именно за этот сервер (зы. официально я никаких знакомых не имел и обязан был работать только через манагеров). Я постучался к нему в аську и задал простой вопрос: «Слушай вот тут у вас в панели написано, что «бэкап» включает в себя ......" ну классический ответ на классический вопрос: «Да конечно, 100%». «Ну ок» — сказал я и нажал кнопку…

Не знаю, сколько конкретно времени прошло, но панель управления выдала фразу: «Система восстановила сайт из архива за .....». Ок, подумал я, и обновил сайт в другой вкладке. Он почему-то заругался странными ошибками и я, еще не особо поняв произошедшее, полез смотреть глубже. В этот день и девушки и женщины и даже сис. админ узнали, что есть ситуации, когда даже я, который никогда за 5 лет ни ни ни, могу четко и громко высказать все свои знания могучего русского. Фактически передо мной был пустой сайт без кода, без базы. Все, кто повернулся в этот момент, посмотреть на меня, и без слов понимали всю трагичность ситуации. В истории было много всякого, и ситуаций неприятных, но еще никогда за 5 лет работы я не выражал свои эмоции настолько глубоко и четко. Кто-то попытался спросить, что происходит, но быстро понял, что сейчас лучше меня не трогать. От слов лучше не подходи и даже не заикайся…

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

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

После этого случая моя задница стала еще более внимательной ко всем действиям, да и доверять я стал только ей и никому больше на долгие годы! Многие еще спрашивают, а как ты вообще смог восстановить базу? Ох… это блин магия, наверное, которая приходит с опытом и ты знаешь немного больше в этих вопросах, а еще повезло, что создатели этой панельки (кстати, крутая компания, да и панель очень известная) были криворуки не только в вопросах «бэкапа», но и в других, что позволило произойти чуду из чудес и спасти мой зад от еще больших приключений.

P.S. Сам проект уже давно прекратил свое существование и от него осталась эта незабываемая история на всю жизнь.
Поделиться с друзьями
-->

Комментарии (11)


  1. VMichael
    13.02.2017 22:08
    +1

    Мораль сей басни?


    1. Jogger
      13.02.2017 22:16
      +8

      «Нецензурная лексика — незаменимый инструмент в исправлении факапов»


      1. VMichael
        13.02.2017 22:17

        О, как :)
        Тогда ок.


    1. hudson
      13.02.2017 22:17
      +4

      Позволю себе предположить что: а) теперь автор делает бэкапы б) самостоятельно в) перед (!) обновлением =)

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


    1. kshmatov
      14.02.2017 09:41
      +1

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


  1. phoenixweiss
    13.02.2017 22:35
    +21

    Вы уверены что это материал для Хабра а не для личного бложека или IT-Happens?
    Несмотря на то что история стара как мир, тут плохо все от стиля повествования до отсутствия конкретики. Истории факапов бывают хороши в том случае когда извлекаешь из них полезные уроки, подходы, решаешь в экстремальном режиме задачи, которые вне этого режима казались неподъёмными. Вот из недавнего инцидента с gitlab я полезной информации извлек больше чем из всех подобных факап-статей за последние полгода. А тут что? Случилось *** — поматерились, подняли, история такая, да.


  1. greabock
    13.02.2017 22:49
    +4

    У меня сломалось — я починил.


  1. Andrey_Volk
    13.02.2017 23:23

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


    1. iWheelBuy
      14.02.2017 06:46
      +1

      И всё-таки это просто история… В разделе разработка ей не место. В песочнице больше достойных материалов, которым не дали инвайт… обидно


  1. ilyaplot
    14.02.2017 13:29
    +1

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


    1. hockfan
      15.02.2017 09:46

      Эта история была написана для песочницы давным давно (собственно только для читателей песочницы и писалась). Не знаю почему она вдруг, спустя столько времени, получила инвайт. Вам повезло — у вас были логи (к тому же всего 8 часов, а не вся база за год работы). Здесь, к сожалению, обычный MyISAM и никаких логов. Повезло, что панель управления не только криво делала бэкапы, но также криво удаляли данные с носителей (а может это наоборот гениальная задумка авторов на черный день). Даже если кто-то один сделает вывод, что бэкапы гораздо важнее, чем ему думалось ранее — эта статья сделает одно доброе дело.
      А статьи зря не пишите. Лично я захожу на хабр за подобными статьями, а читаем в итоге «5 самых популярных ....». Жаль…