Як рефакторинг відкрив шлях до хмарної гнучкості в енергетиці
Головна
Кейси
Як рефакторинг відкрив шлях до хмарної гнучкості в енергетиці

Індустрія:

Енергетика та природні ресурси

Локація

ЄВРОПА

Платформа

.NET Core

Кооперація:

1+ р.

Як рефакторинг відкрив шлях до хмарної гнучкості в енергетиці

Про клієнта

Європейська компанія, яка спеціалізується на рішеннях для енергоефективності для малого та середнього бізнесу, знову звернулася до нас. Їхні послуги включають моніторинг на базі IoT, оптимізацію споживання енергії та автоматизацію промислових процесів. Раніше ми вже успішно співпрацювали: наша команда створила хмарні пайплайни для Azure IoT Hub, які допомогли оптимізувати енергомоніторинг і підвищити ефективність роботи.

Бізнес-проблема: потреба в безперешкодному переході між хмарними провайдерами

Компанія надає інструменти для вимірювання, моніторингу, контролю та покращення енергоспоживання в різних типах будівель. Спочатку програмне забезпечення було розгорнуте на локальному сервері та у хмарі Microsoft Azure. Згодом технічний керівник вирішив зробити код легко переносимим між хмарними платформами з можливістю інтеграції з нативними сервісами провайдерів.

Причина — обмеження в тарифах та потреба домовлятися про кращі умови з різними постачальниками хмарних послуг.

Клієнт перейшов з Azure на AWS, щоб задовольнити короткострокові вимоги щодо масштабування та вартості. Пізніше відбулося повернення з on-premises до Azure, аби уніфікувати сервіси, полегшити інтеграцію з Power BI та Microsoft-інструментами, і підготуватися до cloud-native ETL. Незважаючи на міграції, основні застосунки залишалися в контейнерах на виділеному сервері.

Як ми це вирішили: рефакторинг коду для модернізованої та гнучкої архітектури

Для створення сучасного бекенду з мікросервісною архітектурою ми реалізували чітке розділення обов’язків (SoC), розділивши логіку системи на робочі модулі (workers) та інфраструктурні компоненти. Це дозволило уникнути повного переписування коду.

Архітектурний рефакторинг

Ми почали з від'єднання компонентів від специфічних налаштувань Azure. Архітектура була побудована навколо модульних сервісів на базі .NET Core — продуктивної та кросплатформної технології.

  • Workers містять бізнес-логіку, ізолюючи її від хмарної інфраструктури.

  • Інфраструктурні компоненти відповідають за інтеграцію з хмарою, зберігання файлів, планування задач тощо.

866

Можна застосовувати налаштування керування на різних рівнях. Обраний рівень визначає, наскільки широко діятимуть ці налаштування. Нижчі рівні успадковують налаштування від вищих.

Наприклад: якщо ви застосуєте політику до підписки, вона охопить усі групи ресурсів і ресурси всередині неї. Якщо ж ви застосуєте її до групи ресурсів, вона вплине лише на цю групу та все, що в ній міститься.

Контейнеризація

Кожен компонент був упакований у Docker-контейнер для ізоляції середовища й забезпечення легкої міграції між хмарами. Це дозволило запускати програму без змін у логіці.

Мінімальні зміни в коді

Завдяки новій архітектурі, для міграції потрібно було оновити лише один клас, що відповідає за інфраструктурну абстракцію. Не потрібно було змінювати тисячі рядків коду.

822 (1)

Бізнес-ефект: зниження витрат при зміні хмарних провайдерів

  • Значне скорочення витрат завдяки мінімізації переробки та автоматизації

  • Готовність до масштабування на нові ринки через мультихмарну інфраструктуру

  • Незалежність від конкретного провайдера

  • Зниження витрат на підтримку

  • Швидше впровадження оновлень і функцій без зупинки системи

  • Покращення стабільності та надійності сервісу

  • Уникнення vendor lock-in

Міграція в іншу хмару тепер займає в 4 рази менше часу. Це призводить до економії десятків тисяч доларів на робочих годинах, простої системи та технічній підтримці при перенесенні інфраструктури між Microsoft Azure, AWS або локальними (on-prem) середовищами.

Як показала наша практика, якщо типовий процес міграції займає близько 12 тижнів і коштує приблизно 60 000 доларів, то після рефакторингу для міграції в хмару це може коштувати лише 15 000 доларів або навіть менше завдяки спрощеній архітектурі та автоматизованим процесам.

Хмарна архітектура міграції

Ми допомагаємо клієнтам з телекомунікацій, фінансів, державного сектору та енергетики безболісно переходити між провайдерами. Нижче — відповідність сервісів AWS та Azure:

  • AWS Elastic Beanstalk → Azure App Service

Azure App Service пропонує повністю керовану платформу для хостингу, розгортання та масштабування веб-додатків. Простий у використанні та орієнтований на швидкість.

  • Amazon API Gateway → Azure API Management

Ці сервіси дозволяють публікувати API для внутрішніх команд або зовнішніх клієнтів із повним контролем, безпекою та аналітикою.

  • Amazon CloudFront → Azure Front Door

Доставляйте контент швидше і безпечніше з Azure Front Door — глобальною CDN з високою продуктивністю та вбудованим захистом від загроз.

  • AWS Global Accelerator → Azure Front Door

Використовуйте Azure Front Door для уніфікації розподілених мікросервісів під одним глобальним додатком із розумним маршрутизуванням, автоскейлінгом і регіональним фейловером.

  • AWS Global Accelerator → Azure cross-regional load balancer

Отримайте високу доступність зі статичною глобальною IP-адресою, що розподіляє трафік між регіонами Azure для резервування та продуктивності.

  • Amazon Lightsail / AWS Amplify → Azure App Service

Azure App Service охоплює все — від коду до хмари — ідеально підходить для швидкого розгортання, масштабування та спрощеного керування.

  • AWS App Runner → Azure Web App for Containers

Легко запускає контейнеризовані додатки в Azure за допомогою повністю керованого сервісу для середовищ Windows та Linux.

Ідентифікація та оцінка модулів

Перш за все, у NetLS ми ідентифікуємо всі предметні модулі системи. Ми ретельно аналізуємо компоненти, які можуть бути вилучені, оновлені або мігрувати в нове середовище. На цьому етапі оцінюємо, які модулі є критичними, які — опціональними, а які — залежними від хмарної платформи.

Міграція баз даних може стати особливо складною, особливо при переході між різними типами СУБД. Якщо задача або модуль є хмаронезалежними (cloud-agnostic), міграція проходить простіше. Водночас клієнт повинен оцінити, чи варта міграція витрачених ресурсів і чи приносить вона реальну бізнес-цінність.

У NetLS ми зіставляємо кожен сервіс AWS з його еквівалентом у Azure та розглядаємо кожен як окремий архітектурний компонент. Це забезпечує чітке розмежування зон відповідальності, покращений контроль доступу та спрощене масштабоване управління.

Ось як виглядає відповідність:

  • AWS IAM Identity Center / IAM → Microsoft Entra ID

Централізоване управління ідентифікацією та доступом. Створюйте та керуйте користувачами і групами, призначайте ролі та контролюйте доступ до сервісів і ресурсів Azure з підвищеним рівнем безпеки та відповідності нормативам.

  • AWS IAM → Azure Role-Based Access Control (RBAC)

Визначайте, хто і до чого має доступ і які дії може виконувати. Azure RBAC дозволяє призначати дозволи на деталізованому рівні в межах підписок Azure, груп ресурсів і окремих ресурсів.

  • AWS Organizations → Azure Management Groups

Керуйте політиками і доступом у межах кількох підписок Azure. Azure Management Groups відображає концепцію AWS Organizations і забезпечує єдину структуру для масштабного застосування ролей і політик.

  • MFA для IAM → Microsoft Entra ID з MFA

Захищайте входи користувачів за допомогою багатофакторної автентифікації. Entra ID інтегрує MFA безпосередньо у процес доступу, допомагаючи захистити чутливі ресурси при мінімальному навантаженні для користувача.

  • AWS Directory Service → Microsoft Entra Domain Services

Повністю керований доменний сервіс, сумісний із Active Directory. Підтримує приєднання до домену, групові політики, LDAP та Kerberos/NTLM — ідеально підходить для спадкових додатків і гібридних сценаріїв.

  • Amazon Cognito → Microsoft Identity Platform / Entra External ID

Дозволяє керувати зовнішніми користувачами та підтримувати сценарії “bring your own identity”. Entra External ID підтримує вхід через Google, Facebook (Meta), облікові записи Microsoft та інші — ідеально для клієнтоорієнтованих додатків.

Кожен із шести сервісів автентифікації та авторизації має власну архітектурну особливість. Це дозволяє нам ізолювати зони відповідальності, забезпечувати масштабованість і узгоджувати межі безпеки з нативними можливостями Azure.

До кінця цього етапу ми отримуємо чітке уявлення про те, що залишається, що переноситься, а що потребує переробки, з детальним документуванням ризиків, пріоритетів і очікуваної цінності для кожного модуля.

Автентифікація та авторизація

AWS Azure
IAM / Identity Center Microsoft Entra ID
IAM Azure RBAC
Organizations Azure Management Groups
MFA Entra ID + MFA
Directory Service Entra Domain Services
Cognito Microsoft Identity Platform

Інтернет речей (IoT)

AWS Azure
IoT Core IoT Hub
IoT Greengrass IoT Edge
Firehose / Kinesis Event Hubs + Stream Analytics
TwinMaker Digital Twins
Device Management IoT Central
ExpressLink Azure Sphere

Абстракція інфраструктурних модулів

Ми вводимо інтерфейси або обгортки для сервісів (напр. AWS S3 vs. Azure Blob). Бізнес-логіка взаємодіє лише з інтерфейсами — не напряму з хмарною інфраструктурою.

Абстракція на рівні додатків

  • Оркестратори підтримують різні хмари.

  • Конфігурації дозволяють переключатися між середовищами без зміни логіки.

  • Перед запуском усе тестується (Gherkin, Cypress, Jest).

Планування міграції та стратегія відкату

Маємо чіткий план: створення ресурсів, перенесення даних, таймлайн, точки контролю. 

Для успішної міграції та подальшого управління ми зіставляємо ключові інструменти AWS із їхніми відповідниками в Azure:

AWS Azure
Organizations Management Groups
Well-Architected Tool Well-Architected Review
Trusted Advisor Azure Advisor
Billing Cost Management
Systems Manager Azure Monitor
Config Azure Policy
CloudTrail Activity Log

Копіювання даних та підтримка двох версій

  • Миттєвий перехід — коли всі дані вже перенесені.

  • Паралельний режим — обидва середовища працюють одночасно з синхронізацією.

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

Контейнеризація

Всі сервіси контейнеризуються через Docker та запускаються в Kubernetes-кластерах.

DevOps в дії

DevOps налаштовує ресурси, проводить тестування, запускає застосунки та виконує відкат. Нижче наведено комплексний набір інструментів, що підтримує повний цикл DevOps та потреби в моніторингу.

AWS Azure
CloudWatch + X-Ray Azure Monitor + Application Insights
CodeDeploy, CodePipeline Azure DevOps, GitHub Actions
AWS CLI / SDKs Azure CLI, SDKs
CloudShell Cloud Shell
Systems Manager Azure Automation
CloudFormation, CDK Bicep, Resource Manager, Dev CLI

Безпека

У NetLS ми гарантуємо збереження вашої безпеки під час міграції, зіставляючи ключові інструменти безпеки AWS з їхніми аналогами в Azure:

AWS Azure
Inspector Defender for Cloud
Certificate Manager Key Vault Certificates
GuardDuty Microsoft Sentinel
Artifact Service Trust Portal
Shield Azure DDoS Protection

NetLS — досвід міграції застосунків у хмару

Маючи багаторічний практичний досвід у сферах енергетики, охорони здоров’я, нерухомості, телекомунікацій, фінансів, великого електронного комерційного бізнесу та державного сектору, ми допомагаємо компаніям мігрувати їхні додатки до хмари. Наші клієнти вже отримали вигоду від наших послуг, які гарантують:

  • Технологічний консалтинг, адаптований до вашої інфраструктури та бізнес-цілей

  • Масштабовану та стабільну архітектуру системи

  • Швидший запуск нових функцій

  • Незалежність від будь-якого окремого провайдера

  • Відповідність вимогам безпеки та регуляторним стандартам

  • Ефективність витрат, адже ви сплачуєте лише за використані ресурси, мінімізуючи витрати на обладнання та енергію

  • Хмара гарантує високу доступність через надійну та безперервну роботу ваших додатків

  • Легке налаштування ресурсів для задоволення зростаючих бізнес-потреб

  • Провайдери хмарних послуг забезпечують розширений захист даних

  • Прискорене розгортання та оновлення з покращеною продуктивністю

  • Вищу гнучкість і інноваційність, що дозволяє швидко впроваджувати нові технології

Готові почати?

Yuliia Suprunenko

Вас зацікавив наш кейс стаді?

Команда NetLS може розробити індивідуальне інноваційне рішення на основі нашого досвіду спеціально для вашого бізнесу. Заповнюйте форму і ми повернемось до вас з унікальною пропозицією!

I consent to receiving news, updates, and special offers via email

By sending a message you agree with your information being stored by us in relation to dealing with your enquiry. Please have a look at our Privacy Policy

Related articles

Кооперація: 2+ р.

Як автоматизоване тестування допомогло телеком-клієнту прискорити релізи та підвищити якість продукту

У цьому кейсі ви дізнаєтесь, як ми допомогли нашому постійному клієнту з Європи (NDA), який розробляє BSS-рішення (Business Support System) для провайдерів телеком-послуг, модернізувати тестування ERP систему. Ми автоматизували складні UI та мобільні сценарії за допомогою CI/CD фреймворку на базі Reqnroll, BDD і Azure DevOps.

Кооперація: 1+ р.

Архітектура обробки IoT-даних для енергетичної компанії на Azure Cloud

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