Strategic Assessment

Cloud & SaaS Migration
Feasibility Plan

A comprehensive technical analysis of migrating InfoAudio’s 58-application radio automation platform from on-premises Windows deployment to a cloud-native SaaS architecture.

58 Applications Analyzed
4 Migration Phases
Hybrid Recommended Model
12–18 mo Target Timeline

1. Executive Summary

InfoAudio is a professional radio automation suite with deep Windows and audio hardware dependencies. A full lift-and-shift to cloud is not viable — the recommended strategy is a Hybrid Cloud model where back-office, scheduling, reporting, and integration services move to the cloud while real-time playout and recording remain on edge nodes at the station.

72%
Cloud-Eligible
42 of 58 applications can run partially or fully in the cloud.
16
Edge-Only Apps
Real-time audio apps with hardware dependencies must stay on-premises.
SaaS
Multi-Tenant Ready
EmpresaId pattern exists across all entities — foundation for tenant isolation.
Key Recommendation Adopt a Hybrid Cloud Architecture with three tiers: Cloud-Native (back-office, APIs, data), Hybrid (services that bridge cloud and station), and Edge (real-time playout and recording). This preserves broadcast reliability while enabling SaaS multi-tenancy, centralized management, and remote voice tracking.

2. Current State Analysis

Understanding the existing technology stack, dependencies, and constraints that shape the migration strategy.

2.1 Technology Stack

LayerTechnologyCloud Impact
Runtime.NET Framework 4.5.2 (majority), 4.7.2 (InfoCue, Integrador)Blocker No Linux support
UIWPF + DevExpress 18.2, WinForms (legacy)Blocker Desktop-only
Audio EngineBASS.NET 2.4.x (ASIO + WASAPI)Blocker Hardware-bound
DatabaseSQL Server + Entity Framework 5 (EDMX/ObjectContext)Moderate Azure SQL compatible
ServicesWindows Services via Topshelf 4.2Moderate Containerizable
IPCNamed Pipes, TCP Sockets, Eneter FrameworkBlocker Local-only (Pipes)
Web ServicesWCF (35+ contracts, BasicHttpBinding)Moderate Convert to REST
ReportsStimulsoft Reports 2016.1Ready Server-side capable
AuthCustom token-based (LoginBusiness)Moderate Needs OAuth2/OIDC
LicensingHardware fingerprint + server validationModerate Needs SaaS licensing
Cloud SDKAzure.Storage.Blobs 12.x (Integrador)Ready Foundation exists

2.2 Critical Dependencies Map

Audio Hardware (BASS.NET)

The following apps directly access audio I/O devices and cannot run in cloud containers:

ApplicationHardware APILatency RequirementCloud Viable?
Player DesktopBASS_Init, ASIO, WASAPI, 44.1 kHz< 20ms (broadcast)No
GravadorBassAsio, BassWasapi, Encoders< 20ms (recording)No
VoiceTrackerBASS_GetDeviceInfos, BASS_RecordGetDeviceInfos< 50ms (monitoring)No
EditorMixagemBASS_StreamCreateFile (decode only)Non-real-timePartial
SoundDevicesBASS_GetDeviceInfos enumerationN/ANo
ICRipCD drive COM interopN/ANo

Inter-Process Communication

MechanismApp PairsCloud ImpactReplacement
Named PipesPlayer ↔ Gravador, Player ↔ MusicMaster, Player ↔ ProcessaTKMBlocks distributiongRPC, Azure Service Bus, SignalR
TCP SocketsBreakMonitor, Satellite, InfoRelay, Shadow, MultiStationNeeds DNSCloud Load Balancer + Service Mesh
Eneter FrameworkEditorMixagem ↔ PlayerNetwork-capableWebSockets / SignalR
WCFAll desktop apps ↔ WCFHost (35+ contracts)HTTP-basedASP.NET Core REST API

Multi-Tenancy Foundation

Good News: EmpresaId Pattern Exists The database schema already includes EmpresaId foreign keys on 40+ entity tables including Evento, ProgramacaoBloco, ListaEvento, Usuario, TabelaGeral, Tema, and all log tables. This row-level tenant isolation is a solid foundation for SaaS multi-tenancy.

3. Application Classification

Each of the 58 applications classified by cloud migration viability into three deployment zones.

3.1 Zone A — Cloud-Native (Full SaaS)

Applications with no hardware dependency, batch/scheduled processing, or pure data management. These can move entirely to Azure/AWS as containers, functions, or web apps.

ApplicationCurrent TypeCloud TargetEffort
ExportaLog ServiceWindows ServiceAzure Function (Timer Trigger)Low
InfoXML ServiceWindows ServiceAzure Function (Blob Trigger)Low
Transcription ServiceWindows Service + WhisperAzure Container Instance + Azure AI SpeechMedium
Integrador ServiceWindows ServiceAzure App Service (Container)Low
MidiaIngest ServiceWindows ServiceAzure Function + Blob StorageMedium
BackupConsole + Task SchedulerAzure Function + Azure BackupLow
AtualizadorConsoleAzure CDN + REST endpointMedium
DataBase.SQL (Migrations)ConsoleAzure DevOps Pipeline + EF MigrationsMedium
ReportEdit / ReportsWinForms + StimulsoftWeb Report Service + Blob templatesMedium
EcadWPFWeb App (Blazor/React)Medium
ClimaWPFAzure Function + WeatherAPILow
RemoteVoiceTracker ServiceWindows ServiceAzure App Service (already cloud-connected)Low
WCF Host (35 contracts)IIS/WCFASP.NET Core REST APIHigh
CreateToolWinFormsAzure DevOps + CLI seed scriptLow
Licenca/ValidadorWinFormsSaaS Subscription API (Stripe/custom)Medium
AutoCatalog (3 apps)Service + Console + ConfigAzure Function + AI taggingMedium
ExportaCatalogoConsoleAzure FunctionLow
MusicMaster.CLIConsoleAzure Function (HTTP Trigger)Low

3.2 Zone B — Hybrid (Cloud + Station Agent)

Applications with split responsibilities: business logic moves to cloud, a lightweight station agent handles local operations and syncs with cloud APIs.

ApplicationCloud ComponentEdge Agent ComponentEffort
MusicMaster Plugin + ServiceSync engine, webhooks, catalog APILocal MusicMaster connector, Named Pipe to PlayerMedium
ProgAuto Plugin + ServiceSchedule management API, import processingFile system watcher, local XML/TXT importMedium
Services.ManagerCloud dashboard (web UI)Station agent with service health reportingMedium
ShadowConfig ServiceCloud config sync, failover orchestrationLocal network monitor, config file writerLow
Integrador.WPFCloud integration dashboardNone (purely cloud UI)Medium
ExportaLog Plugin + WPFCloud log analytics dashboardLog collector agentLow
MidiaIngest.WPFCloud media management portalLocal file uploader agentMedium
Transcription.PluginCloud transcription UI + statusAudio file uploaderLow
InfoXML.PluginCloud import status dashboardLocal file watcherLow
SateliteCloud dispatch orchestrationLocal TCP server/client at stationMedium
InfoRelay + InfoRemoteCloud relay hub (SignalR)Local agent for remote commandsMedium
BreakMonitorCloud monitoring dashboardLocal Player event listenerLow
Backup.ConfigCloud backup schedule managerLocal Task Scheduler agentLow
CentralNegociosCloud business management portalLocal audio catalog syncMedium

3.3 Zone C — Edge-Only (On-Premises)

Applications with hard hardware dependencies, real-time latency requirements, or OS-level coupling that cannot be abstracted. These remain at the station but gain cloud management and telemetry.

ApplicationBlockerCloud Enhancement
Player DesktopBASS.NET ASIO/WASAPI, <20ms latency, Named Pipes, MutexCloud telemetry, remote config, schedule sync
GravadorBASS.NET ASIO/WASAPI recording, real-time encodingCloud upload of recordings, remote monitoring
VoiceTrackerBASS.NET device access, real-time waveformCloud schedule pull, completed track upload
EditorMixagemBASS.NET audio decode, WinForms hybrid, Eneter IPCCloud audio cache, saved edits sync
SoundDevicesBASS.NET device enumeration, spawned by PlayerDevice inventory reporting to cloud
ProtecaoMAudioAudio monitoring hardwareAlert forwarding to cloud
ProcessaTKMNamed Pipe to Player, Mutex singletonCloud tracking of processed files
ICRipCD drive COM interopUpload ripped audio to cloud catalog
Configurador.MesaAudio mixing hardware configConfig backup to cloud
SplashDesktop UI bootstrapN/A
AcessoriosWPFPlayer UI module (tightly coupled)N/A (evolves with Player)
IA9ToolsLegacy DB migration toolN/A (one-time use)
ExtratorTKMLocal file processing, MutexCloud catalog sync
InstaladorIIS/SQL Server local setupCloud-guided installer (download + config)
MusicMaster.AgregadorPorCodigoLocal DB toolN/A
BusyLocal status utilityN/A

3.4 Summary Distribution

Zone A — Cloud-Native
20
applications (34%)
Zone B — Hybrid
22
applications (38%)
Zone C — Edge-Only
16
applications (28%)

4. Target Architecture

The proposed Hybrid Cloud architecture with three deployment tiers connected by a central API gateway and event bus.

☁ Cloud Tier (Azure / AWS)
API Gateway (ASP.NET Core) Auth Service (Azure AD B2C) Azure SQL Database
Schedule API Catalog API Report Service Transcription (AI Speech)
Azure Functions Blob Storage (Audio) Service Bus SignalR Hub
↓ ↑ HTTPS / WebSocket / Service Bus
⚙ Hybrid Tier (Station Agent)
Station Agent (.NET Worker) MusicMaster Connector ProgAuto File Watcher Media Uploader
Config Sync Health Monitor Log Collector Satellite Bridge
↓ ↑ Named Pipes / TCP / Shared DB
🎙 Edge Tier (On-Air Station)
Player Desktop (BASS.NET) Gravador (ASIO/WASAPI) VoiceTracker EditorMixagem
vMix/TriCaster/NDI SoundDevices VLC NDI Output Local SQL Cache

4.1 Key Architectural Decisions

Database Strategy

  • Primary: Azure SQL Database (managed) with EmpresaId-based row-level security
  • Edge cache: SQL Server Express at each station for offline resilience
  • Sync: Bidirectional via Station Agent (schedule down, logs/playout up)
  • 154 T-SQL migrations remain compatible with Azure SQL

Authentication & Tenancy

  • Identity: Azure AD B2C replaces custom LoginBusiness
  • Tokens: JWT with EmpresaId claim for tenant isolation
  • Permissions: Existing 50+ AcessoPermissao enums mapped to Azure AD roles
  • Licensing: SaaS subscription replaces hardware fingerprint

Audio Storage

  • Cloud master: Azure Blob Storage for all audio catalog
  • Edge cache: Local file system with smart pre-fetch from cloud
  • Upload: Station Agent uploads recordings, rips, and voice tracks
  • CDN: Azure CDN for multi-station audio distribution

IPC Modernization

  • Named Pipes → Keep locally between Player and edge apps
  • WCF → ASP.NET Core REST API (cloud-hosted)
  • Cloud events → Azure Service Bus for async messaging
  • Real-time → SignalR for live dashboards and notifications

5. Migration Plan

A four-phase approach that delivers incremental value while managing risk. Each phase is independently deployable.

Phase 1 — Cloud Foundation
Months 1–3
Goal: Establish cloud infrastructure and migrate stateless back-end services.

Deliverables:
  • Provision Azure SQL Database (clone of on-prem schema, EmpresaId RLS policies)
  • Deploy API Gateway (ASP.NET Core) with JWT auth — first 5 WCF contracts converted to REST
  • Migrate ExportaLog, InfoXML, Clima to Azure Functions
  • Azure Key Vault for all API keys (Spotify, WeatherAPI, Cloud endpoints)
  • Azure Blob Storage for audio catalog (initial bulk upload)
  • CI/CD pipeline (Azure DevOps) for cloud services

Success criteria: Cloud API serves schedule and catalog data; 3 services run as Functions.
Phase 2 — Station Agent & Sync
Months 4–7
Goal: Build the Station Agent that bridges cloud and on-premises systems.

Deliverables:
  • Station Agent (.NET Worker Service) — replaces 8+ individual Windows Services
  • Bidirectional data sync: schedules down from cloud, as-run logs up to cloud
  • Audio file sync with Azure Blob (smart pre-fetch, background upload)
  • MusicMaster connector module (webhook receiver + Named Pipe to Player)
  • ProgAuto file watcher module (XML/TXT/CML import → cloud Schedule API)
  • Health monitoring & telemetry (Application Insights)
  • Migrate Transcription to Azure AI Speech Service
  • Migrate MidiaIngest, AutoCatalog to cloud Functions

Success criteria: Station operates with cloud-managed schedules; all audio synced to Blob Storage.
Phase 3 — Web Portal & SaaS
Months 8–12
Goal: Launch the SaaS web portal replacing WPF back-office apps.

Deliverables:
  • Web Portal (Blazor or React) replacing WPF for: Schedule, Catalog, Users, Reports, ECAD, Config
  • Azure AD B2C integration (replacing custom LoginBusiness)
  • SaaS licensing system (subscription-based, replaces hardware fingerprint)
  • Cloud Report Service (Stimulsoft server-side rendering, PDF/Excel export)
  • Cloud Services Manager dashboard (monitor all station agents)
  • Remote VoiceTracker web interface (already partially cloud-connected)
  • Remaining WCF contracts converted to REST (full 35 contract coverage)
  • Multi-tenant onboarding flow (self-service station registration)

Success criteria: New stations onboard entirely through web portal; no desktop needed for back-office.
Phase 4 — Edge Optimization
Months 13–18
Goal: Minimize the on-premises footprint and maximize cloud value.

Deliverables:
  • Thin Player: Refactor Player Desktop to pull schedule/config from cloud API (eliminate local DB dependency)
  • Cloud-driven playout: schedules, rotators, and content managed entirely from web portal
  • Edge-to-cloud live telemetry (real-time playout status via SignalR)
  • Disaster recovery: station failover using cloud schedule + local audio cache
  • Mobile companion app (read-only: schedule view, on-air status, alerts)
  • AI features: auto-categorization, content recommendations, audience analytics

Success criteria: Station requires only Player + Gravador + Station Agent on-premises; everything else is cloud.

6. App-by-App Migration Detail

Cloud readiness score and migration path for every application category.

6.1 Windows Services (11 services)

ServiceCloud ReadinessTargetPhaseKey Changes
ExportaLog
Azure Function (Timer) Phase 1 Extract job logic, Azure Storage for state
InfoXML
Azure Function (Blob) Phase 1 File trigger from Blob, no local watcher
Integrador
App Service Container Phase 1 Already uses Azure.Storage.Blobs SDK
RemoteVoiceTracker
App Service Phase 1 Already cloud-connected with REST APIs
Transcription
Container + Azure AI Speech Phase 2 Replace local Whisper with Azure AI, upload audio to Blob
MidiaIngest
Function + Station Agent module Phase 2 Local file watcher in agent, processing in cloud
MusicMaster
Station Agent module Phase 2 HTTP listeners stay local, sync via Service Bus
ProgAuto
Station Agent module Phase 2 File watcher local, import logic in cloud API
ShadowConfig
Station Agent module Phase 2 Cloud config push replaces network polling
AutoCatalog
Azure Function + AI tagging Phase 2 Audio analysis via Azure AI, metadata to cloud DB

6.2 Desktop Applications (Back-Office)

ApplicationCurrent UISaaS ReplacementPhase
Schedule/ProgrammingWPF (AcessoriosWPF)Web Portal — Schedule ModulePhase 3
Music CatalogWPF (AcessoriosWPF)Web Portal — Catalog ModulePhase 3
User ManagementWPF (AcessoriosWPF)Azure AD B2C + Web PortalPhase 3
Reports (13 types)WPF + StimulsoftWeb Report Service + PDF exportPhase 3
ECAD ManagementWPF + DevExpressWeb Portal — Compliance ModulePhase 3
Services ManagerWPF + MVVM LightCloud Dashboard (real-time)Phase 3
Backup ConfigWinFormsCloud Backup ManagerPhase 3
InfoViewerWPFWeb Portal modulePhase 3

6.3 Real-Time / Edge Applications

These applications remain on-premises but gain cloud connectivity Player Desktop, Gravador, VoiceTracker, and EditorMixagem cannot move to cloud due to audio hardware requirements (<20ms latency) and BASS.NET ASIO/WASAPI dependencies. The strategy is to make them “cloud-aware” by adding REST API clients for schedule/catalog sync.
ApplicationCloud EnhancementImplementation
Player DesktopPull schedule from cloud API, push as-run log, receive remote commands via SignalRAdd HttpClient to pull schedule; keep Named Pipes for local IPC
GravadorUpload recordings to Blob Storage automatically after session endsBackground upload thread in Station Agent
VoiceTrackerDownload schedule blocks from cloud, upload completed voice tracksAlready partially implemented (RemoteVoiceTracker)
EditorMixagemDownload audio from Blob (replace WCF), save edits to cloud APIReplace WCF client with REST client

7. Risks & Mitigations

Critical risks identified during the code analysis and their recommended mitigations.

RiskSeverityProbabilityMitigation
.NET Framework 4.5.2 incompatibility
Cloud services target .NET 8+; desktop stays on .NET Framework
High Certain New cloud services in .NET 8. Shared business logic via .NET Standard 2.0 bridge library. Desktop apps remain on .NET Framework until WPF sunset.
154 T-SQL migrations with SQL Server-specific syntax
sp_rename, sp_executesql, IDENTITY, sys.database_files
Medium Low Azure SQL Database supports T-SQL natively. No migration rewrite needed. Use Azure SQL for cloud DB.
Audio latency over network
Cloud round-trip 50–200ms vs broadcast requirement <20ms
High Certain Audio playout stays on-premises. Cloud manages metadata only. Local SQL cache ensures schedule availability during outages.
Named Pipes cannot cross machine boundaries Medium Certain Keep Named Pipes for local Player ↔ Gravador. Cloud communication via HTTPS/Service Bus. Station Agent bridges the two worlds.
Internet dependency for on-air operation High Medium Station Agent maintains local SQL cache and audio cache. Player operates fully offline with cached schedule. Sync resumes when connectivity returns.
Hardcoded API keys and custom encryption
Spotify ClientID/Secret, WeatherAPI key in source code
Medium Certain Phase 1 priority: move all secrets to Azure Key Vault. Implement managed identities for Azure service-to-service auth.
WCF service migration scope
35+ contracts, BasicHttpBinding, 2GB max message size
Medium Medium Incremental migration: convert 5 high-traffic contracts per phase. Run WCF and REST in parallel during transition. Use API versioning.
Stimulsoft licensing cost for server-side Low Medium Evaluate Stimulsoft Server license vs open-source alternatives (QuestPDF, RDLC). Phase 3 decision point.

8. Estimated Cost Model

Indicative cloud infrastructure costs per station per month (Azure pricing, US East region).

ResourceAzure ServiceTierEst. Monthly Cost
DatabaseAzure SQL DatabaseStandard S1 (20 DTU)$30
Audio StorageBlob Storage (Hot)100 GB per station$2
API GatewayApp ServiceB1 (shared across stations)$14 / N stations
FunctionsAzure FunctionsConsumption plan$1–5
Service BusAzure Service BusBasic tier$0.05
SignalRAzure SignalR ServiceFree tier (20 connections)$0
Key VaultAzure Key VaultStandard$0.03
MonitoringApplication Insights5 GB/month$0
AuthAzure AD B2C50K auth/month free$0
Estimated Total per Station $35–50/mo
Economy of Scale Shared resources (API Gateway, Functions, Service Bus) are amortized across stations. At 50 stations, the per-station cloud cost drops to approximately $25–35/month. This compares favorably to on-premises server maintenance, licensing, and IT support costs.

9. Implementation Roadmap

A visual summary of the four-phase migration across 18 months.

Phase Timeline Key Milestones Apps Migrated
Phase 1
Cloud Foundation
Months 1–3 Azure SQL provisioned, API Gateway live, Key Vault configured, ExportaLog + InfoXML + Integrador as Azure Functions, Blob Storage for audio catalog, CI/CD pipeline 6 apps
Phase 2
Station Agent
Months 4–7 Station Agent v1.0, bidirectional sync, MusicMaster + ProgAuto modules, Transcription via Azure AI, MidiaIngest + AutoCatalog in cloud, Health monitoring dashboard 12 apps
Phase 3
Web Portal
Months 8–12 SaaS web portal (Schedule, Catalog, Users, Reports, ECAD, Config), Azure AD B2C auth, SaaS licensing, all 35 WCF → REST, self-service station onboarding 16 apps
Phase 4
Edge Optimization
Months 13–18 Thin Player (cloud-driven schedule), offline resilience, live telemetry via SignalR, disaster recovery, mobile companion, AI features 8 apps
End State After Phase 4, each station requires only 3 on-premises components: Player Desktop, Gravador, and Station Agent. All back-office, scheduling, catalog management, reporting, integrations, and monitoring run in the cloud as a multi-tenant SaaS platform. New stations can be onboarded in minutes via the web portal.