Клиент — крупный российский банк, который активно развивает внутренние сервисы и наводит порядок в данных. А еще — объединяет распределенные источники, обновляет хранилища и снижает объем накопленного технического долга. Для решения этих задач заказчику понадобился опытный Java-разработчик, готовый взять на себя сервисы миграции, оркестрацию в Airflow и работу с уязвимостями в кодовой базе.
Компания iStaff-IT подключила к проекту специалиста в рамках договора аутстаффинга, сохранив привычные для заказчика процессы разработки.
Задача заказчика — надежный перенос данных и развитие существующих сервисов
На старте сотрудничества клиент проходил через этап активного развития внутренних платформ: с появлением новых сервисов, увеличением объемов данных и ростом нагрузки на IT-инфраструктуру. Без пересмотра существующих решений дальнейшая модернизация становилась все более рискованной.
Перед банком стояло несколько связанных друг с другом задач:
- выстроить стабильный процесс переноса данных из удаленных систем и сервисов в централизованные базы;
- доработать уже существующий функционал, не останавливая текущие бизнес-процессы;
- устранить накопившиеся дефекты и закрыть уязвимости, найденные внутренними проверками;
- навести порядок в тестах и документации, чтобы упростить дальнейшее развитие платформы.
Важно было не просто «разово» перенести данные, а выстроить повторяемый процесс, который можно масштабировать под новые источники.
Роль Java-разработчика iStaff-IT
Команда iStaff-it подобрала разработчика, владеющего языком Java и рядом необходимых банку фреймворков и библиотек. В зону его ответственности вошли:
- создание сервисов для переноса данных из удаленных источников;
- доработка существующего функционала на Java и Spring Boot;
- написание задач оркестрации в Apache Airflow;
- разработка интеграционных тестов для ключевых сценариев;
- устранение дефектов и уязвимостей, найденных в ходе аудитов;
- работа с баг-листом и техническим долгом;
- участие в код-ревью и поддержка актуальной документации.
При этом специалист сумел полностью встроиться в текущие процессы банка. Эксперт работал с существующим репозиторием Git, участвовал в обсуждении задач и соблюдал регламенты тестирования и деплоя.
Сервисы миграции данных — Java 17, Spring Boot, Spark
Основной стек разработки включал Java 17, Spring Boot, Spark, PostgreSQL и Oracle. Этот набор позволял строить гибкие сервисы обработки данных и масштабировать их под нагрузку. Наш эксперт:
- реализовал сервисы для подключения к удаленным источникам (API, внешние базы) с целью подготовки данных к загрузке;
- описал единый формат обмена данными, чтобы разные источники приводились к стандартной структуре перед сохранением в БД;
- настроил обработку больших объемов данных с помощью Spark, чтобы ускорить сложные преобразования и агрегации;
- оптимизировал работу с PostgreSQL и Oracle путем отслеживания транзакций и контроля нагрузки.
Логику загрузки разработали так, чтобы мониторингу поддавался каждый шаг: от получения данных до записи в хранилище. Это упростило расследование инцидентов и позволило быстрее находить проблемные участки.
Оркестрация в Airflow и Python-скрипты
Чтобы миграция данных не зависела от ручных запусков и разрозненных скриптов, процессы переноса были завязаны на Apache Airflow.
В рамках своих рабочих задач, специалист на аутстаффинге:
- описал DAG’и Airflow, которые управляют последовательностью шагов — от выгрузки данных до их валидации и загрузки в БД;
- настроил триггеры и расписания для разных сценариев: регулярные загрузки, ночные окна, разовые перерасчеты;
- реализовал Python-таски для вспомогательных операций — проверок качества данных, уведомлений, сервисных проверок;
- добавил контроль статусов и уведомления о сбоях, чтобы команда банка быстро видела, где именно произошел сбой.
В результате процессы миграции стали прозрачными: за их ходом можно следить через интерфейс Airflow, а любые отклонения фиксируются и оперативно приходят ответственным.
Тесты, код-ревью и документация
Отдельная часть работы была связана с качеством создаваемого кода и стабильностью релизов. Специалист iStaff-it:
- писал интеграционные тесты, которые проверяют ключевые сценарии работы сервисов с БД и удаленными источниками;
- участвовал в код-ревью, отслеживал соблюдение agreed-подходов к архитектуре, помогал находить потенциальные уязвимости;
- документировал реализованные сервисы, контракты API, схемы БД и особенности работы дагов Airflow;
- систематизировал информацию о сценариях миграции в удобном для внутренних команд формате.
Такой подход позволил сократить число регрессий при изменении логики, а также облегчить подключение новых разработчиков к проекту.
Кроме того, эксперт нашей компании отвечал за борьбу с багами и устранение накопившегося технического долга. Разработчик:
- анализировал дефекты в продакшене и стендах, разбирал первопричины, а не только симптомы;
- закрывал уязвимости, выявленные при внутренних проверках безопасности;
- упрощал сложные участки логики, разбивая их на более понятные и поддерживаемые компоненты;
- помогал команде банка систематизировать баг-лист и выстроить приоритизацию исправлений.
За счет этого удалось минимизировать число повторяющихся инцидентов и сделать поведение сервисов более предсказуемым.
Результат для заказчика
Подключение Java-разработчика от iStaff-IT позволило банку выстроить управляемый процесс миграции данных из удаленных источников в централизованные базы, а также:
- развить существующий функционал программных решений без остановки текущих сервисов;
- сократить число дефектов и закрыть ряд критичных уязвимостей;
- получить прозрачную оркестрацию процессов в Airflow с контролем статусов и уведомлениями;
- навести порядок в тестах и документации, упростив дальнейшее развитие платформы.
Банк сохранил привычные процессы разработки, а риск простоя при доработках и миграции данных снизился.
Нужен Java-разработчик с большим опытом и практикой в рамках аутстаффинга? Специалист, который возьмет на себя сервисы миграции данных, оркестрацию в Airflow и работу с техническим долгом? Компания iStaff-it подберет эксперта под ваш стек (Java 17, Spring Boot, PostgreSQL, Oracle, Python, Spark, Airflow, Git, Docker) и аккуратно встроит его в текущий процесс разработки.