Как совместить несовместимое: ДБО и производительность!

29 Марта 2016
«Банковские технологии» • Март • 2016
 
Сергей Анохин - Начальник управления тестирования Компании BSS
 

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

Но! На фоне нынешних гонок финансовых инноваций всё чаще на второй план отходят показатели качества систем ДБО: надежность, безопасность, производительность — всё то, без чего клиенту не вполне комфортно пользоваться «инновационными продуктами и сервисами».

Лично моя ответственность — это качество продуктов Компании BSS. Передо мною и моей командой стоит задача обеспечивать качество флагманской платформы ДБО, а именно платформы CORREQTS.

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


С чего начать? С чего начинали мы?

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

Но каким образом выявить эти удовлетворяющие всех показатели? Как понять сколько и какого рода пользователей система должна выдерживать? Как они фактически используют систему? Нам с решением данной задачи помогли наши клиенты, которые любезно согласились предоставить необходимую для расчётов и анализа статистику с уже давно и успешно эксплуатируемых систем и сервисов ДБО. После сбора всей необходимой статистики, анализа и корректировок данных на перспективу, мы разработали требования к производительности новой системы. В нашем случае под основными требованиями к производительности понимались требования к следующим показателям:

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

В качестве примера, за максимальное допустимое время отклика для любой операции мы приняли максимум в 5 секунд.


Нагрузочные испытания — нам нужны ресурсы!

После того, как у нас появились требования к системе, встал следующий вопрос — о ресурсах: на каких мощностях и какими силами выполнять нагрузочные испытания? Необходимо иметь достаточное количество ресурсов для проведения самых разнообразных испытаний, причём с возможностью параллельного запуска тестов, и чтобы они были независимыми. Вопрос закупки необходимых и, конечно, оптимальных аппаратных ресурсов — тема отдельной книги. Мне очень повезло, что руководство компании понимало важность задачи, которую мы решаем, и благодаря этому согласование, приобретение и настройка оборудования прошли оперативно. Далее необходимо было подобрать команду, причём, на этом хотелось сделать особый акцент, так как команда — это важнейший ресурс для решения любой поставленной задачи. Команда необходима с достаточным опытом и пониманием, что мы решаем непростую, но очень интересную и важную задачу!


Методика должна быть динамичной

Итак, есть команда и оборудование, на котором можно проводить испытания. Есть требования, которые необходимо выдержать. Выбранная стратегия была оформлена в виде документа «Методика нагрузочных испытаний», который содержал в себе всю необходимую информацию для старта работ:

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

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


Какие испытания проводить?

Стартовыми испытаниями мы назначили нагрузочные тесты для подтверждения того, что система в базовой установке выдерживает требуемую нагрузку. Например, исходя из проведенного на предыдущем этапе анализа, для «Большого Банка» минимальным требованием была нагрузка в 3000 пользователей онлайн. Для нас первые же результаты тестирования показали, что есть довольно много узких мест в системе, которые требуют доработок и исправлений: начиная с банального добавления индексов в базы данных и заканчивая трудозатратной доработкой архитектуры. Важно учитывать, что начальный этап может оказаться гораздо дольше запланированного, так как после каждой доработки системы необходимы итерации подтверждающего тестирования, которое может обнаруживать всё новые системные функции, нуждающиеся в улучшении для достижения необходимых показателей производительности.

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


Что же дальше?

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

  • стресс-тестирование системы, которое позволило показать, что система определённое время может бесперебойно работать на экстремальных или сверх-нагрузках (выше необходимых показателей) и далее восстанавливаться без потери данных;
  • тестирование стабильности. Мы проводили тесты, при которых нагружали систему в течение длительного времени. Это показывает, что система под реальной нагрузкой может бесперебойно работать долгое время — 24×7;
  • нагрузочное тестирование на сверхбольших объёмах данных, например на десятках миллионов платёжных поручений, позволило подтвердить, что система без потери характеристик будет работать долгие годы и с учётом накопления огромного количества информации;
  • тестирование на различных схемах развёртывания и тестирование масштабируемости системы позволяет нам дать информацию об оптимальной для каждого клиента схеме развёртывания, в зависимости от пожеланий и числа потенциальных пользователей. Так же мы получаем информацию о том, в какой момент стоит клиенту оптимизировать текущую схему.

Система постоянно меняется!

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

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


Мы сделали производительную систему ДБО

Что же в итоге? Вывод очевиден: создать систему дистанционного банковского обслуживания, которая отвечает всем современным потребностям рынка — возможно. Мы показываем это на своём примере, но никогда нельзя останавливаться на достигнутом. Наши дальнейшие планы — постоянное улучшение процессов тестирования производительности, которые идут в ногу с самыми актуальными практиками и современными методиками. Самое главное для нас — создание качественных, надёжных, безопасных и быстрых сервисов!

Конечно, не все характеристики и показатели производительности платформы CORREQTS озвучены в статье. Поверьте, нам есть, что показать и рассказать о процессе и результатах нагрузочных испытаний. Если ваш банк заинтересован в детальной информации — всегда рады помочь.

Оригинал статьи

Подписаться | Все публикации