Про клієнта
Європейська компанія, яка спеціалізується на рішеннях для енергоефективності для малого та середнього бізнесу, знову звернулася до нас. Їхні послуги включають моніторинг на базі IoT, оптимізацію споживання енергії та автоматизацію промислових процесів. Раніше ми вже успішно співпрацювали: наша команда створила хмарні пайплайни для Azure IoT Hub, які допомогли оптимізувати енергомоніторинг і підвищити ефективність роботи.
Бізнес-проблема: потреба в безперешкодному переході між хмарними провайдерами
Компанія надає інструменти для вимірювання, моніторингу, контролю та покращення енергоспоживання в різних типах будівель. Спочатку програмне забезпечення було розгорнуте на локальному сервері та у хмарі Microsoft Azure. Згодом технічний керівник вирішив зробити код легко переносимим між хмарними платформами з можливістю інтеграції з нативними сервісами провайдерів.
Причина — обмеження в тарифах та потреба домовлятися про кращі умови з різними постачальниками хмарних послуг.
Клієнт перейшов з Azure на AWS, щоб задовольнити короткострокові вимоги щодо масштабування та вартості. Пізніше відбулося повернення з on-premises до Azure, аби уніфікувати сервіси, полегшити інтеграцію з Power BI та Microsoft-інструментами, і підготуватися до cloud-native ETL. Незважаючи на міграції, основні застосунки залишалися в контейнерах на виділеному сервері.
Як ми це вирішили: рефакторинг коду для модернізованої та гнучкої архітектури
Для створення сучасного бекенду з мікросервісною архітектурою ми реалізували чітке розділення обов’язків (SoC), розділивши логіку системи на робочі модулі (workers) та інфраструктурні компоненти. Це дозволило уникнути повного переписування коду.
Архітектурний рефакторинг
Ми почали з від'єднання компонентів від специфічних налаштувань Azure. Архітектура була побудована навколо модульних сервісів на базі .NET Core — продуктивної та кросплатформної технології.
-
Workers містять бізнес-логіку, ізолюючи її від хмарної інфраструктури.
-
Інфраструктурні компоненти відповідають за інтеграцію з хмарою, зберігання файлів, планування задач тощо.

Можна застосовувати налаштування керування на різних рівнях. Обраний рівень визначає, наскільки широко діятимуть ці налаштування. Нижчі рівні успадковують налаштування від вищих.
Наприклад: якщо ви застосуєте політику до підписки, вона охопить усі групи ресурсів і ресурси всередині неї. Якщо ж ви застосуєте її до групи ресурсів, вона вплине лише на цю групу та все, що в ній міститься.
Контейнеризація
Кожен компонент був упакований у Docker-контейнер для ізоляції середовища й забезпечення легкої міграції між хмарами. Це дозволило запускати програму без змін у логіці.
Мінімальні зміни в коді
Завдяки новій архітектурі, для міграції потрібно було оновити лише один клас, що відповідає за інфраструктурну абстракцію. Не потрібно було змінювати тисячі рядків коду.
.jpg)
Бізнес-ефект: зниження витрат при зміні хмарних провайдерів
-
Значне скорочення витрат завдяки мінімізації переробки та автоматизації
-
Готовність до масштабування на нові ринки через мультихмарну інфраструктуру
-
Незалежність від конкретного провайдера
-
Зниження витрат на підтримку
-
Швидше впровадження оновлень і функцій без зупинки системи
-
Покращення стабільності та надійності сервісу
-
Уникнення 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 |
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 в дії
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 |
Безпека
AWS |
Azure |
Inspector |
Defender for Cloud |
Certificate Manager |
Key Vault Certificates |
GuardDuty |
Microsoft Sentinel |
Artifact |
Service Trust Portal |
Shield |
Azure DDoS Protection |
NetLS — досвід міграції застосунків у хмару
Маючи багаторічний практичний досвід у сферах енергетики, охорони здоров’я, нерухомості, телекомунікацій, фінансів, великого електронного комерційного бізнесу та державного сектору, ми допомагаємо компаніям мігрувати їхні додатки до хмари. Наші клієнти вже отримали вигоду від наших послуг, які гарантують:
-
Технологічний консалтинг, адаптований до вашої інфраструктури та бізнес-цілей
-
Масштабовану та стабільну архітектуру системи
-
Швидший запуск нових функцій
-
Незалежність від будь-якого окремого провайдера
-
Відповідність вимогам безпеки та регуляторним стандартам
-
Ефективність витрат, адже ви сплачуєте лише за використані ресурси, мінімізуючи витрати на обладнання та енергію
-
Хмара гарантує високу доступність через надійну та безперервну роботу ваших додатків
-
Легке налаштування ресурсів для задоволення зростаючих бізнес-потреб
-
Провайдери хмарних послуг забезпечують розширений захист даних
-
Прискорене розгортання та оновлення з покращеною продуктивністю
-
Вищу гнучкість і інноваційність, що дозволяє швидко впроваджувати нові технології
Готові почати?