Задача планирования ИТ-мощностей известна всем компаниям. Известно также, что серьезная история развития бизнеса практически всегда приводит к усложнению ИТ-систем, запутанным связям сервисов, приложений, баз данных и ИТ-ресурсов. Даже лобовое решение задачи: добавление процессоров, памяти и т.д. — далеко не всегда дает желаемый эффект. Попытки прогнозировать рост потребностей в ресурсах и, соответственно, планировать закупки оборудования тоже не дают стопроцентного результата, зачастую приводя к избыточным оценкам потребностей и лишним затратам.
Мы имеем дело с фундаментальной проблемой информационного века: как совместить показатели ИТ и бизнеса для точного прогнозирования затрат с привязкой ко времени? Мы смогли решить эту проблему.
Опыт — сын ошибок трудных
Что касается планирования развития ИТ-инфраструктуры, в этой части сила головной боли айтишников практически не зависит от объема бизнеса и бюджета, выделяемого на ИТ. Даже если компания владеет сетью из нескольких сотен магазинов по всей стране и планирует мощную экспансию по ряду регионов, у нее та же проблема, что и у владельца небольшого бизнеса, раздумывающего об открытии еще 2–3 торговых точек в соседних районах.
Работу над решением этой задачи у одного из наших заказчиков мы начали с традиционного шага: использовали продукт крупного вендора. Выбрали ключевые бизнес-факторы, влияющие на результат (в первую очередь количество магазинов). Завели в систему данные оперативного мониторинга ИТ-инфраструктуры, добавили данные из бизнес-систем, смоделировали развитие ситуации, но не получили корреляций между параметрами загрузки оборудования и бизнес-факторов. В итоге мы вручную сделали прогноз (развитие событий показало, что расчет был сделан точно) и пришли к выводам, что:
- Если речь идет о моделировании ситуации, в которой есть объекты, связанные друг с другом, и они должны настраиваться под конкретные условия использования, вендорский продукт не подходит.
- Методика ручного анализа, показавшая хорошее соответствие реальным событиям, — отличная база для создания собственного продукта для прогнозирования роста ИТ-мощностей в зависимости от изменений в бизнесе.
- Такой продукт нужен нам самим. Имея опыт сервисной поддержки крупных интернет-магазинов, мы можем точно сказать: пропустить срок наращивания оборудования к «черной пятнице» или рекламной акции, что приведет к недоступности сайта, — значит потерять крупного клиента.
Итак, пазл сложился: опыт нашего Сервисного центра соединился с умениями сотрудников Центра программных разработок в решении Jet Capacity. Собственно, это система прогнозирования требований к параметрам ИТ-ресурсов на основе методов искусственного интеллекта. Реализованные технологии машинного обучения позволяют связывать между собой множество различных факторов и параметров.
Создание Jet Capacity стало возможным благодаря цифровой платформе Jet Galatea. Решение позволяет реализовывать различные прикладные системы, связанные с обработкой и интеллектуальным анализом данных, работающие в реальном времени.
Первая же версия Jet Capacity, запущенная на исторических данных нашего клиента — крупного интернет-магазина — объемом в несколько месяцев показала хорошие результаты. В качестве значимых бизнес-параметров были выбраны количество сессий и посетителей, одновременно присутствующих в интернет-магазине. По всем нескольким десяткам серверов система адекватно отражала изменения нагрузок, которые, как ожидалось, должны были произойти в результате изменений бизнес-параметров. Система также проанализировала специфику нагрузки серверов с разными ролями и «увидела», что батч-сервер — один, но его функционирование настолько критично, что для поддержки роста бизнес-нагрузки следует поставить еще 3. В то же время Сервисный центр в рамках своей обычной работы продумывал, как не только увеличить ресурс этого сервера, но и распараллелить его загрузку.
И так происходило не единожды: те решения, к которым мы приходили опытным путем, совпадали с теми, что предсказывала система. Мы гоняли ее по хорошо знакомой нам инфраструктуре, для которой не раз проводили различные нагрузочные тесты, и в итоге убедились в том, что продукт позволяет построить разумный прогноз по историческим данным мониторинга, по всем метрикам, которые собирают системы мониторинга заказчика. Формируя результат, система не просто выдает оценку состояния по всем серверам, но и выделяет критически важные участки.
Цифровая платформа Jet Galatea — разработка нашей компании. Она обеспечивает процессы хранения и обработки информации, включая ETL-процедуры, менеджмент пользователей внутри системы безопасности и т.п. с помощью технологий машинного обучения (Mashine Learning, ML). Ее функционал стал инструментом для решения практически любой прикладной задачи, связанной с загрузкой, трансформацией, обработкой и анализом информации в реальном времени. С помощью Jet Galatea мы создали собственные ML-системы: Jet Pluton (система обнаружения сетевых атак нового поколения), Jet Detective (антифрод-система), Jet AML (система противодействия отмыванию доходов и финансированию терроризма) и Jet Capacity.
Откуда данные?
Jet Capacity обрабатывает данные из различных источников: сервисы мониторинга технических систем, бизнес-системы, — например, АБС (автоматизированная банковская система), система дистанционного банковского обслуживания, операционная система онлайн-магазина и т.д. Фактически любая техническая или бизнес-система может быть использована в качестве источника данных для решения.
Учет технических данных
Сведения из разнообразных систем мониторинга, хранящих историю состояний технических средств, дают возможность строить тренды с прогнозом развития ситуации с высокой степенью достоверности. Система дает ответ по каждой машине, — например, что будет с загрузкой центрального процессора: она будет расти, падать или останется неизменной в течение трех месяцев, полугода, года?
Помимо графиков прогнозов, система формирует отчет с рекомендациями, где отмечаются важные события, например, что 30% серверного парка выйдут за границу нагрузки в 80%. Отметим, что Jet Capacity умеет постоянно перерассчитывать нагрузку с учетом вновь поступающих данных. Это дает пользователю решения гарантию того, что он всегда работает с актуальными данными, отражающими все недавние системные события. Срок, за который системный инженер должен получить извещение о будущей проблеме, зависит от внутренних корпоративных регламентов, в частности от закупочных процедур. Понятно, что подобные временные параметры можно настраивать в зависимости от корпоративных правил.
Учет бизнес-данных
Поясним учет влияния бизнес-параметров на результирующий прогноз на примере внедрения Jet Capacity в крупном интернет-магазине. Список отслеживаемых бизнес-событий включает следующие опции: просмотр товара, просмотр фото товара, положить в корзину, удалить из корзины, выкупить товар, поиск на сайте, домашняя страница, личный кабинет, список товаров, выход из личного кабинета, характеристики товара, страница товара, корзина, страница акции, сравнение товаров, отзыв о товаре.
Накопленные в системе данные о корреляции бизнес-показателей и характеристик ИТ-мощностей дают возможность прогнозировать загрузку ИТ-инфраструктуры в различных ситуациях, — например, в ходе маркетинговой акции или в пик горячего сезона. Для этого Jet Capacity предоставляет удобный инструмент для моделирования возможной ситуации, — скажем, отдел маркетинга предполагает, что количество посещений интернет-магазина в течение недели увеличится на 30–40%. Результатом станут прогноз по нагрузке и соответствующие рекомендации (например, что необходимо нарастить определенные виды ресурсов), или предположение, что система справится с ростом нагрузки.
Технологии машинного обучения, воплощенные в Jet Capacity, дают возможность компании предсказывать будущие потребности в ИТ-мощностях в перспективе 3 месяцев с высокой степенью достоверности, в перспективе полугода, года — с несколько более низкой достоверностью (по законам математической статистики). При этом прогноз учитывает детали роста бизнеса и позволяет моделировать разнообразные бизнес-ситуации. Высокая достоверность прогноза обуславливает корректный расчет финансовых средств, необходимых для беспроблемной и экономически адекватной поддержки бизнеса со стороны ИТ.
Функционал Jet Capacity
- Работает практически в реальном времени. Решение имеет высокую производительность: при довольно слабом «железе» оно позволяет обрабатывать порядка 5–7 тысяч системных сообщений в секунду. Для того чтобы обрабатывать более интенсивный поток событий, понадобится усилить аппаратную платформу. Однако для задачи планирования ИТ-мощностей базовых требований обычно достаточно — подразумеваются загрузка и актуализация данных один раз в день.
- Полностью отечественное решение, которое к тому же использует открытые библиотеки математических методов анализа данных.
- Гибкость. Jet Capacity обеспечивает большую гибкость в настройке на конкретные источники данных для работы математических моделей.
- Различные варианты использования: в составе ИТ-инфраструктуры заказчика (заказчик получает инструмент и работает с ним самостоятельно) либо сервисная модель (SaaS). Второй вариант означает, что мы периодически забираем данные у заказчика, проводим расчеты и возвращаем результат прогнозирования.
- Информационная безопасность. Jet Capacity поддерживает большое количество прав и ролей пользователей, обеспечивает удобные средства конфигурирования прав доступа на стороне заказчика. Поскольку клиент имеет возможность самостоятельно корректировать логические правила и настраивать пороговые параметры, в Jet Capacity реализованы различные инструменты контроля, включая тестирование правил типа «почему так получилось?», а также восстановления состояния. Система устойчива и стабильна: процессы дублируются, а в особо важных элементах дублируются дважды. Решение создавалось при непосредственном участии нашего Центра информационной безопасности. Это значит, что система пройдет необходимую сертификацию при применении внутри периметра контроля ИБ. Jet Capacity поддерживает корпоративную политику ИБ заказчика, — например, обеспечивает различные варианты доступа, интеграцию с Active Directory и т.д.
- Базовые модели бизнес-процессов. В решении формализованы наши знания о влиянии на ИТ-ресурсы бизнес-систем распространенных типов, — например, CRM, ERP, АБС, популярных фронтальных систем (фронт-офис банка, интернет-магазин ретейлера, сайт страховой компании и т.д.).
- Удобная настройка с учетом специфики конкретной компании. Jet Capacity имеет встроенные средства настройки логических правил в соответствии со спецификой задач заказчика. Это означает, что в реальном времени можно вводить дополнительные условия, корректировать модели ситуаций и виды отчетов, пересчитывать параметры.
Резюме для заказчика
Jet Capacity включает следующие элементы:
- Сбор и хранение данных о конфигурациях технических средств, их загрузке и других параметрах из различных источников. Количество и специфика источников меняются с течением времени, а данные хранятся в едином пространстве для будущего анализа.
- Автоматизация задачи анализа загрузки ИТ-оборудования и обоснованный достоверный прогноз загрузки в перспективе. Актуализация исходных данных осуществляется в реальном времени с заданной регулярностью.
- Настройка правил и оперативных оповещений инцидент-менеджмента для ситуаций выхода прогнозных значений за заданные границы.
- Экономически и технически обоснованные оценки роста бизнеса, включая соответствующие затраты на ИТ, понятные коммерческому руководству.
Синергия опыта заказчика и интегратора
Система Jet Capacity создавалась исходя из условий самостоятельной работы заказчика с программным продуктом, а это подразумевает возможность его доступа ко всем компонентам с помощью удобного интерфейса. Мы изначально понимали, что, помимо использования экспертных знаний наших сервисных инженеров и аналитиков, заказчик будет уточнять постановку задачи, приносить в систему не только свои данные, но и свой опыт анализа. Поэтому Jet Capacity, хотя и облегчает задачу заказчика за счет предустановленных знаний о базовых бизнес-системах для отдельных отраслей, а также специфических системах типа карточного процессинга и процессинга банкоматов для банковских организаций, все же не может рассматриваться в виде коробочного решения. В целом наше сотрудничество с заказчиком при внедрении Jet Capacity подразумевает совместную работу над наполнением системы специфическими знаниями.
С одной стороны, заказчик обладает знаниями о специфике собственных бизнес-процессов и опытом управления ИТ-мощностями в своей инфраструктуре. С другой — интегратор лучше понимает нюансы ETL-процедур, агрегации, консолидации и очистки данных, а также имеет более глубокие знания в области мониторинга и анализа нагрузок, которые требуются для правильной интерпретации данных мониторинга технических систем.
Дело в том, что для анализа загрузки нет универсального метода — каждый компонент системы требует отдельного подхода. Есть системы, которые почти всегда загружены по максимуму. Загрузка процессинга всегда больше 90%, и с этой системой нужно работать отдельно. Тестовые системы (если они есть в компании наряду с продуктивными) обычно нагружаются с пиковой нагрузкой, и использовать нагрузочный профиль такого компонента в рамках единой системы анализа нужно предельно аккуратно.
Иными словами, каждая подсистема требует отдельного понимания: в каком месте общей системы она установлена, какую нагрузку и с каким профилем держит. Но знания о том, какая величина нагрузки является пиковой, какой характер нагрузки говорит о негативном тренде, а какой — о стабильной работе, невозможно получить исходя из графиков параметров. Здесь нужен опыт человека — специалиста, который уже походил по граблям ошибок и научился создавать удачные решения. И мы приходим к современному разделению труда: заказчик решает задачи анализа и прогноза самостоятельно, а в тех случаях, когда требуются сильные компетенции в сфере получения, хранения и обработки данных или глубокие специализированные знания сервисных инженеров, к работе подключаются наши эксперты.
Большой плюс в том, что набор возможностей решения не ограничивается рамками платформы и best practices конкретного вендора, как это обычно бывает в случае зарубежных решений. Мы, как разработчик и Jet Capacity, и программной платформы, можем оперативно реализовать любой дополнительный функционал.
Таким образом, с помощью ПО планирования ИТ-мощностей Jet Capacity ИТ-департамент может решить задачу бесперебойного развития ИТ. А оно, в свою очередь, обеспечивает адекватную ИТ-поддержку любым бизнес-изменениям.
Многообразие факторов влияния
Качество работы аналитического продукта в первую очередь зависит от того, насколько хорошо мы понимаем, какие параметры влияют на точность прогноза. Наш Сервисный центр за многие годы обслуживания заказчиков из разных отраслей накопил большой опыт и знания о тех факторах, которые оказывают влияние на необходимость развития ИТ-мощностей. Их можно разделить на две группы: технические и бизнес-факторы.
Технические факторы охватывают обновления системного и прикладного ПО, выпуск новых релизов и т.п. Эти события происходят регулярно: каждые 3–4 недели появляется новый функционал и, как правило, изменяются нагрузки на ИТ-инфраструктуру.
Бизнес-факторы имеют разнообразную природу:
- Скачки в потреблении услуг компании. Маркетологи и службы продаж знают о пиках и спадах в потреблении товаров и услуг их компаний. Так, у ретейла горячий сезон совпадает с подготовкой к новогодним праздникам, у страховых компаний — с началом туристического сезона.
- Плановый рост бизнеса. Этот фактор также может иметь разную форму, — например, долгосрочная стратегия компании по экспансии в новые регионы с открытием новых офисов и точек продаж, реальный ежегодный рост бизнеса, изменение макроэкономической или рыночной ситуации и реализация отложенного спроса.
- Неплановый рост бизнеса. К этому классу относятся сделки слияний и поглощений, выход в новые рыночные ниши и сегменты и прочие события, обусловленные текущей бизнес-конъюнктурой.