«Один из ежедневных процессов ускоряется с 3 часов до 15 минут»: Андрей Богословских о in-memory computing в СберТехе



    Слова «in-memory computing» звучат заманчиво и футуристично. Кому бы не хотелось устранить «бутылочное горлышко» скорости жёсткого диска, храня и обрабатывая данные в памяти? Но на практике возникают нюансы: например, из-за энергозависимости оперативной памяти данные всё равно надо дублировать в постоянной, и выигрыш получается при чтении, но не при записи. Каково реально работать с этим?

    Большим соответствующим опытом обладают «Сбербанк-Технологии», где сейчас активно работают с Apache Ignite и даже инвестировали в создавшую его компанию GridGain. Поэтому мы решили задать несколько вопросов об этом опыте: разумеется, его нельзя слепо переносить на любую другую компанию, но он всё равно ценен. На них ответил Андрей Богословских, директор Центра Компетенции платформы поддержки развития бизнеса.

    — В прошлом году на нашей конференции JPoint вы говорили, что сотрудничество с GridGain находится в начале большого пути — а как обстоят дела сейчас?

    — Ещё год назад по направлению распределенной обработки данных в Сбербанк-Технологиях работало порядка 200 человек, а сейчас уже более 1000. Причём это не только специалисты, которые совместно с сотрудниками компании GridGain разрабатывают новую технологическую платформу Сбербанка, но и прикладные команды, которые переписывают существующее прикладное ПО Сбербанка на новую ИТ-платформу. Ядро платформы должно быть готово к концу 2017 года, в 2018 году начнутся активные внедрения и тираж. Также предстоит много работы по мониторингу новой ИТ-системы, повышению ее надёжности и управляемости.

    — Из-за чего вам изначально понадобился Apache Ignite? Можете ли поделиться конкретными числами, показывающими, как его использование сказывается на ваших задачах?

    — В связи с упрощением доступа к счетам (мобильный банк, интернет-банк) уменьшается средняя сумма транзакции, но резко растёт их количество. Ещё 10 лет назад сотовую связь в основном оплачивали в офисах оператора связи на 1-2 месяца вперед. Сейчас клиенты платят за связь через мобильный банк несколько раз в месяц, но меньшими суммами. Это только один пример постоянно растущего количества транзакций.

    Поэтому для нас чрезвычайно важна высокая производительность систем, в чём может помочь Apache Ignite. Тестирования показывают, что при текущей системе один из ежедневных пакетных процессов Сбербанка занимает порядка трёх часов, а на Apache Ignite 15 минут. Также от новой системы ожидается производительность более 10000 клиентских операций по банковским картам в секунду против нынешних 3000 операций в секунду в пике (а обычно — около 500).

    — По-вашему, Apache Ignite подходит для тех, кому приходится работать с подобными гигантскими масштабами, или маленьким компаниям он может быть не менее полезен?

    — Продукт крайне интересный. Apache Ignite применим не только в крупном бизнесе, но уже готов к использованию «прямо из коробки» в средних и маленьких компаниях — безусловно, это его большое преимущество. А мы своим участием в нём как open source-проекте стараемся сделать доступнее для всех уровень зрелости, надёжности и эффективности ИТ-решений Сбербанка.

    — То есть СберТех коммитит в Apache Ignite, хотя вы плотно сотрудничаете со стоящей за ним компании GridGain, так что они наверняка и сами учитывают при разработке ваши потребности?

    — В конце прошлого года руководство компании решило создать отдельное направление по развитию open source-проектов, которые являются ключевыми в ИТ-ландшафте компании.

    Выгода компании при развитии open source заключается в повышении доступности продуктов для широкого круга. У СберТеха есть большой и действительно уникальный опыт разработки проектов, которые соответствуют очень жёстким требованиям по надёжности, доступности, производительности, масштабируемости. Такой опыт сложно получить где-либо ещё (задачи подобного уровня ставят перед собой компании масштабов Amazon, Google и т.д.). Мало кто в сообществе разработчиков сталкивался с нашими use-case’ами.

    Мы решили развивать ключевые стримы в open source: надёжность, производительность, устранение технологического долга, расширение экосистемы и возможностей по интеграции проектов.

    Apache Ignite стал первым таким open source-проектом, и мы плотно взаимодействуем с GridGain. К реализации проектов предъявляется много требований, поэтому в СберТехе есть отдельные команды на этом направлении.

    — А какой характер коммитов СберТеха в Apache Ignite — что-то, связанное с банковской спецификой?

    — У нас нет задачи развивать open source проекты под бизнес-специфику Сбербанка. В них только вносится функционал, который будет полезен для всех пользователей проекта, в том числе для потенциальных клиентов. Если говорить о текущем участии, то команда поработала над релизами Apache Ignite 1.9 и 2.0. Коммиты можно разделить на две категории — баг-фиксы и новый функционал, разделение примерно равное. В отношении нового функционала особое внимание уделяется сложным сценариям транзакционности, повышению надёжности и управляемости кластера.

    — Что вы на основе своего опыта работы с Apache Ignite можете порекомендовать другим людям, еще не использующим проект, но заинтересовавшимся им? В каких случаях он хорошо подходит, а в каких могут возникнуть проблемы?

    — Я советую не бояться изменений, но начинать с малого. Apache Ignite обладает широким функционалом, обеспечивающим снижение латентности, повышение производительности ваших приложений. Для крупных компаний ключевым может оказаться возможность обеспечения роста бизнеса, объёмов вычислений и обрабатываемых данных при снижении TCO. Применять продукт можно и в простых задачах (например, ускорение отклика сервисов и снижение времени доступа к данным), и на более сложных задачах (распределённые вычисления в памяти, распределённая SQL БД). Поддержка DML уже в достаточной степени реализована, полная поддержка DDL по планам сообщества должна появиться в ближайшее время. Если говорить о совсем новых возможностях, то это поддержка ML. Бета-версия движка машинного обучения, включающая поддержку распределённой математики, входит в выпускаемый релиз Ignite 2.0. До конца 2017 года запланированы развитие движка, включая реализацию отдельных алгоритмов из коробки, Python, R и др. Теперь Apache Ignite можно использовать и как распределённую платформу машинного обучения на больших данных со всеми преимуществами хранения и вычисления в памяти.

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

    — Работая с Apache Ignite уже не первый год, вы видите ситуацию с in-memory computing в динамике — как всё развивается?

    — По моим ощущениям, in-memory computing из области экзотики переходит в область стандартных инструментов для разработки. Например, НСПК создал единую платёжную систему для карты МИР на основе grid-технологий. Большинство основных разработчиков платёжных систем рассматривали возможность использования grid-технологий в очередных версиях своих систем.

    — С точки зрения производительности in-memory computing может заметно выигрывать, но при этом большие объёмы оперативной памяти ассоциируются с дороговизной. Можете ли вы привести какие-либо числа, дающие представление, как на практике это сказывается у вас на «железных» расходах по сравнению с традиционными подходами?

    — Стоимость кластера, который объемом RAM эквивалентен размеру дисков текущих систем core-banking, составляет 1/5 от цены Hi-End решений. При этом кластер на архитектуре x86 обладает существенно большей процессорной мощностью, лучше приспособлен к массово-параллельным операциям, масштабируется горизонтально.

    Кластер ожидаемо потребляет больше энергии, от 30 до 200% в зависимости от природы нагрузки. Также он занимает примерно в 5 раз больше места в дата-центре по сравнению с RISC-решениями.

    — А если посмотреть, как со временем менялась стоимость таких решений, и попытаться заглянуть в будущее — похоже ли, что in-memory computing ожидает рост благодаря снижению стоимости?

    — Не готов давать финансовые прогнозы, но ежегодно оперативная память дешевеет, а потребление энергии памятью падает. Кто ранее мог подумать, что SSD-диски вытеснят HDD из TOP-сегмента? Думаю, что что-то похожее будет и с оперативной памятью, и с NvRAM решениями, что придаст новый импульс развитию in-memory computing.
    Метки:
    • +25
    • 9,2k
    • 5
    JUG.ru Group 859,64
    Конференции для взрослых. Java, .NET, JS и др. 18+
    Поделиться публикацией
    Комментарии 5
    • +1
      Как память «дешевеет» за последних 1.5 года можно глянуть здесь Price trends for ddr
      По слухам из Сбертеха не все так просто с идет, но безусловно интересно будет узнать конечный результат перехода на InMemory вместо Oracle
      • +1

        Интереснее было бы взглянуть и на графики 5-10-летнего периодов.

        • 0

          А оракл не умеет в памяти жить целиком разве?

          • 0
            Здесь вопрос не только в обработке данных в памяти, но и в горизонтально высокомасштабируемой распределенной обработке данных с соответствующей инфраструктурой (колокация, обеспечение отказоустойчивости, удобные интерфейсы доступа и т.д.). Более того, начиная с версии 2.1 Ignite работает не только с памятью, но и с диском.
          • 0
            Если мы хотим консистентность в распределенной системе, то приходится жертвовать доступностью.
            + В зависимости от того, как будут партиционироваться данные, скорее всего от распределенных транзакций не обойтись, а это удар по надежности и доступности.

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

            Самое читаемое