Hitech logo

Кейсы

Как Единый портал потребителей СГК изменил рынок и задал новые тренды

TODO:
Елена Верещагина10 февраля 2022 г., 08:48

Представьте продукт, который задает тренды на рынке и становится эталоном для множества подобных проектов. Единый портал потребителей (ЕПП) Сибирской Генерирующей Компании, построенный на .NET и работающий в контейнерах Kubernetes — пример такого продукта. Ведущий эксперт проекта, Сергей Вронский, решил ключевые проблемы, заменив устаревшую монолитную архитектуру на микросервисную. Под его руководством проект достиг впечатляющих результатов, включая рост выручки, увеличение количества пользователей и улучшение качества обслуживания клиентов энергетического холдинга. О технических деталях и  инновациях на проекте Сергей Вронский подробно рассказал нам в интервью.

Самые интересные технологические и научные новости выходят в нашем телеграм-канале Хайтек+. Подпишитесь, чтобы быть в курсе.

— Что представляет собой Единый портал потребителей СГК и почему возникла необходимость в его разработке?

— Единый портал потребителей (ЕПП) с технической точки зрения это микросервисное веб-приложение, построенное на базе .NET и работающее в контейнерах под управлением Kubernetes. ЕПП выполняет роль общего бэкенда для Единого портала потребителей, Мобильного приложения СГК и Чатботов СТК. Он объединяет множество микросервисов, включая аутентификацию, опросы, уведомления, и многие другие, обеспечивая комплексное обслуживание потребителей.

Идея проекта ЕПП возникла из потребности объединить и совершенствовать ряд существовавших решений. Прежнее приложение для юрлиц уже не сопровождалось, разработчики были неизвестны, документации не хватало. Приложение для физлиц было написано как 15 отдельных приложений — по одному для каждого региона. Приложение для подключения к теплу было написано на разных платформах, без дизайна и не сопровождалось. В каждое из решений нужно было получить отдельные логины, иногда количество логинов достигало двух десятков. Приложения использовали устаревшие технологии, на которые было трудно найти разработчиков, не было готово к масштабированию на миллионы пользователей.

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

— Какие конкретные проблемы и задачи стали двигателем для реализации проекта ЕПП?

— Проект ЕПП решал несколько ключевых проблем. В первую очередь, обновленное приложение позволило вдвое снизить количество офлайн-консультаций, что было принципиально важно в период пандемии коронавируса.

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

— Какова была ваша роль на проекте — вы больше занимались операционкой или стратегией?

— К моменту начала разработки проекта, я уже обладал значительным опытом в разработке на платформе .NET, а также глубокими знаниями в области Microsoft SQL Server, Microsoft Azure DevOps, Docker, Kubernetes и Javascript.

На начальных этапах проекта я занимал позицию DevOps и разработчика .NET. Обеспечивал разработку и поддержку приложения, работая с технологиями .NET, Microsoft SQL Server, Microsoft Azure DevOps, Docker и Kubernetes.

В последние два года моего участия в проекте, моя роль изменилась, и я принял на себя обязанности SCRUM-менеджера. Моя ответственность расширилась, включая управление командой фулстек-разработчиков и DevOps-инженеров, что составляло в общей сложности около 6 человек. С течением времени, к моей команде добавились аналитики, тестировщики и саппорт, образуя коллектив в 11 человек. Моя ведущая роль на проекте заключалась в обеспечении успешного развития и эксплуатации приложения, а также эффективной координации команды для достижения поставленных целей.

— Какой стек технологий вы использовали?

— В рамках проекта мы использовали следующий стек технологий:

  • платформа .NET версии  6 для разработки серверной части приложения;
  • базы данных Microsoft SQL Server для хранения и управления данными, переучиваем команду и переходим на Postgresql;
  • Microsoft Azure DevOps для управления процессом разработки, непрерывной интеграции и доставки;
  • контейнеризация с использованием Docker (позже заменен на ContainerD) для упрощения развертывания и управления приложением;
  • оркестратор контейнеров Kubernetes для автоматизации управления контейнерами и масштабирования приложения;
  • Objective C и Java для разработки мобильного приложения;
  • JavaScript и Vue.Js для создания клиентской части приложения и веб-интерфейсов.
  • Этого хватило, чтобы эффективно реализовать проект и обеспечить его успешное функционирование.

    — Возникали какие-то сложности на проекте, как их удавалось решить?

    — Было несколько моментов, с которыми мы в итоге справились. Когда наш DevOps не мог выполнить ряд сложных работ, мне приходилось подключаться и решать их: запуск и поддержка Kubernetes, запуск Software-Defined Storage, запуск резервного копирования между серверами на базе Velero, запуск Service Mesh в тестовой среде. Также нам долго не удавалось запустить роботизированное UI-тестирование, мне удалось решить проблему за счет использования Selenosis и выделения физических нод Kubernetes.

    В 2022 году Kubernetes полностью перестал поддерживать DockerShim, нам пришлось пересмотреть нашу стратегию и перейти на альтернативное решение с использованием ContainerD.

    — Какие ключевые показатели роста вы можете отметить в результате разработки проекта?

    — За время разработки проекта с 2020 по 2023 год выручка от онлайн-оплат юридических лиц увеличилась с 7 миллионов рублей в месяц до 29 миллионов рублей в месяц.

    Количество лицевых счетов физических лиц возросло с 500 тысяч до 940 тысяч, число лицевых счетов юридических лиц увеличилось с 19 тысяч до 79 тысяч. Количество пользователей ЕПП выросло втрое. Время загрузки и парсинга HTML сократилось с 2 секунд до 1 секунды.

    — Какие инновационные подходы были внедрены в проекте?

    — Мы перенесли приложения из виртуальных машин на базе Windows Server  в контейнеры Kubernetes, что позволило проводить одновременное роботизированное тестирование Единого портала потребителей (ЕПП) и Мобильного приложения СГК (МП СГК) в разных версиях браузеров, а также на платформах Android и iOS.

    Ночью из продуктивной среды мы создаем «золотую» копию в тестовой среде, включающую ресурсы Kubernetes и данные хранилищ. При создании разработчиками новой ветки в GIT-репозитории мы быстро клонируем «золотую» копию и создаем среду тестирования с данными для этой ветки. Разработчики могут подключаться и отлаживать микросервисы непосредственно из Visual Studio Code с помощью Bridge to Kubernetes.

    Использование Service mesh позволяет собирать телеметрию о метриках, распределенных трассировках и логах в тестовой среде.

    — Существовали ли аналоги вашего проекта на рынке?

    — Мы встретили только одно аналогичное решение от Мосэнергосбыта, но оно не включает в себя вышеупомянутые инновации. Например, в этом решении нет применения Service mesh. Мы также перешли на Kubernetes раньше большинства других энергетических компаний, и сейчас многие следуют этому пути.

    Можно сказать, что наш проект установил тренд в отрасли.

    — Еще один ваш передовой проект — wi-fi-логгеры — помог автоматизировать сбор данных и улучшить работу компании. Расскажите об этом продукте подробнее.

    — Wi-Fi логгеры представляют собой инновационные смарт-термометры. Они измеряют температуру в многоквартирных домах и передают данные в теплоснабжающую организацию.

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

    Стек технологий, который мы использовали в этом проекте, включает .NET, HTML, CSS, Vue.JS, React Native, Microsoft SQL Server (с планируемым переходом на Postgresql), Microsoft Azure DevOps, IIS и ESP8266 Arduino.

    С этой разработкой мы были первые на отечественном рынке.

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