Top.Mail.Ru

Миграция десктопного приложения в веб: как мы увеличили производительность в 10 раз для лидера строительной отрасли

top logo
Заказчик:
Крупнейший разработчик программных комплексов для инженеров и IT-решений для строительной отрасли
Задача:
Мигрировать десктопное Python-приложения в масштабируемое веб-решение
Результат:

Использование современных стеков технологий (FastAPI, React, Docker, Redis) позволило трансформировать устаревший продукт в конкурентное масштабируемое решение с новыми возможностями для Бизнеса.

Наша компания специализируется на миграции устаревших десктопных приложений в современные веб-решения. В этом кейсе мы расскажем, как помогли крупному разработчику ПО для строительной отрасли перевести его Python-приложение в масштабируемый веб-сервис, использовав такие технологии, как FastAPI, React и Docker.

Задача: Мигрировать десктопное Python-приложения в масштабируемое веб-решение

Заказчик: Крупнейший разработчик программных комплексов для инженеров и IT-решений для строительной отрасли

Описание ситуации:

Компания столкнулась с критическим устареванием основного продукта:

  • Платформенная зависимость: Приложение работало исключительно под Windows.
  • Высокие операционные издержки: Каждое обновление требовало ручной установки, создавая простои.
  • Низкая производительность: Обработка сложных вычислений занимала значительное время, снижая эффективность работы клиентов
  • Архитектурные риски: Монолитная структура кода делала поддержку и развитие экономически нецелесообразным
Миграция десктопного приложения в веб: как мы увеличили производительность в 10 раз для лидера строительной отрасли 3интерфейс декстоп-приложения (старое приложение)

 

Задачи

  • Обеспечить кроссплатформенный доступ к функционалу устаревшего десктопного приложения
  • Ликвидировать необходимость ручных обновлений ПО на пользовательских устройствах
  • Повысить производительность обработки данных
  • Создать масштабируемую архитектуру для роста пользовательской базы
  • Обеспечить безопасность данных и отказоустойчивость системы
  • Сократить затраты на поддержку

Цель:

Создать современное, кроссплатформенное веб-приложение с тем же функционалом, что и у десктопной версии, увеличив производительность, отзывчивость интерфейса и возможность масштабировать и поддерживать разработанное решение в будущем.

Было принято решение использовать следующий стек:

  • Frontend:js– для построения интерактивного и отзывчивого пользовательского интерфейса;
  • Backend:FastAPI Python– для создания высокопроизводительного REST API и сохранения старого функционала;
  • управление нагрузкой:Redis– в качестве брокера сообщений для обработки длительных и ресурсоемких операций;
  • развертывание: Docker – для контейнеризации и оркестрации всех компонентов системы (Nginx, Frontend, Backend, Redis).

Ключевые проблемы и их решения:

  • Ресурсоемкие вычисления из десктоп-приложения выполнялись продолжительное время;
    Решение: провести оптимизацию заложенных алгоритмов, ввести лимит на обработку задач с помощью Redis. Пользователь инициирует операцию и в режиме реального времени отслеживает процесс выполнения задачи.
  • Код декстоп-приложения представлял собой монолит со сложными взаимосвязями, что делает его поддержку крайне затруднительной;
    Решение: провести рефакторинг и разбить код на четкие модули с единой ответственностью для реализации поддерживаемой и расширяемой архитектуры.
  • Интерфейс декстоп-приложение не соответствовал современным стандартам и имел критические уязвимости для некорректного ввода.
    Решение: провести анализ текущего приложения и разработать приложение с использованием современных технологий и реализацией защиты от некорректного ввода.

Реализация

  • проведение анализа и декомпозиция:логика десктопного приложения была разбита на модули, определены синхронные и асинхронные операции.
  • разработка Backend (FastAPI) – созданы RESTful эндпоинты для управления задачами;
  • разработка Frontend (React.js) – реализован динамический интерфейс с отображением прогресса задачи и логом обработки;
  • контейнеризация (Docker) – написан Dockerfileдля каждого сервиса и docker-compose.ymlдля их совместного запуска;
  • Настройка Nginx – настроен как единая точка входа, перенаправляющая запросы к фронтенду или бэкенду.

Результаты

  • кроссплатформенность: приложение стало доступно с любого устройства с браузером;
  • увеличение производительности: теперь обработка тяжелых файлов занимает до 10 минут, вместо прежних многочасовых обработок;
  • централизованное управление обновлениями: все обновления развертываются на сервере и становятся мгновенно доступными для всей пользовательской базы.
  • масштабируемость: Docker-архитектура позволяет легко добавлять новые инстансы backend-сервисов при росте нагрузки и другие компоненты системы;
  • снижение TCO (Total Cost of Ownership): значительно снижены затраты на поддержку и распространение ПО.
Миграция десктопного приложения в веб: как мы увеличили производительность в 10 раз для лидера строительной отрасли 4интерфейс веб-приложения (новое приложение)

 

Этот проект наглядно демонстрирует наши компетенции в области модернизации legacy-систем. Если вы ищете надежного подрядчика для перевода вашего десктопного приложения в веб, мы готовы предложить вам индивидуальное решение.

Блог

Еще статьи и кейсы

Форма

Рассчитать стоимость проекта в течение дня

    Форма
    Хочешь
    присоединиться к нам?
    Мы готовы предложить лучшие
    условия на рынке
    Откликнуться


          Начать сотрудничество

            Отправить резюме

              Оставить заявку

              Ваша заявка принята!
              Перезвоним вам в ближайшее время
              Резюме успешно отправлено!
              Перезвоним вам в ближайшее время