Разработка платформы для участников внешнеэкономической деятельности «тамо • ОС»
Осенью 2021 года мы подключились к разработке платформы для участников внешнеэкономической деятельности «тамо • ОС».
Она позволяет автоматизировать процессы трансграничной торговли: помогает через единую площадку заполнять таможенные документы, оплачивать таможенные платежи и взаимодействовать с таможенными органами РФ.
Задача
Партнер обратился к нам для усиления команды. Нам предстояло создать несколько микросервисов для большой системы, в частности — модуль оплаты услуг (с автоматическим выставлением счетов). Перед нами стояла задача проработать механизм оплаты сервисного сбора и проведения таможенных платежей, а также интегрировать продукт с внешними платежными системами КУБ24 и DaData, сделав сервис максимально понятным и удобным для пользователя. Отдельно была поставлена задача по автоматизации тестирования API микросервисов для ускорения регрессионного тестирования и проверки CI/CD-процессов. Создаваемые автотесты, как и их результаты, должны были храниться в системе управления тестами (TMS). Запуск должен был производиться по триггерам операций сборки и деплоя проектов или вручную из TMS.
Что мы сделали
Команда SimbirSoft приняла участие в разработке платёжного модуля, а также в поддержке уже имеющегося функционала. Мы ознакомились с архитектурой приложения и провели рефакторинг миграций, после чего приступили к разработке новых сервисов — автоматического выставления счетов и механизма расчёта услуг. Для этого было создано 3 новых микросервиса. Параллельно наша команда запустила процесс автоматизации тестирования и приступила к закрытию технического долга по разработке интеграционных и unit-тестов.
Первоначальное покрытие функционала системы автотестами заняло около двух месяцев. Одновременно мы разработали собственный фреймворк для тестирования, который включает взаимодействие с системой управления тестами, гибкое управление пользователями в качестве тестовых данных, а также настройку CI/CD в виде декларативного пайплайна.
Результаты
Одной из наших задач стал рефакторинг большого количества микросервисов для приведения архитектуры системы к требуемому виду. Мы проанализировали вопрос вместе с командой клиента, нашли оптимальное решение и выполнили работу в установленные сроки. Регулярное выполнение тестов выявило также некоторые недочеты в реализации архитектуры микросервисов и в функционировании сервисов под нагрузкой, которые были успешно исправлены. Помимо этого, наши специалисты решили проблему большого технического долга, связанного с архитектурой управления данными. Также мы создали качественный фреймворк, который упростит последующий процесс разработки автотестов.
Технологии
Spring Boot, Spring Cloud, Rest, PostgreSQL, Keycloak, JUnit, Swagger, Lombok, Testcontainers, Mockito, Feign, MapStruct, SOAP, ActiveMQ, TestIt