Высоконагруженная платежная система для госучреждения

Высоконагруженная платежная система для госучреждения

Обзор проекта


Наш заказчик специализируется на расчетах в сфере жилищно-коммунального хозяйства. Данная организация использует многофункциональное программное обеспечение, позволяющее обслуживать около 1,5 миллионов лицевых счетов, обрабатывать огромные массивы данных и осуществлять оперативный доступ к ним.

Задача

В рамках программы по импортозамещению заказчик отказался от хостинга web-сервисов на серверах Windows. При этом заказчик стремился найти решение, которое не только будет соответствовать требованиям по импортозамещению, но и позволит минимизировать стоимость обслуживания имеющихся сервисов в будущем.

Решение


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

Было принято решение о переносе сервисов на хостинг с безлицензионным обслуживанием. С технической точки зрения реализовать это можно было двумя способами:
• обновить кодовую базу до наиболее последней версии .NetСore, предполагающей кроссплатформенную разработку и эксплуатацию;
• переписать имеющийся код с языка программирования С# на Jаva для возможности использования систем на opensource-серверах. Оба решения позволяли использовать сервера, не требующих лицензии.


После консультации с заказчиком мы рекомендовали языковые преобразования и переход на сервера Linux. Работа велась по двум модулям и заключалась в переписывании кода на язык программирования Java с сохранением полного функционала системы и частичном рефакторинге кода.

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

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

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

Статус:

Проект сдан и находится на поддержке и развитии.

Технологии:

Hadoop, Java, Python, PostgreeSQL, Oracle, Linux, SpringBoot, iBATIS, Aspect, NginX, Kibana.
Отзывы

Орфография и пунктуация авторов –
сохранены

1win