УДК 004.453.2

Контроль как способ разгрузки вычислительных мощностей серверов

 

Кириллов Данил Алексеевич – кандидат технических наук, доцент кафедры Информационных систем и технологий, Нижнекамского химико-технологического института.

Гайнутдинов Рафаэль Маратович – магистрант Нижнекамского химико-технологического института.

Аннотация: Статья обращает внимание на проблему отсутствия централизованной платформы для управления моделями искусственного интеллекта (ИИ) в компаниях. Отсутствие такой платформы приводит к дублированию моделей, невозможности их повторного использования и увеличению вычислительных ресурсов. В статье приводится пример системы, использующей модель эмоциональной оценки текста, которая жестко привязана к системе и не может быть использована в других разработках. Для эффективного контроля и систематизации запросов в компаниях рекомендуется использовать системы трассировки запросов, такие как Zipkin и Jaeger, которые предоставляют контроль над работой программных продуктов на основе микросервисной архитектуры.

Ключевые слова: искусственный интеллект, микросервисная архитектура, распределенные системы, программное обеспечение.

Введение

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

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

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

В данной статье мы рассмотрим важность использования систем трассировки и контроля запросов как способ повышения эффективности введения IT отрасли компаний.

Анализ существующих систем в области контроля запросов: принцип работы, достоинства и недостатки

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

Основные черты присущие всем системам трассировки запросов:

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

Выделим отличия функциональных возможностей систем трассировки запросов на основе сравнения: «Zipkin» (используется в «Twitter» и «Spotify») и «Jaeger» (используется в «Netflix» и «Uber»). Рассмотрим отличия реализаций по следующим аспектам:

  1. Принцип работы:
  • «Zipkin»: использует модель трассировки на основе дерева, где каждый запрос представляется в виде дерева зависимостей между компонентами системы;
  • «Jaeger»: также использует модель трассировки на основе дерева, но добавляет более сложные связи и возможность трассировки запросов через различные сервисы и микросервисы;
  1. Интеграция и поддержка:
  • «Zipkin»: широко поддерживается и интегрируется с различными языками программирования и фреймворками;
  • «Jaeger»: также обладает широкой поддержкой языков программирования и фреймворков, включая Java, Go, Python и Node.js.
  1. Масштабируемость:
  • «Zipkin»: может быть масштабирован путем горизонтального масштабирования хранилища данных и компонентов. Он может обрабатывать средний объем данных трассировки запросов и поддерживать нагрузку между собой;
  • «Jaeger»: Он может обрабатывать высокие объемы данных и имеет горизонтальное масштабирование как для хранилища данных, так и для компонентов.
  1. Графический интерфейс:
  • «Zipkin»: предоставляет простой и интуитивно понятный графический интерфейс пользователя;
  • «Jaeger»: также имеет графический интерфейс пользователя с панелью инструментов, который предоставляет более подробную информацию о запросах, операциях, процессах и состоянии каждого запроса.

При выборе между системами «Zipkin» и «Jaeger» следует обратить внимание на следующие аспекты:

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

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

Контроль как способ разгрузки вычислительных мощностей серверов

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

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

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

Помимо изложенного опыта стоит рассмотреть практики, принятые другими крупными компаниями в области эффективного контроля и систематизации запросов. Так одними из инструментов контроля являются системы трассировки запросов («1. Анализ существующих систем в области контроля запросов: принцип работы, достоинства и недостатки» изложена более подробная информация, а также рассмотрены реализованные программные продукты), широко применяемые в практике микросервисной архитектуры. Системы трассировки запросов позволяют отслеживать и анализировать путь выполнения запросов в рамках программных систем.

Подобные системы используются многими крупными компаниями. В таблице 1 представлены названия этих компаний и используемые ими системы трассировки запросов.

Таблица 1 – Компании используемы ими системы трассировки запросов

Компания

Система трассировки запросов

Google

Dapper

Facebook

X-Ray

Uber

Jaeger

Netflix

Zipkin, Suro

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

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

Подводя итоги:

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

Заключение

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

Использование хороших практик (подходов, которые себя зарекомендовали) приводит «правильному» процессу разработки, а также обеспечивает оптимальное использование ресурсов.

Отсюда внедрение зарекомендовавших себя систем трассировки является лучшим способом оптимизации процесса поиска «узких» мест в микросервисной архитектуре.

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

Список литературы

  1. Йонге де, Д. NGINX. Книга рецептов : практическое руководство / Д. де Йонге ; пер. с анг. Д. А. Беликова. - Москва : ДМК Пресс, 2020. - 176 с.
  2. Лион, У. Разработка веб-приложений GraphQL с React, Node.js и Neo4j : практическое руководство / У. Лион ; пер. с англ. А. Н. Киселева. - Москва : ДМК Пресс, 2023. - 262 с. - ISBN 978-5-93700-185-6.
  3. Лоре, А. Проектирование веб-API : практическое руководство / А. Лоре ; пер. с анг. Д. А. Беликова. - Москва : ДМК Пресс, 2020. - 440 с.
  4. Маркус, Г. Искусственный интеллект: Перезагрузка. Как создать машинный разум, которому действительно можно доверять : практическое руководство / Г. Маркус, Э. Дэвис. - Москва : Альпина ПРО, 2021. - 300 с.
  5. Наир, В. Предметно-ориентированное проектирование в Enterprise Java с помощью Jakarta ЕЕ, Eclipse MicroProfile, Spring Boot и программной среды Axon Framework : практическое руководство / В. Наир ; пер. с англ. А. В. Снастина. - Москва : ДМК Пресс, 2020. - 306 с.