Система мониторинга энергопотребления предприятия
- Analytics
- Backend
- Golang
- Gin
- Echo
- Fiber
- gRPC
- Protocol Buffers
- Cobra
- Viper
- Logrus
- Zap
- GORM
- SQLx
- MongoDB Go Driver
- AWS SDK for Go
- Testify
- Ginkgo
- Docker
- Python
Индустрия
Энергетика
У вас есть задача?
Давайте обсудим?
О клиенте
Компания более 10 лет развивает систему мониторинга промышленного оборудования, программу для планирования производства и платформу для контроля работы персонала, также оказывает услуги консалтинга и выполняет технологическое присоединение устройств к электрическим сетям сетевых организаций. У бизнеса свыше 1500 клиентов из России и стран СНГ.
О проекте
В соответствии с Постановлением Правительства РФ, предприятия, осуществляющие регулируемые виды деятельности, должны выполнять мероприятия по снижению энергозатрат. Клиент хотел разработать ПО, которое сможет вести мониторинг электрических параметров на различных уровнях — от высоковольтных подстанций до отдельных станков, и поможет компаниям повысить энергоэффективность.
Описание задачи
Команде RedLab предстояло создать ИТ-продукт с нуля, способный анализировать режим работы электрооборудования, определять приборы, которые можно отключить в часы замера мощности, и рассчитывать экономию от уменьшения платежа. Из основных задач выделили следующие:
- Спроектировать архитектуру: организация быстрого развертывания и обслуживания ИТ-инфраструктуры.
- Обеспечить высокую генерацию данных: сбор информации с 1000 различных аппаратов, которые снимают параметры электроэнергии.
- Добиться высокой производительности: быстрое выполнение вычислений, бесперебойность работы программы.
- Провести интеграцию программной и аппаратных частей в условиях высокого уровня помех для мобильной связи.
Реализация
С целью обеспечения надежной и функциональной системы Go-разработчики RedLab провели следующие работы:
- Разработали серверную часть на языке программирования Go, что позволило легко управлять массивами и структурами, использовать параллелизм через горутины для многопоточных задач.
- Предложили протокол обмена серверными данными с оборудованием полевого уровня. Решение является расширяемый, с механизмами контроля целостности данных.
- Спроектировали микросервисную архитектуру. В Go очень просто разбить монолит на модули, а каждый модуль при необходимости легко масштабировать и резервировать.
- Написали брокер, оптимизированный под массовый прием данных и короткие сообщения, благодаря чему ПО обрабатывает большие объемы информации, поступающих от множества источников.
- Сделали настройку, которая позволяет применить разный формат сохранения: человекочитаемый, но масштабируемый и экономный, или машиночитаемый, но компактный.
- Написали гейт для передачи данных из брокера на Golang для языка программирования Python с целью дальнейшего анализа поступающих данных.
- Создали веб-сервер оператора, который дает возможность просмотреть состояние всех подключенных полевых устройств: число обрывов связи, время доступа, детектор зависания.
- Помогли арендовать виртуальные серверы в облаке МТС. Теперь переезд с дата-центр на другой дата-центр не составляет сложностей.
Результат
Переходите по ссылке, чтобы узнать об аутсорсинге Go-разработчиков больше.