О проекте
К нам обратился сотовый оператор безлимитной связи со следующей задачей: его CRM- и ERP-системы стали работать очень медленно.
0,5 секунд – оптимальное время для загрузки карточки абонента, на тот момент это занимало 40 секунд. Многие необходимые руководству отчеты генерировались по несколько часов. Все эти обстоятельства стали препятствием для дальнейшего роста компании.
Задачи
- Из текущей версии выжать максимум производительности, не сломав ее до тех пор, пока она является действующей
- Произвести разработку новой системы, чтобы компания больше не сталкивалась с проблемами производительности
Результат
Повышение производительности существующей системы более чем в 50 раз (карточка стала открываться за 12 секунд). Запуск первой версии новой CRM, в которой карточка клиента открывается за 0,2 секунды
Виды выполненных работ
Анализ всех компонентов системы
Поддержка старой системы
Разработка новой системы
Внедрение SOA Service Oriented Architecture
Синхронизация данных с REST API и SOAP-ресурсами Beeline
Создание сервера мастер-данных
Создание сервера отчетов
Создание сервера документов
Ход проекта
За следующие 2 недели мы провели подробный анализ всех компонентов системы. Было установлено, что тотальное повышение производительности требует большого количества точечных доработок в текущей системе. Но не приведёт к желаемому результату.
За 4 недели мы произвели несколько точечных улучшений, которые ускорили критические отчеты. Улучшили производительность функций и в целом облегчили работу компании. В частности, карточка абонента стала открываться за 12 секунд.
В новом проекте мы использовали SOA Service Oriented Architecture. Все функции системы мы разделили на независимые сервисы, которые могут существовать абсолютно автономно. Новая система была запущена через 2 месяца после начала разработки.
После выпуска первой версии новая система постоянно дорабатывается. За 6 месяцев уже на 50% перенят функционал старой системы.
Полный переезд на новую систему. Сервис состоит из нескольких автономных блоков, которые обеспечивают надёжную работу всех отделов.
0,2сек
Загрузка карточки абонента
>50раз
Производительность системы
2мес.
Время первого запуска
Система сегодня
В процессе эволюции система выросла до следующих модулей:
Сервис состоит из нескольких блоков. Основным блоком является модуль синхронизации данных с REST API и SOAP-ресурсами Beeline. Он выполняет задания по обновлению данных по расписанию и по запросу пользователей. Пользовательский модуль работает со всеми остальными модулями:получает данные о номерах (и дополнительную информацию) от clients_data, отправляет задания на синхронизацию syncronizer, задания на обновление данных модулю operations. И запросы на генерацию отчётов по данным reports с возможностью генерации различных, удобных пользователю файлов в documents.
Модуль синхронизации работает с ресурсами Beeline, имея жесткие ограничения по количеству запросов. Для этого он имеет встроенный планировщик, систему динамической загрузки данных и перезагрузки данных при ошибках.
Сервис состоит из нескольких блоков. Основным блоком является модуль синхронизации данных с REST API и SOAP-ресурсами Beeline. Он выполняет задания по обновлению данных по расписанию и по запросу пользователей. Пользовательский модуль работает со всеми остальными модулями:получает данные о номерах (и дополнительную информацию) от clients_data, отправляет задания на синхронизацию syncronizer, задания на обновление данных модулю operations. И запросы на генерацию отчётов по данным reports с возможностью генерации различных, удобных пользователю файлов в documents.
Модуль синхронизации работает с ресурсами Beeline, имея жесткие ограничения по количеству запросов. Для этого он имеет встроенный планировщик, систему динамической загрузки данных и перезагрузки данных при ошибках.
Похожие проекты
Те, кто создает софт