Блог

Название категории: Команда

QiWeal: Путь к веб-сервисам

Рассказ о команде Кивил. Команде, которая строит мониторинг будущего

Заставка блога

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

Начало

В январе 2016 года был положен старт в организации нашей команды. С того момента мало чего изменилось в нашем составе, потому что с самого начала общим интересом было движение вместе и желание разделять друг с другом будь-то успехи или поражения. Бросая такой вызов себе, мы четко понимали, что нас ждет. C тех пор мы получили большое количество опыта и взамен заплатили немалую цену, учитывая время, которое прошло. Мы не ищем простого пути и всегда готовы к вызовам и ждем того, что на нашем пути будут попадаться именно такие же люди. Нам приходилось пересматривать взгляды, технологии, подходы, направления, а вместе с тем просматривать рост и значимость тех или иных методологий, которые могли бы вывести нас к определенным действиям и результатам. Каждый день мы изучали разные сегменты ИТ-рынка и востребованность комплексных решений в данной отрасли. Нам всегда хотелось быть чуть ближе к тому уровню разработки, который приносит пользу людям. Конечно оценить всю текущую работу предстоит именно Вам, но мы знаем, что самое главное еще впереди.

Распределенные системы и веб-сервисы

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

Раздел не случайно называется “распределенные системы”. Почти каждый веб-продукт (сайт, сервис или интернет-магазин), который имеет регулярную нагрузку в виде обслуживания клиентских запросов, можно назвать распределенной системой. Почему мы так думаем и какие аргументы можем предоставить с нашей стороны? Давайте разбираться.

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

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

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

Преимуществом систем базирующихся на микросервисах и облачных технологиях является возможность своевременного обновления базового продукта на ряду с быстрой интеграцией новых функций, например, внедрение машинного обучения (ML) или пакетной обработки данных без каких-либо масштабных изменений кода основного сервиса. Такое архитектурное решение помогает не только в самом подходе к обновлению или добавлению функционала, но и позволяет сервисам более эффективно расходовать системные ресурсы инфраструктуры (CPU,MEM ...).

Мониторинг микросервисов и распределенных систем

На разных этапах существования наших продуктов мы сталкивались с разными задачами и проблемами. Это привело нас к мысли, что комплексного продукта, который закрывал бы наши потребности в мониторинге, анализе и тестировании систем — нет. Есть большое количество разного ПО, которое нужно устанавливать, настраивать, связывать, поддерживать и обновлять на каждом хосте, чтобы получить еще один или несколько веб-интерфейсов мониторинга. Стоит заметить, что оператор должен заниматься анализом данных метрик, а не следить за тем, чтобы весь этот набор из установленного и связанного ПО работал или работал правильно. Нанимать целый отдел администраторов, чтобы сопровождать такие слепленные системы мониторинга также не является разумным. Труд таких специалистов должен быть направлен на полезную работу, а не на такие рутинные задачи. Под полезной работой мы подразумеваем то, что они не должны исправлять ошибки архитектуры ПО своими руками или скриптами. Администраторы должны работать в реальном секторе, а системы мониторинга должны быть более комплексными и решать поставленные задачи, именно тогда все станет на свои места.

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

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

В текущих реалиях, недостаточно быть просто базой данных для метрик, веб-интерфейсом для такой базы данных или связкой последних. Шаг за шагом мы создадим продукт в котором так нуждаемся! Мы сделаем адаптеры, которые будут позволять быстро интегрировать Ваш сервис в нашу систему мониторинга без дополнительных установок и непонятного ПО. Мы сделаем так, чтобы у Вас был весь необходимый инструментарий для анализа и мониторинга своих проектов, что позволит Вам делать качественные продукты и поднимать надежность веб-систем.

На данный момент, сервис QiWeal имеет ряд микросервисов, которые предоставляют общий функционал по мониторингу, тестированию и аналитике, а также сервис по работе с базой данных с помощью принципов REST. Этот набор закрывает базовые потребности веб-мастера. А глубина анализа позволит Вам проконтролировать правильную работу своего продукта.

В нашем блоге уже доступны статьи:

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

Модель работы мониторинговых систем

Мы считаем, что оптимальным подходом к мониторингу является система, которая будет с помощью принципов REST получать все необходимые данные метрик в формате JSON, анализировать их и выводить оператору на экран с помощью компонентов UI (пользовательского интерфейса). Настроив такие панели управления на каждый проект, Вы сможете эффективно проводить мониторинг своих продуктов.

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

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

  • Сбор метрик по всей инфраструктуре.
  • Анализ, адаптирование и хранение данных метрик.
  • Вывод необходимой информации оператору на экран с использованием удобных UI-компонентов (пользовательского интерфейса) для эффективного анализа данных.

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

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

Разработка комплексных модулей мониторинга в реальном времени с использованием машинного обучения (ML) уже не новости. С ростом запросов к нашему сервису, мы откроем новые подходы и технологии к мониторингу, которые будут применимы к Вашим системам. Интерес к интеллектуальным системам мониторинга распределенных систем с последующим анализом и тестированием имеет для нас особый приоритет. Мы верим, что мы поменяем действующие и неэффективные подходы к более понятным и комплексным действиям. Мы готовы на своем примере показать, как неконтролируемый хаос из софта и их связей можно превратить в структурированную и понятную модель мониторинга, которая будет готова справляться с любыми вызовами и сможет гибко подстраиваться под Вашу систему или проекты. Такие свойства как: надежность, распределение и отказоустойчивость должны быть доступны каждому, а мониторинговые системы должны быть доступными по стоимости и количеству серий данных для хранения.

Времена, когда все необходимо было создавать самостоятельно и интеграция любого ПО была достаточно сложным процессом ушли. Чем больше будет веб-сервисов реализующие потребности людей, тем и жизнь выйдет на совершенно другой уровень мысли, где подходы комплексного решения проблем все же возьмут верх!

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

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

Спасибо за внимание.

Вам может быть интересно

Подняться вверх