Продуктовая линейка Ajax 2017 года с выделенным хабом

Год назад мы взялись за непростую задачу — сохранить лучшее от существующей операционной системы Ajax Hub, устранить слабые места и заложить надежный фундамент для дальнейшего развития системы безопасности Ajax. Хаб — мозговой центр, он обязан быть самым совершенным и надежным звеном цепи. Полгода порядка 20 инженеров работали над полностью новой ОС. Еще полгода потребовалось для тестирования с реальными клиентами, сбора отзывов и доработок. С 7 августа компания начинает постепенное обновление Ajax Hub до новой Hub OS Malevich, которая привнесет в устройство 11 функциональных изменений.

Оказавшись в тупике, не бойтесь повернуть назад

Три года назад мы решили создать интеллектуальную централь для управления системой безопасности — Ajax Hub. Написав техническое задание по устройству, стали думать, на каком стеке технологий его делать. Было три варианта — просто программа на С, операционная система реального времени или Linux.

Здесь и далее изображения Ajax Systems

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

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

Потому выбрали операционную систему реального времени (RTOS), получив возможность создать многофункциональное и одновременно надежное приложение. Системы реального времени используются в лифтах, автомобильных тормозах, баллистических ракетах. Они максимально надежны, ведь если в строго определенное время не сработает механизм, после это действие уже не имеет смысла — случается катастрофа. В этом ключевое отличие RTOS от Linux, где операции дожидаются в очереди исполнения. И это одна из причин, почему Linux не используется в профессиональных системах безопасности.

Разработка длилась полтора года. Мы создали навороченную ОС, поддерживающую продвинутые протоколы связи с облаком по нескольким каналам, управляющую сетью из сотни радиодатчиков, способную одновременно отправлять тревожные сообщения по IP–каналам, звонить и слать SMS, поддерживающую устройства автоматизации. Обладающую всеми необходимыми профессиональной охранной системе возможностями и защищенную от атак. Нам удалось решить изначальную задачу — дать обширную функциональность и обеспечить высокую надежность.

Когда хаб пошел в релиз, доля экспорта в продажах компании составляла 0%. Сейчас он составляет 60-70%. При этом и украинский рынок не стоит на месте – мы растем в два-три раза год к году. Поэтому с появлением все новых и новых клиентов росла волна запросов о новых фичах.

Взаимосвязи между устройствами в Hub OS Malevich. В старой версии охранные фирмы не имели прямой связи с хабом

Охранные компании просили прямое подключение к хабу — в обход нашего облака. Норвежские партнеры хотели, чтобы все пожарные датчики при обнаружении возгорания включали встроенные сирены одновременно — со скоростью проводных пожарных сигнализаций. Немецкий рынок требовал соответствия продукта требованиям европейских стандартов на уровне Grade 2 и поддержки системой безопасности клавиатур. В Малайзии и Дании пользователи рассчитывали на обширные возможности домашней автоматизации. Для Италии крайне важной была отдельная роль для инсталляторов.

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

Пришлось решать, каким образом дальше строить систему. Уходить на Linux? Постепенно дорабатывать нашу ОС? Требовалось сохранить надежность и стабильность операционной системы реального времени, но при этому получить масштабируемость на уровне высокоуровневых ОС типа Linux. Ни одно из готовых решений нам снова не подходило, пришлось придумать свое.

Новый “Малевич”

В основу новой ОС легла идея упрощения. Мы поставили перед собой условие: добавление фич не должно усложнять систему и снижать скорость разработки. Чтобы не сбиться с намеченного курса, дали проекту кодовое имя «Малевич». В честь известного киевского художника Казимира Малевича, чья картина «Черный квадрат» — яркий пример гениальной идеи, в основе которой лежит бесконечная простота.

Для создания Hub OS Malevich пришлось изменить все: архитектуру, подход к программированию, стандарты оформления кода, организацию работы, среды разработки. Хотя операционная система продолжила ставить во главу угла время выполнения процесса, у нее появились черты Linux. Мы реализовали схожий механизм распределения процессорного времени, в результате чего процессор хаба даже в ресурсозатратных задачах загружен максимум на 20%.

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

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