{"id":13571,"url":"\/distributions\/13571\/click?bit=1&hash=d83cff4565300d1a2d0608fa73dd700b196f4b77356ac6255703ca3cdf2503d0","title":"\u041a\u043e\u043b\u043b\u0430\u0431\u044b, \u0440\u0435\u044e\u0437\u044b, \u043a\u043e\u043b\u043b\u0430\u0436\u0438... \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0432\u0441\u0451 \u044d\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"bf0e0fe0-842c-5899-bb40-4efc00426ccf","isPaidAndBannersEnabled":false}

Падения onlinePBX. Причины, последствия и уроки

В феврале onlinePBX очень сильно просел в надежности. Наш SLA упал ниже плинтуса. Нас материли и называли клоунами, нам угрожали.

График показывает падения сервиса

Все началось в ноябре после увольнения самого ценного сотрудника

Фактически, он в одного последние 6 лет делал наше имя. Благодаря ему слова надежность и качество произносились нашими сотрудниками с особой гордостью. И вот он ушел.

Естественно, подготовить ему замену за месяц и даже за год невозможно. Он ловко манипулировал шестнадцатью серверами и мог наперед предсказать какая проблема нас ожидала в будущем. Мог не только предсказать, но и предотвратить.

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

И вот недавно, во время очередного небольшого обновления сервера, боец забыл указать точку в следующей команде:

[email protected] ~/tmp rm -rw /etc

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

Начали оперативно восстанавливать, нам понадобилось ориентировочно 2 часа. Восстановили пользовательские настройки, конфигурации программ, перенесли аудио-файлы. Проходит 10 минут и телефония начинает падать снова и снова. Мы несколько дней бились головой о монитор, чтобы понять причину такого поведения. Точно такая же конфигурация работает на других серверах, но с этим что-то идет не так.

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

Тут важно сказать, что мы не являемся оператором связи. OnlinePBX на данный момент поддерживает более 200 сторонних операторов — так не делает никто в мире.

Ок, клиента изолировали, с ним разберемся позже. Ребуты прекратились, но мы стали наблюдать проблемы с интеграциями. При входящем звонке мы проверяем в сторонних CRM-системах наличие контакта и этот скрипт перестал срабатывать обрубая звонки. Мы начали его дебажить и выяснили, что скрипту не удавалось подключиться к базе данных на другом сервере. Проверили пароли, подключились вручную - работает. Подозрение пало на шифрование, а дальше выяснилось что PHP после обновления стал требовать указывать тип шифрования явным образом, не подставляя значения по умолчанию. Б - безопасность.

Естественно, такое бесследно не проходит

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

Интересные факты

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

Казалось бы, что при проблемах должен происходить отток клиентов, однако, происходило все ровно наоборот. Отток сократился с 5% до рекордных 3,6%. Это благодаря хорошей работе нашей технической поддержки, которая сумела мобилизоваться и работать в условиях тройной нагрузки, в том числе и психологической.

Отток пользователей

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

Выводы

1. Продолжать переезд в контейнеры. Нужно учиться восстанавливаться после сбоев быстрее и не лазать на серваки руками.

2. Никогда не надеяться на то, что сотрудники будут с тобой вечно.

3. В погоне за функционалом не забывать про надежность.

4. Всегда помнить кто и почему нам доверяет.

P.S. С боевым крещением, бойцы.

0
21 комментарий
Написать комментарий...
Айдар Зарипов
Мы потеряли сервер на котором было более пятисот компаний. Потеряли совсем.
Начали оперативно восстанавливать, нам понадобилось ориентировочно 2 часа.

Вот у меня под контролем более 50 серверов каждый день. Там чего только нет, начиная от owncloud, почтовых и заканчивая серверами для ботов парсеров...но как вы могли нормально на виртуалки не посадив - 500 клиентов даже найти и тем более не привести в порядок вовремя? Вот вообще в голове не укладывается...а то что допустили чайников к рабочим машинам которые под root сразу rm пишут это вообще пипец. Минус 200 к вашей ауре.

Ответить
Развернуть ветку
Ярослав Зиновьев

"...Минус 200 к вашей ауре..."
——
Может, и так, зато +10 к доверию ( рассказал о реальной своей неудаче и повысил прозрачность внутренних отношений) и +200 к пиару. Вот так, минусы обращаются в плюсы, по-моему, достаточно грамотно))

Ответить
Развернуть ветку
Вячеслав Че
Автор

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

Ответить
Развернуть ветку
Айдар Зарипов

Ничего. Как работало всё так и будет. Все инструкции написаны в видеороликах - куда и что тыкать и что не тыкать, как восстанавливать и всё такое. Я могу хоть завтра плюнуть на всё.

Ответить
Развернуть ветку
Вячеслав Че
Автор

Ну, вот вы умный человек, завидую. Учусь на своем опыте.

Ответить
Развернуть ветку
Pavel Che

"Никогда не надеяться на то, что сотрудники будут с тобой вечно."
В вашем случае нужно было срочно обратится к этому незаменимому сотруднику, для восстановления работы было бы все гораздо быстрее. Естественно если вы его не смертельно обидили а он сам ушел.

Ответить
Развернуть ветку
Вячеслав Че
Автор

второе :(

Ответить
Развернуть ветку
Pavel Che

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

Ответить
Развернуть ветку
Вячеслав Че
Автор

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

Ответить
Развернуть ветку
Вячеслав Че
Автор

Уже нашли :)

Ответить
Развернуть ветку
Vitaly Karasik

Главный вывод ИМХО - документация, документация и документация, включаю регулярное тестирования disaster recovery сценариев.

Ответить
Развернуть ветку
Александр Иванов

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

Ответить
Развернуть ветку
Ashandy Chegevara

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

Ответить
Развернуть ветку
Вячеслав Че
Автор

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

Ответить
Развернуть ветку
Ashandy Chegevara

ну когда то я тоже относился к первому типу админов, которые еще не делают полных бэкапов ))

Ответить
Развернуть ветку
Maksim Georgiev

Вячеслав теперь вы будете все записи где вам дают обратную связь минусовать? Как-то по детски себя ведёте.

Ответить
Развернуть ветку
Anna Chekmasova

Здравствуйте Максим, с вами можно как то связаться, у меня к вам один вопрос?

Ответить
Развернуть ветку
Вячеслав Че
Автор

Не совсем понял.

Ответить
Развернуть ветку
Вячеслав Че
Автор

Теперь понятно :)

Ответить
Развернуть ветку
Nikita Rogatov

А почему бы не найти инженеров с нормальным опытом и подороже?
я знаю что хрен найдешь

Ответить
Развернуть ветку
Андрей Курноскин

Не прошло и суток, а onlinePBX упал опять. Кажется, не все уроки выучены :)

Ответить
Развернуть ветку
Читать все 21 комментарий
null