drag

кейс

тамо • ОС

Как backend, frontend-разработчики, DevOps-инженеры и QA-инженеры внутри нашей команды создавали высоконагруженный сервис для таможенного оформления

gotamo.ru
ко всем работам
задача

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

клиент

«Таможенная карта»

отрасль

Логистика

год запуска

2021

что сделали

Аналитика и прототипирование
Дорожная карта продукта
Микросервисная архитектура
Дизайн интерфейса
Frontend-разработка
Backend-разработка
QA
Поддержка и развитие проекта

награды

Микросервисный подход

Для технической реализации нами был выбран микросервисный подход к построению архитектуры. Это отличный вариант для разработки сложных систем — он обладает неоспоримыми преимуществами в сравнении с монолитными архитектурами. 

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

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

Ключевой плюс микросервисного подхода — горизонтальное масштабирование.

Технологический стек

Система сервисов построена в соответствии с мировыми стандартами в разработке и микросервисах. Backend-часть реализована на стеке Java и Spring Boot. Для нас было особенно важно то, что Java имеет множество библиотек для криптографии — наше решение подразумевало создание и проверку цифровых подписей документов электронного обмена. Frontend-часть написана на React, что дает доступ ко множеству готовых библиотек и компонентный подход к построению интерфейсов. 

В системе мы применили распространенные микросервисные паттерны — готовые решения для оптимального решения задач. Сейчас расскажем, какие. 



Единая точка входа

Паттерн API Gateway предоставляет единую точку входа для внешних клиентов (SPA-приложений). Сервис производит предварительную проверку аутентификации, маршрутизирует трафик на микросервисы и осуществляет балансировку нагрузки между элементами системы. 



Исключение ошибок

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



Еще немного паттернов

В качестве Service Discovery — протоколов для обнаружения сервисов — и централизованного управления конфигурациями мы используем решение на базе Consul, которое обеспечивает удобную конфигурацию всех настроек в одном месте. 

Инфраструктура включает сервер SSO для аутентификации и авторизации, который используется всеми модулями системы. Нами было выбрано решение на основе сервера Keycloak, который гарантирует нам широкие возможности по настройке и кастомизации сервиса.

Сокращение Time-to-market

Для управления репозиториями и обеспечения быстрого релизного цикла мы применили методологию Trunk Based Development, адаптированную под требования безопасности и инфраструктурные ограничения. 

Trunk Based Development — модель управления ветками кода, при которой существует только одна долгоживущая ветвь. Для разработки это значит выигрыш по времени для внесения изменений без проигрыша в качестве.

Более чем в 2 раза сократили time-to-market для нового функционала.

С помощью A/B тестов нам удалось оперативно проверять гипотезы, а решение Feature Toggles позволило нам реализовать динамическое управление новыми функциями на сервисах. 



Оптимизация процессов тестирования

Мы использовали комбинацию из двух, на первый взгляд, взаимоисключающих подходов к тестированию. 

Shift Left Testing — подход к тестированию на более раннем этапе жизненного цикла продукта — еще на уровне аналитики и написания документации. С таким подходом выявляем возможные ошибки до их реализации. 

Shift Right Testing — подход к тестированию на более позднем этапе жизненного цикла продукта после деплоя. Подход дает нам уверенность в том, что новые изменения обратно совместимы с различным программным обеспечением. 

Такая комбинация подходов позволяет добиться высокого качества сложного продукта и сократить усилия на ручное тестирование. 



Масштабирование команды и процессов

В процессе разработки наш клиент решил выходить на рынок со значительно большим объемом функционала, чем планировалось изначально — пора наращивать команду. Нам удалось не только значительно вырасти, но и оперативно адаптировать процессы для более эффективного управления.

Сохранили все преимущества гибких методологий — выиграли по качеству и по времени.

Мы разбили команду на несколько более мелких команд и построили иерархичную структуру управления, применив подходы Agile at Scale и Scrum of Scrums. Это позволило распараллелить разработку и сохранить преимущества гибких методологий. 

В процессе нам удалось не только вырасти в масштабах, но и в качестве — повысили стабильность и уровень работы команд. А что теперь? Продолжаем работать над тамо • ОС.

технологии

React

Redux

Effector

Typescript

React-hook-form

Yup

Java 11

Maven

Spring framework

PostgreSQL

ClickHouse

Hibernate

Consul

GitlabCI

IBM MQ

Active MQ

Elasticsearch

Kibana

Docker

Next.js

JavaScript

SCSS

Webpack

отзыв

Команда ООО «Таможенная карта»
Команда ООО «Таможенная карта»

Red Collar показали себя как наши полноправные партнеры в создании информационной системы тамо • ОС: специалисты агентства глубоко погрузились в специфику отрасли и взяли на себя проектирование, дизайн, фронтенд и бэкенд-разработку. Команда Red Collar консультирует нас при выборе архитектурных решений и отладке процессов разработки, разрабатывает все ключевые визуальные решения и постоянно работает над повышением качества сервиса в целом. Современные языки, оптимизация процессов, полный цикл тестирования. 

Red Collar готовы брать на себя ответственность и полностью включаться в процессы, добиваясь высоких результатов.

новости
смотрите также

Р-фарм

Система управления результативностью сотрудников для фармкомпании

Inculerate

Сайт для инвестиционной компании, отражающий её принципы и миссию

ТукТук

Разработка и сопровождение B2B-сервиса для рынка нерудных материалов

связаться

Расскажите о своей задаче

Мы Red Collar, а как зовут вас? Чтобы связаться, нам нужен ваш e-mail Ого, какой тяжелый файл! Больше 10 MБ ждем на hello@redcollar.ru Пожалуйста, проверьте, правильно ли написан e-mail

Нажимая кнопку, вы соглашаетесь с нашей политикой в отношении обработки персональных данных