Я задолбался пропускать падения моих сервисов и написал HealthCheck-бота
Пишешь боту имя своего домена и бот проверяет его раз в минуту.
К идее создания бота я пришёл при запуске другого продукта для проверки резюме на английском -
В день запуска всё пошло не так😎
Ошибка #1
Большинство сервисов работали на одном сервере, а это
Запускал я довольно требовательный сервис к ресурсам - используется OCR (распознавание символов на pdf файле), алгоритм категоризации, нейронная сеть для определения насколько резюме соответствует профессии найденной по ключевым словам. В общем жирный сервис, который ест много ресурсов процессора и при превышении лимитов - он зависает намертво вместе с сервером.
Ошибка #2
После запуска я не особо следил за сервисом, занимался своими делами.
В итоге проблему с виртуальной машиной, где крутятся все мои сервисы я заметил только по комментариям от пользователей на ProductHunt.
А завис не только сервис, а вообще всё!
Приходилось перезагружать сервер и поднимать все сервисы, чтобы они ожили. Спасибо боту @IsBotDownBot - я понимал когда падали мои боты😂
Ошибка #3
В сервисе не было ограничений на количество загрузок резюме - в итоге кто-то отчаянно пытался получить высокий балл от https://checkcv.info/ и загружал резюме около сотни раз, это нагружало сервер и тоже приводило к падению сервера.
Решение
После 5 падений сервиса (довольно позорно, но что поделать) я начал искать быстрое решение для мониторинга, желательно бесплатное.
Небольшой ресерч не дал простого и быстрого решения, чтобы проверять свои сервисы по доменному имени, поэтому я написал своё решение - https://t.me/YourDomainHealthCheckBot
Просто отправляешь боту свой домен - например checkcv.info - бот сам определяет доступен ли сервис по HTTPS или HTTP и начинает его пинговать раз в минуту.
В случае ошибки или недоступности сайта - бот отправит сообщение об ошибке.
Как только сервис вернется к жизни - бот сообщит и об этом.
Вот в общем-то и все, так же можно редактировать свой список сайтов.
Ещё можно пингануть сайт один раз.
Кто-то подсказал, что этим ботом можно поднимать свои Heroku-сервисы к жизни.
С тех пор как запустил бота сервис пока не падал, но если упадёт узнаю об этом в течение минуты (если не упадёт сервер с ботом😏).
Буду рад услышать фидбек или предложения по улучшению -
Просто ответ 200 еще не гарантия, что сервис работает. Продвинутые инструменты обычно предлагают проверять отдаваемый контент по паттерну или искать определённое слово.
В том и дело, что изнутри смотреть надо. Тем более на энетерпрайзе. Там вообще можно творить чудеса с Prometeus, ELK (да-да по аномалиям логов можно многое интересное видеть).
Elk еще поддерживать надо, с вечно жиреющим эластиком при росте проекта
Для этого и существует кровавый энтерпрайз.
С большими деньгами
Я люблю эффективных менеджеров, которые приходили ко мне и просто сходу говорили: давай, считай нам на всю катушку того, что нужно, чтобы наше IT стало передовым. Так приятно было видеть, что от малых сумм - реально 15-20 миллионов всего - они уходили, чертыхаясь. ))
Передовое it может быть и простым
На серверах 2007 года. Простите, это в 2019-2020 годах было. :)
Там мелькал кубер?)
Не помню такого там. :) На деле, увы, передовое IT не может быть простым и дешёвым, так как есть масса нюансов в железе, софте, поддержке.
Если свои сервера, наверное да. С облаками попроще
Увы, с облаками не только не проще, но и дороже где-то в 2,5-3 раза.
Смотря какая задача и какие требования, сделать своими силами георепликацию может быть непросто, нужно же еще человеко-часы учитывать на поддержку)
Там замашки были большими, но рынок ограничивался европейской частью России.
А, ну тут наверное и ограничение на хранение данных в пределах России и как итог яндекс облако или сбер/мейл ру клауд, выбор не велик
Там психиатр требовался. В целом, они так и продолжают скатываться )
А ведь для продактов есть свой сервис психотерапии)
Там суровые MBAшники собрались. И наша компания была не первой, которую они пустили в большое плавание. ))