«Наши Требования К Надежности Выше, Чем У Среднего Предприятия»: Deutsche Bank О Разработке Java И Конференциях

Технологический центр Deutsche Bank известен своими носителями Java: Руслан Черемин И Алексей Рагозин давно выступаем на конференциях, выбирая темы для докладов далеко не самые доступные, и оба лидируют технический блог .

Deutsche Bank принял участие в Joker 2016, и мы использовали это как возможность задать Черёмину и Рагозину несколько вопросов.



«Наши требования к надежности выше, чем у среднего предприятия»: Deutsche Bank о разработке Java и конференциях



Руслан Черемин (старший разработчик)



«Наши требования к надежности выше, чем у среднего предприятия»: Deutsche Bank о разработке Java и конференциях

— Обычно о вас знают просто как «он из Deutsche» — но можете ли вы рассказать нам о том, чем именно вы там занимаетесь и как именно (например, какими инструментами пользуетесь)? — Мы занимаемся валютным рынком.

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

.

Ничего особенного среди инструментов у нас здесь нет: у Deutsche Bank есть лицензия на IDEA, хотя некоторые специалисты по привычке до сих пор занимаются разработкой в Eclipse. Для сборки мы используем Maven и Ant, соседние команды используют Gradle. — В «Без слайдов» вы говорили «оказалось, что Дойче Банку просто нужен такой специалист, как я» — что именно означало «кто-то вроде тебя», в чем конкретно заключалась актуальность роли? — В тот момент моя нынешняя команда собиралась переписать сервер ценообразования с нуля — с Disruptor и прочими ухищрениями.

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

И вот я с отчет по поводу Disruptor, а я как раз собираюсь уйти из Яндекса и меня очень интересует возможность работать в домене с низкой задержкой.

В процессе подготовки к конференции мы познакомились с Володей Долженко, благодаря которому я в итоге и попал в Deutsche. — Расскажите для тех, кто далек от банковской сферы: какая специфика разработки Java в таком месте, как Техцентр Дойче Банка, отличает ее от Java-разработки в целом? Повышенные требования к надежности? — Конечно, требования к надежности у нас, конечно, выше, чем у среднего предприятия, но все же мы здесь не шаттлы запускаем — ничего заоблачного нет. Надежность в основном обеспечивается избыточностью: например, из двух десятков источников данных, которые прослушивает наш сервер, в каждый конкретный момент реально используются только пять — очевидно, самого высокого качества.

Остальные просто есть в наличии на замену; если вдруг замолчит качественный источник, то перед нами менее качественный, но все равно рабочий.

И это избыточность на многих уровнях.

Особенностью банковского сектора является то, что он строго регулируется и проверяется.

Поэтому большая часть требований бизнеса направлена на удовлетворение потребностей аудиторов.

Например: мы сохраняем много информации о том, что происходит в наших системах, и храним ее практически вечно.

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

— На JPoint 2016 вы сказал по поводу эскейп-анализа - можете ли вы привести какой-то конкретный пример из своего опыта работы, как его знание помогло справиться с конкретной рабочей задачей? — Нет, не могу :) Это довольно недавнее исследование, и оно пока не нашло сколько-нибудь заметного применения в моей работе.

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

А переписать то, что просто и надежно, во что-то модное и молодежное только потому, что это модно и молодежно.

Жду новых проектов - возможно, там оно будет полезнее.

- Ладно, это слишком недавно - и в случае с такой темой, как Модель памяти Java, которая обсуждалась отчет в 2013 году есть конкретные случаи «вот тут помогло»? - Да, те самые слабые кэши Мы используем их во многих местах нашего кода и помогаем снизить нагрузку на GC. В горячих точках у нас есть параллельные карты или буферы, специализированные для конкретного сценария.

В целом знание JMM — вспомогательный навык; его основное предназначение — отфильтровывать заведомо неправильные решения.

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

многопоточные шаблоны.

Есть очень мало трюков, подобных безобидной гонке.

Б О Большая часть практического применения JMM заключается в том, чтобы не делать ничего глупого и сохранять простоту.



Алексей Рагозин (архитектор решений)



«Наши требования к надежности выше, чем у среднего предприятия»: Deutsche Bank о разработке Java и конференциях

— Вы достаточно «хардкорный» специалист. Подходит ли вам Дойче Банк, потому что там много подходящих задач? — По его меркам я не претендую на «хардкор».

В RTC есть команды, которые решают задачи в категории сверхмалых задержек, вот где «хардкор».

Но Deutsche меня действительно привлекает тем, что очень часто мне приходится решать проблемы, для которых еще нет «стандартных» решений в отрасли.

Я бы сказал, что если вы заинтересованы в работе над определенными технологиями (например, сеткой данных в памяти), Техцентр Дойче Банка — чуть ли не единственное место.

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

блог .

Какова ваша основная мотивация сделать это? — Помимо блога и конференций, я долгое время преподавал курсы второго высшего образования в МГТУ.

Баумана, и сейчас веду два курса в Java-школа наш технологический центр.

Но возвращаясь к вопросу, главная цель – расширить круг общения и обмен мнениями.

Выступления и статьи в блогах вызывают отклик у читателей/слушателей, и очень часто я узнаю что-то новое.

— Меня интересует школа Java: какие там два курса? — Один посвящен профилированию Java-приложений, другой — сбору мусора.

Аналогично двум моим отчетам о JPoint. — Иногда считается, что самообразования достаточно: мол, на StackOverflow можно найти любой ответ. Почему школа Java? Что это дает вам такого, чего вы не можете найти в Google? — Школа дает очень многое.

Грубо говоря, пока человек не поймет проблему, он не сможет правильно задать вопрос.

И соответственно, он не может найти ответ на StackOverflow. Это порочный круг.

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

И это справедливо не только для узких технических тем вроде настройки JVM, но и для совсем других.

Никакой StackOverflow не научит вас правильно использовать сложный фреймворк или проектировать архитектуру приложения.




Напоследок вот доклады, которые Черемин и Рагозин выступали в последние годы на конференциях JUG.ru Group: Теги: #java #банковское дело #Руслан Черемин #Технологический центр Дойче Банка #Алексей Рагозин
Вместе с данным постом часто просматривают: