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

Предыстория

У Вас есть много знаний в какой-то области деятельности и со временем Вы понимаете, что ПО, которое используется в этой сфере, далеко не совершенное. Вы приходите к мысли, что Вы знаете, каким должно быть идеальное ПО. В универе у вас было «4» по программированию на Паскале. Поэтому Вы решаете создать еще один, самый лучший в мире программный продукт. И начинаете это делать. Кроме Вас, к сожалению, подобным занимается еще какое-то количество людей и компаний. Поэтому, чтобы создать что-то действительно полезное и конкурентоспособное, требуется много ресурсов и времени. Вы их потратили, в процессе стали архитектором, разработчиком, тестировщиком, DevOps’ом и, в конце концов, сделали то, что хотели. Самый лучший программный продукт появился на свет. Но возникает вопрос, как рассказать о нем всему миру?

Про Инстаграм

Photos
Photos

Для рекламы Вашего продукта нужна какая-то площадка. Вы вспоминаете про свой аккаунт в Инстаграм, публикуете туда четвертый по счету пост, ждете несколько дней, но он никого из трех Ваших подписчиков по какой-то причине не заинтересовал. Приходится проводить анализ, чтобы понять, как занимаются маркетингом Ваши конкуренты. Выясняется, что для распространения информации о своих продуктах компании создают сайты, пишут и публикуют в СМИ статьи, принимают участие в форумах, организовывают семинары, поддерживают комьюнити, работают с аудиторией в социальных сетях и на профильных площадках. Для того, чтобы это повторить, Вам нужно стать системным администратором, дизайнером, разработчиком и верстальщиком сайтов, SMM’щиком, юристом, бухгалтером и иметь наследство, для того, чтобы оплачивать расходы на техническую часть процесса и участие в мероприятиях. Осталось найти деньги на жизнь, поэтому придется еще где-то работать. Настоящего самурая это не должно смущать, но на нашей планете в сутках всего 24 часа и их не хватит на все перечисленное. Как решить вопрос с маркетингом нового продукта, когда единственный, кто о нем знает – это его разработчик, мне непонятно. Но мне точно известно, что такое происходит в мире Open Source. Если у Вас есть идеи или опыт, расскажите мне пожалуйста об этом в комментариях.

Но так как у самурая нет цели, а есть только путь, поэтому - в дорогу.

Путь самурая

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

Узбек-философ

Fisher
Fisher

В процессе раздумья над тем, как решить эту проблему, на свою беду, я встретил умного человека. В 8:00 утра он открывал свой киоск с фруктами, а в 23:00 закрывал и ехал домой. Я спросил, как он может столько работать. Он ответил: «Понимаешь, люди спят 8 часов, без этого нельзя. Остальное время они что-то делают. Весь вопрос в том, чем именно они занимаются. Можно тратить время на телевизор, компьютерные игры, пиво, общение в социальных сетях, чтение новостей и прочее. Это все не приносит тебе никакой пользы. С возрастом начинаешь понимать, что по большому счету все равно чем заниматься. Любое занятие может приносить удовлетворение. Поэтому я с 8:00 до 23:00 занимаюсь тем, чем умею, что люблю делать и тем, что приносит мне деньги – продаю фрукты».

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

Полезное хобби

Я был уверен в себе, поэтому подумал, что эту задачу можно сделать своим хобби и за год, не особо напрягаясь, я смогу ее реализовать. Возможно, она пригодится еще кому-то. Так недалеко и до богатства Билла Гейтса. Я сел, и потратив все свое свободное от работы время, за каких-то пять лет создал новую систему. Потом еще два года занимался отладкой, а после – внедрением.

Сейчас система находится в промышленной эксплуатации. Она автоматически находит и запускает сбор данных со всех объектов в инфраструктуре крупной компании и обрабатывает порядка 280 000 мониторинговых метрик (метрики – это данные об использовании ресурсов или о поведении объектов). В среднем, каждая метрика обрабатывается один раз в 40 секунд. В настоящее время мы перешли к фазе портирования модулей управления из старой системы в новую и внедряем автоматизацию.

Можете пользоваться

Я разрабатывал систему в свое свободное время. Поэтому схему лицензирования и распространения системы я мог выбирать на свое усмотрение. Но так как за время разработки у меня не появилось мыслей, как сделать маркетинг и начать ее продавать, я решил, что распространяться она будет в качестве свободного программного обеспечения по лицензии GPL v3. Подробности о системе можно почитать на сайте https://alepiz.com

Система называется ALEPIZ

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

ALEPIZ
ALEPIZ

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

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

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

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

Windows и JavaScript

ALEPIZ проектировался как мультиплатформенная система. Серверная часть написана на NodeJS, что позволило сделать асинхронный многопоточный сервис и дать возможность в будущем портировать его на платформы, которые поддерживает NodeJS. Но пока я не нашел время на проверку работы системы под другими ОС. Поэтому ALEPIZ работает под Microsoft Windows. Для того, чтобы попробовать ALEPIZ, его можно установить и запустить даже на Вашем ноутбуке например, под Windows 10. Он не требует инсталляции дополнительных компонент. Базы данных и веб-сервер встроены в систему.

Про кирпичи

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

Действия и задачи

Для автоматизации используются модули, которые называются действиями. Например, действием может быть создание объекта мониторинга в ALEPIZ, копирование свойств из одного объекта в другой, запуск или остановка внешнего Windows сервиса, применение SQL скрипта к БД сервиса, перезагрузка сервера, отправка E-mail, просмотр графика с собранными историческими данными, обработка событий мониторинга и т.д. Действия можно объединять в задачи. Задачи – это последовательность действий. Их можно запускать вручную, либо по какому-то условию. Условия для выполнения задачи можно формировать в зависимости от собранных мониторинговых данных. Например, после остановки сервиса можно запустить задачу по упаковке логов. Или при обнаружении нового сервера в сети, можно запустить задачу, которая создаст соответствующий объект в системе мониторинга и ALEPIZ начнет собирать с него данные.

Коллекторы

Следующий тип модулей – это коллекторы. Они используются для сбора информации с различных поставщиков мониторинговых данных или для генерации данных. Например, в ALEPIZ реализованы такие коллекторы, как Ping (доступность хоста и сетевые задержки), SNMP (данные с аппаратного обеспечения), Zabbix (сбор данных с Zabbix агентов), MSSQL (запуск SQL скриптов), Timer (генератор событий через определенные интервалы времени), Event generator (генератор событий в системе мониторинга для оповещения) и пр.

Оповещение

Система оповещения о событиях состоит из модулей. Для информирования о произошедшем событии можно отправить E-mail, SMS или сделать голосовое оповещение. Каждый тип оповещения можно выборочно подключать к тому или иному событию.

Запуск действий

Запуск действий также реализован через подключаемые модули. С помощью них можно встроить действие, написанное на NodeJS либо запустить в качестве действия скрипт или внешнюю программу. А также выполнить программу на удаленном сервере по протоколу SSH или WMI и т.д.

Кирпичный завод

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

Документация

В ALEPIZ встроена документация по его использованию на русском языке. Часть ее переведена на английский.

Это не все

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

Спасибо, что Вы дочитали статью до конца.

Я буду рад, если ALEPIZ окажется Вам полезен. Тут все бесплатно https://alepiz.com

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


  1. xakep2011
    07.03.2022 14:45
    +1

    Спасибо, что делаете этот мир лучше!

    Почему-то Windows Defender-y не нравится установщик, это из-за отсутствия каких-то необходимых подписей? Не прочитал описание на сайте.

    upd: "Из коробки" пока не завелось, локалхост показывает заглушку IIS, буду позже разбираться.


    1. asbel Автор
      07.03.2022 14:48
      +2

      Это действительно так. Для того, чтобы подписать установочный пакет, мне нужно купить сертификат. Нормальный сертификат стоит около 200$. Т.к. я ничего не получаю за софт, тратить 200$ мне просто жалко. Поэтому можно или проигнорировать предупреждение или поставить ALEPIZ из архива 7z


    1. asbel Автор
      07.03.2022 14:54

      видимо 80 порт занят под IIS. можно поправить в <ALEPIZ DIR>\config\webServer.json "httpPort": 80 на какой-нибудь другой, например "httpPort": 88 и перезапустить сервис. Далее в браузере подключиться на http://localhost:88


  1. amarao
    07.03.2022 20:38
    +2

    Я совершенно и полностью поддерживаю идею хорошей обработки метрик. Я совершенно не понимаю, зачем изобретать свой формат, когда open metrics уже победили. Метрики собирает пром. Он их собирает отлично. Всё остальное уже не на столько отлично и в этой области надо делать.

    Нет, я не понимаю, почему в 2022 надо изобретать сбор мерик.


    1. asbel Автор
      08.03.2022 06:47

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


      1. amarao
        08.03.2022 13:30
        +1

        Если вы будете продвигать решение как "поверх прома", у него значительно выше шансы быть услышанным.


        1. asbel Автор
          08.03.2022 13:42

          Спасибо за совет, я подумаю об интеграциях. Пока интеграции есть только с Заббикс агентами