— Что представляет собой Единый портал потребителей СГК и почему возникла необходимость в его разработке?
— Единый портал потребителей (ЕПП) с технической точки зрения это микросервисное веб-приложение, построенное на базе .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 человек. Моя ведущая роль на проекте заключалась в обеспечении успешного развития и эксплуатации приложения, а также эффективной координации команды для достижения поставленных целей.
— Какой стек технологий вы использовали?
— В рамках проекта мы использовали следующий стек технологий:
Этого хватило, чтобы эффективно реализовать проект и обеспечить его успешное функционирование.
— Возникали какие-то сложности на проекте, как их удавалось решить?
— Было несколько моментов, с которыми мы в итоге справились. Когда наш 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.
С этой разработкой мы были первые на отечественном рынке.
Я доволен результатами обоих проектов. Мы значительно улучшили клиентский опыт, улучшили репутацию компании, а упоминание таких передовых проектов в резюме наших разработчиков здорово повысило их привлекательность на рынке труда. Принимать дополнительную ответственность мне не всегда было просто, но я рад, что вникал во все процессы и хорошо развил лидерские качества. Такой опыт дает уверенную базу для дальнейших разработок.