6 мифов о разработке в банках — и почему в Альфе всё по-другому

Разберём главные, а об остальных расскажем на онлайн-чемпионате для разработчиков Alfa Battle

6 мифов о разработке в банках — и почему в Альфе всё по-другому

Среди разработчиков бытует мнение, что банки разрабатывают медленно, а инструменты используют устаревшие. Может, у кого-то так и есть. Но точно не в Альфе. Рассказываем, как устроена разработка в Альфа-Банке и почему работать у нас не менее интересно, чем в самых продвинутых ИТ-компаниях.

Молодые разработчики часто думают, что интересные задачи и новый опыт ждут их где-то далеко — в Google, Facebook и т.д. Однако в России одними из самых продвинутых с точки зрения IT оказались именно банки. Потому что такие банки, как наш, открывали в 90-е прогрессивные экономисты. Несмотря на большие унаследованные системы, мы трансформируемся очень быстро. В этом нам помогает Java, которая служит промежуточным слоем и позволяет строить мосты и дороги от старых систем к новым, от прошлого к будущему.

Дамир Баттулин, руководитель департамента развития онлайн-каналов Альфа-Банка

Миф 1: в банках используют старые версии Java — 6, 7 и 8

Мы в банке ещё 5 лет назад начали писать на Java 8 (первую версию интернет-банка на микросервисной архитектуре). Сейчас в большинстве проектов мы используем Java 11, местами — 13.

Что это нам даёт?

  • Быстрый доступ к новым JEP: мы используем новые фичи, без задержек на обновление версий.
  • Оптимизацию работы в docker-контейнере.
  • Более удобные и функциональные стримы с каждым релизом и т.д.

Чтобы разработчик мог больше времени посвятить решению сложных задач, а не ожиданию сборки проекта, мы используем jvm параметры для старта Java-приложения, такие как *RAMPercentage. С ними мы можем задавать размер памяти в процентах, исходя из памяти контейнера, и оптимизировать работу приложения в нём.

JAR-архивы мы храним распакованными — это ускоряет запуск проекта и позволяет закешировать часто используемые либы, которые не меняются от сборке к сборке. Время старта контейнера со Spring Boot приложением уменьшилось в 2,5 раза — с 40 секунд до 15. Хотим попробовать JEP 351 ZGC Uncommit Unused Memory из java 13 — чтобы оптимизировать работу сервисов.

Больше об этом и вообще о том, как устроена разработка в Альфа-Банке, расскажем в стриме на Alfa Battle, онлайн-чемпионате Java-разработчиков — подключайтесь 27 июня, с 12:00 до 18:00 по МСК.

Миф 2: оркестраторы устарели

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

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

Миф 3: в банках только легаси

Легаси есть, и мы постепенно распиливаем его на микросервисы, но местами это большие и критичные куски системы. Прежде чем их переписывать, нужно всё спроектировать, проработать масштабируемость и отказоустойчивость. Все новые и текущие крупные проекты мы уже давно пишем на современном стеке: Java 11 и 13, Kotlin, SpringBoot 2, Kafka, Project Reactor / Spring WebFlux.

Миф 4: всё общение — в корпоративной почте

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

Миф 5: в корпорациях используют только дорогие вендорские системы мониторинга

И их тоже, но не только. У нас есть, например, Zabbix. А для мониторинга состояния наших микросервисов мы используем Micrometer, Prometheus, Grafana. Prometheus подкупил нас в своё время простой интеграцией и большими возможностями. Сейчас мы научились мониторить им почти всё, включая лаг синхронизации Kafka-кластеров через MirrorMaker.

Вообще мы любим DevOps, и такие практики, как мониторинг и логирование, помогают нам быстро реагировать на проблемные релизы и восстанавливать работоспособность систем.

Миф 6: процессы доставки на production сильно бюрократизированы

На самом деле это не так. Если процесс доставки автоматизирован с помощью CI/CD-системы (в Альфе распространены пайплайны на основе Jenkins и Bamboo), то в большинстве случаев никаких дополнительных писем, заявок и согласований не нужно. Разработчик запустил процесс, прошли автоматические тесты, инженер саппорта одобрил раскатку на прод — и всё, функциональность доступна ограниченному количеству пользователей. Открытие новых фич идёт поэтапно с постепенным повышением доли людей, которые могут их попробовать.

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

Хотите работать с самым современным стэком, учиться у лучших и решать интересные задачи? Примите участие в Alfa Battle, онлайн-чемпионате по прикладному программированию на Java от нас и наших партнеров — Билайн и X5 Retail Group. Подайте до 25 июня заявку в отборочный раунд, в ходе которого надо будет решить 5 небольших задач на навыки программирования. А 27 июня состоится финальный раунд — 5 часов остросюжетного кодинга. Кроме возможности приглашения на работу, победители получат денежные призы. Призовой фонд чемпионата — 500 000 рублей.

Вот страница регистрации.

1818
6 комментариев

Оно и видно, что Java используется.

3
Ответить

К сожалению да, приложение от Альфа выигрывает. К сожалению так как сам банк стал проигрывать.

Ответить

Согласен с Владиславом , приложение очень информативно и просто' ,а вот банк стал тяжелее)))

1
Ответить

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

Ответить

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

У меня было "ошибка сервера" при попытке перевода денег другому клиенту Альфа-банка по номеру карты. Это из-за того, что у меня самого нет ни одной карты, только счета. Но по ошибке это понять невозможно.

1
Ответить

Мы очень рады видеть "Альфа-Банк" среди своих клиентов. Рады нашему взаимовыгодному сотрудничеству.

Ответить