Разработка бэкенда сложной системы в сфере путешествий
Бизнес-вызов
Разработка решения в сфере путешествий, которое будет взаимодействовать с такими глобальными системами дистрибуции, как GDS и Galileo.
В обязанности команды ДжазТим входило создание стабильного, предсказуемо функционирующего бэкенда, поведение которого можно легко расширять с помощью бизнес-правил и скриптинга.
Технологические особенности проекта
- В процессе работы над проектом команде ДжазТим было необходимо быстро освоить OTA-схемы (включая XSD, XML). Благодаря тому, что у нашей компании уже был специфический опыт, связанный с Travel-индустрией, это удалось сделать в необходимые сроки.
- Было необходимо разработать легко расширяемый бэкенд. Применение Drools и бизнес-правил помогло это обеспечить.
- На проекте были достаточно серьёзные архитектурные вызовы. Часть функционала реализована на микросервисной архитектуре. Также ввиду различных требований к производительности использовались и реляционные, и нереляционные базы данных.
- Ввиду специфики проекта требовалось фундаментальное понимание JTA (Java Transaction API).
- В процессе работы нашей командой предложено достаточно нетипичное использование технологии Apache Solr.
Особенности проекта
- В процессе разработки бэкенда необходимо учесть серьёзные требования к уровню нагрузки, а также обеспечить экономичность решения — бэкенд должен осуществлять минимальное количество запросов в глобальные системы.
Технологии: Spring Boot, Swagger, Redis, Apache Kafka, Apache Solr, MongoDB, JTA, XSD, XML, Drools, Robot Framework, Selenide.
Подходы и решения
- Совмещение традиционных подходов к разработке с микросервисной архитектурой там, где это действительно было обосновано. Такой подход позволил решить проблемы, которые были, но при этом максимально сэкономить средства заказчика.
- Ввиду большого количества комбинаций ситуаций для обработки на уровне бэкенда, принято решение создать фреймворк для автоматизированного тестирования на основании Robot Framework. Разработка средств автоматизации заняла достаточно большую часть данного проекта.
- Тестирование сложных UI-компонентов с применением библиотеки Selenide.
Результаты:
- Разработана бэкенд-часть сложной системы с учётом всех требований по качеству и производительности, выдвинутых заказчиком.
- Проведено комплексное автоматизированное тестирование бэкенд-части системы.
- Учтены требования по пиковым нагрузкам на систему. После реализации необходимых работ замерена производительность разработанных компонентов.
- Создан полный набор скриптов для сборки и установки компонентов приложения, а также применена контейнеризация.
Достижения компании на проекте
- Работа на проекте изначально была организована по водопадной модели, однако по нашей инициативе заказчик согласился перейти на Scrum-методологию и короткие итерации. Это позволило достичь хороших результатов в сжатые сроки.
Свяжитесь с нами, чтобы обсудить Ваш IT-проект