Электро самолёт
Философия Стива Джобса
iPhone 16e
Nothing Phone 3a
Оживление фото LumaAI
Велосипед Mercedes
Робота научили делать сальто
Grok vs ChatGPT vs Claude
Генерация видео от Google

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

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

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

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

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

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

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

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

$root@s4 ~/tmp rm -rw /etc

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

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

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

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

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

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

1010
21 комментарий
[]