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

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

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

Молодые разработчики часто думают, что интересные задачи и новый опыт ждут их где-то далеко — в 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 рублей.

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

0
6 комментариев
Написать комментарий...
selecadm

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

Ответить
Развернуть ветку
Владислав Шиляев

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

Ответить
Развернуть ветку
Александр Сильнов

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

Ответить
Развернуть ветку
Рома Степанов

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

Ответить
Развернуть ветку
selecadm

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

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

Ответить
Развернуть ветку
Rubraincom

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

Ответить
Развернуть ветку
3 комментария
Раскрывать всегда