2024/10/15 14:49:45

Как DevOps-сервис помогает «разгрузить» высоконагруженные системы BPMSoft

Все знают: стоит только произнести магическое слово «DevOps», как все сломавшееся начинает работать. А при миграции нагруженных систем и вовсе нельзя допустить, чтобы что-то сломалось. Рассказываем, как сервис DevOps помогает обеспечить работоспособность в самых разных условиях при переходе крупного бизнеса на новую CRM-систему.

Кто такой DevOps-инженер

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

«
Инженер DevOps — это связующее звено между отделами разработки и эксплуатации. Он обеспечивает эффективное сотрудничество и удовлетворение ожиданий заказчиков. Стабильность работы систем значительно увеличивается, если к работе привлекаются DevOps’ы. Особенно это актуально для высоконагруженных систем.
Игорь Дьячков, руководитель службы DevOps Nobilis.Team.
»

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

Признаки высоконагруженных систем:
• большое количество пользователей — признак главный, но необязательный; иногда достаточно и нескольких человек при возникновении добавочных условий работы системы;
• система функционирует в режиме 24/7;
• заявлена гарантия мгновенной обработки данных;
• высокая скорость отклика;
• хранение массивных объемов данных.  

Если судить по этим признакам, у любого крупного игрока рынка сегодня есть такая система.

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

Безусловно, стандартный функционал «зашит» в коробочной версии любого подобного продукта. Но когда «коробка» устраивала и удовлетворяла всех и сразу? Требуются доработки на всех этапах, и тестирование не исключение. Задача кастомизации тестирования снова возвращает нас на территорию DevOps–сервиса, который позволяет проводить максимально быстро и качественно нагрузочные тесты.

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

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

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

От теории перейдем к конкретному примеру. В практике совместной работы команд Nobilis.Team и BPMSoft есть показательный кейс на эту тему: развертывание большого количества инстансов при реализации проекта миграции на платформу BPMSoft.

Заказчик — крупнейшая российская транснациональная ИТ-компания. Основная задача проекта — «переезд» на новую платформу. 6 стран присутствия, оборот более 800 млрд руб/год, более 1,5 тысяч корпоративных пользователей системы.

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

BPMSoft относится к классу высоконагруженных отказоустойчивых ИТ-систем, помогает построить сквозные процессы взаимодействия внешних и внутренних участников с помощью low-code инструментов.

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

Перед нашим заказчиком тоже встала задача автоматизации и контроля нагрузочного тестирования.

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

Объем пользовательских заявок в сервис DevOps - более 100 в неделю.

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

С какими особенностями столкнулись наши DevOps-инженеры в ходе этапа нагрузочного тестирования:
• из-за масштаба инсталляции вопросы сайзинга, значимости ресурсов и нагрузки стояли буквально с первой встречи;
• специалисты начали работу при частичной нагрузке, но по мере роста задач и запросов от заказчика перешли в формат full time;
• постоянно происходила эволюция требований, появлялись новые задачи, подчас из смежных проектов и процессов;
• работа с кластерами, мониторинги, обслуживание сред — эти задачи перешли под контроль сервиса Nobilis.Team.

Наши инженеры начали прорабатывать вопрос нагрузочного тестирования системы, выстроив работу по принципу «от общего к частному»:
• проверили общие для всех инстансов сценарии: массовые попытки создать запись по API и через базу, одновременное создание записей одной сущности несколькими пользователями, одновременный вызов нескольких веб-сервисов и др.;
• в рамках отдельных мини-проектов ушли в специфику конкретных направлений;
• после миграции данных и резкого увеличения числа пользователей возникла проблема кратного масштабирования нагрузки. Совместными усилиями команды разработки, DevOps и специалистов заказчика эти проблемы удалось оперативно решить. Гибкость и высокая скорость адаптивности BPMSoft этому способствовали.

Со старта проекта прошло уже несколько лет. Результат представленного в статье кейса и показатель качества работы очевиден — заказчик возвращается к сервису Nobilis.Team снова и снова.

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

Нагрузочное тестирование становится обязательным элементом перед запуском нового проектного решения или обновления функционала в проектном решении. И эффективный симбиоз low-code платформы и DevOps-сервиса здесь очевиден.

Узнать больше о других возможностях DevOps и реализованных проектах можно на сайте Nobilis.Team.