← Rétro-ingénierie BizTalk

STM ICU EAI — Migration de BizTalk vers Azure APIM

Sommaire executif

Ce qui a ete analyse

Le code source BizTalk de la plateforme EAI ICU (Unite de communications integrees) de la STM a ete retro-ingenierie a partir des sources : PortBindingsMaster.xml ainsi que tous les fichiers d'orchestration .odx repartis dans 11 solutions BizTalk regroupees en trois repertoires (Envoi, Recuperation, racine EAI). Aucun acces a un environnement en execution n'a ete necessaire — l'analyse a ete effectuee entierement a partir d'artefacts de code statiques.

Envergure

Recommandation

Migrer la plateforme EAI ICU de la STM vers Azure selon une approche « strangler-fig » en trois phases, en remplacant les orchestrations BizTalk par Azure Logic Apps Standard et Azure Durable Functions, les emplacements de reception WCF-WebHttp par Azure API Management, le BizTalk MessageBox par Azure Service Bus, et le SSO BizTalk par Azure Key Vault et l'identite managee. Prioriser les canaux SMS et courriel en Phase 2 en tant que canaux a plus haut volume ; reporter la solution Telus Voice a la Phase 3 en raison de la dependance a IBM Informix DB, qui ne dispose d'aucun connecteur Azure natif et necessite un adaptateur personnalise ou un service intermediaire. Les quatre solutions de recuperation CBR (AppelVocalRecup, CourrielRecup, TextoRecup, MessageEntrantRecup) sont des stubs de routage sans logique qui peuvent etre decommissionnes et remplaces par des abonnements a des rubriques Service Bus des le premier sprint, creant des gains rapides et validant l'architecture cible avant d'aborder les flux complexes.


Paysage d'integration

Carte des connexions systeme

                         +---------------------------------+
Appelants                |     Plateforme EAI ICU STM       |
externes / internes      |    (hub BizTalk MessageBox)      |
     |                   +----------------+----------------+
     | POST /icumediator                  |
     | /messageUsager                     | Achemine vers les solutions de canal
     v                                    |
+----------------+  GLID REST API         |
| ICUMediator    +--------------------> [GLID]
| (Hub API)      |  SQL (Mediator DB) --> [STM ICU Mediator SQL DB]
+-------+--------+
        | Distribue vers :
        +--------------------------------------------------+
        |                     |                |            |
        v                     v                v            v
+--------------+       +---------------+  +--------------+ +--------------+
|  ICUTexto    |       | ICUCourriel   |  | ICUResSociaux| |  ICU.EAI     |
|  (SMS)       |       |  (Courriel)   |  |  (Twitter)   | |  (Voix)      |
+------+-------+       +-------+-------+  +------+-------+ +------+-------+
       |                       |                  |                |
       v                       +----------> [SendGrid API]        v
[VuDu SMS API]                 +----------> [Exchange Online / [Telus RVI API]
[STM ICU SQL DB]               |            MS Graph]          [UCCX Informix DB]
                               +----------> [SMTP interne]     [STM ICU SQL DB]
                               [STM ICU SQL DB]
                               [X Twitter API v2]

Egalement presents :
+-----------------+   +----------------------------+
|  ICUMassif      |   |  ICUTextoExtraction         |
|  (Declencheur   +-->|  (ETL analytique SMS        |
|   en masse)     |   |   quotidien)                |
|  FILE -> fan-out|   |  ICU SQL -> Optimax/PBI DB  |
+-----------------+   +----------------------------+

Stubs de recuperation CBR (archivage fichier seulement — aucune logique) :
  ICUTextoRecup | ICUMessageEntrantRecup | ICUCourrielRecup | ICUAppelVocalRecup

Les 3 integrations les plus critiques

1. STM.ICUMediator.EAI (Hub API central)
Toutes les applications clientes convergent vers ce point d'entree unique. Il valide les listes de distribution via le GLID REST API, cree l'enregistrement du cycle de vie de la communication dans la Mediator SQL DB, et achemine vers chaque canal en aval. Si le Mediator est indisponible, l'ensemble de la plateforme ICU est indisponible. Son patron de correlation EcouterResultatsMessageUsager et l'exigence de livraison ordonnee sur le port SQL du Mediator en font l'element de migration le plus sensible du point de vue architectural.

2. STM.ICUCourriel.EAI (Courriel — 11 orchestrations)
Le plus grand nombre d'orchestrations de toutes les solutions. Dessert deux chemins de livraison simultanement (SMTP/Exchange et SendGrid) avec cinq interrogateurs de listes de suppression fonctionnant en parallele. Le sous-flux d'acquisition de jeton OAuth2 (ObtenirTokenOAuth) et la boucle complexe de reconciliation des rejets (TraiterRejets) en font la solution individuelle la plus difficile a migrer. Toute interruption affecte directement l'ensemble des notifications aux citoyens par courriel.

3. STM.ICU.EAI (Telus Voice / SVI)
La seule solution utilisant IBM Informix (base de donnees Cisco UCCX), qui ne dispose d'aucun connecteur Azure natif. C'est egalement la seule solution ou BizTalk appelle simultanement une API externe (sortant vers Telus RVI) et sert de point de terminaison HTTP pour les rappels de ce meme systeme externe (Telus rappelle BizTalk pour l'audio TTS et les resultats d'appel). Le patron convoy de longue duree, la fenetre d'attente de rappel de 8 minutes et l'application de la fenetre de service (appels bloques entre 02 h 00 et 04 h 00) ajoutent davantage de complexite.

Les 3 risques principaux

Risque 1 — Assemblages auxiliaires opaques
De la logique d'affaires critique dans STM.ICUTexto.EAI.Helper, STM.ICUCourriel.EAI.Helper et TraiterRejetsHelper est compilee dans des assemblages .NET BizTalk et n'est pas visible dans les sources ODX/XSD. Cela inclut : la logique de filtrage des destinataires, les decisions de routage de service (ObtenirServiceCourriel), la recuperation du jeton d'authentification VuDu, l'emplacement de stockage de la cle API SendGrid, et les identifiants OAuth du client Exchange. Rien de cela ne peut etre migre sans decompiler les assemblages ou obtenir la documentation de la STM. C'est l'element a plus haut risque de l'ensemble de la migration.

Risque 2 — IBM Informix DB (UCCX) — aucun chemin Azure natif
La base de donnees Cisco UCCX fonctionne sur IBM Informix a uccxprod03:1504. Azure ne dispose d'aucun connecteur Informix natif. Les options sont : (a) une Azure Function personnalisee avec le pilote IBM.Data.Informix executee dans un conteneur, (b) un microservice REST intermediaire deploye sur site ou dans Azure IaaS servant de pont, ou (c) l'API REST Cisco UCCX si disponible. Cette dependance doit etre resolue avant que la migration Telus Voice puisse debuter.

Risque 3 — Absorption silencieuse des erreurs et observabilite manquante
Le suivi BizTalk est desactive (TrackingOption="None") sur toutes les orchestrations. L'orchestration DemanderStatus dans ICUTexto absorbe toutes les exceptions silencieusement. Il n'existe aucune correlation distribuee entre les orchestrations. Cela signifie qu'il n'y a aucune donnee de suivi BizTalk historique pour reconstituer les flux de messages lors des tests de migration, et aucune reference d'observabilite pour comparer. Application Insights doit etre instrumente des le premier jour d'execution parallele.


Approche de migration

Plan par phases (3 phases)

Phase 0 — Fondation (Semaine 1, avec consultants)
Provisionner la zone d'atterrissage Azure : instance APIM, espace de noms Service Bus, Key Vault, espace de travail Application Insights et un environnement Logic Apps Standard. Extraire et documenter tous les secrets du SSO BizTalk et des assemblages auxiliaires. Decommissionner les quatre solutions de recuperation CBR (AppelVocalRecup, CourrielRecup, TextoRecup, MessageEntrantRecup) — remplacer par des abonnements a des rubriques Service Bus. Migrer ICUTextoExtraction (ETL par lot : declencheur minuterie + deux appels de procedures stockees SQL) comme migration fonctionnelle a plus faible risque, validant la connectivite SQL par identite managee.

Phase 1 — SMS et analytique (Semaines 2–6)
Migrer STM.ICUTexto.EAI : point de terminaison APIM (POST /icutexto/texto), Azure Durable Functions pour EnvoyerSMSVudu (fan-out pour les lots) et MettreAJourBroadcast (boucle d'interrogation), Azure Service Bus remplacant l'abonnement MessageBox pour STM.ICUTextoRecup et STM.ICUMessageEntrantRecup. Retirer MettreAJourFeed (Unenlisted — code mort confirme). Migrer STM.ICUMassif.EAI comme Logic App avec des branches paralleles une fois les canaux SMS et courriel sur APIM.

Phase 2 — Courriel et medias sociaux (Semaines 7–14)
Migrer STM.ICUCourriel.EAI en deux sous-phases : (2a) envoi de courriel sortant via Logic Apps Standard (EnvoyerCourriel, EnvoyerEwsCourriel → Graph API, EnvoyerSendGridCourriel) ; (2b) reconciliation des rejets via Durable Function fan-out/fan-in (5 interrogateurs de listes de suppression en parallele). Evaluer si le chemin SMTP/Exchange peut etre elimine en faveur de SendGrid uniquement, reduisant significativement le systeme. Migrer STM.ICUResSociaux.EAI (Twitter) — REST standard + OAuth2 Bearer, gerable avec l'action HTTP de Logic Apps. Migrer STM.ICUMediator.EAI en parallele avec la Phase 2, puisqu'il appelle les solutions de canal en cours de migration ; les appels REST GLID et le suivi de correlation doivent etre entierement valides avant la bascule du Mediator.

Phase 3 — Voix et decommissionnement (Semaines 15–22+)
Migrer STM.ICU.EAI (Telus Voice) seulement apres que la dependance UCCX/Informix dispose d'un chemin Azure resolu. Implementer l'interface bidirectionnelle Telus : APIM expose /icu/telus.svc pour les rappels Telus (service de fichiers TTS + POST des resultats d'appel) ; Azure Durable Functions gerent le convoy de longue duree (initiation d'appel sortant, attente de rappel, orchestration de reessai). Une fois toutes les solutions en service et stables dans Azure, decommissionner BizTalk Server, la base de donnees SQL MessageBox, et tous les assemblages personnalises de comportements WCF et de pipelines.

Gains rapides (Semaine 1 avec consultants)

ActionImpactEffort
Decommissionner les 4 solutions CBR RecupRetire 4 solutions BizTalk immediatement ; remplacees par des abonnements Service Bus — aucune logique d'affaires perdueDemi-journee par solution
Migrer ICUTextoExtractionPremiere migration fonctionnelle : declencheur minuterie + 2 appels SQL ; valide l'identite managee vers Azure SQL1–2 jours
Extraire tous les secrets du SSO BizTalk et des assemblages auxiliairesDebloque toutes les phases de migration subsequentes ; fait emerger le probleme Informix tot1 jour (necessite l'acces developpeur STM)
Documenter la table de routage ObtenirServiceCourrielDebloque la migration courriel de la Phase 2 ; actuellement enfermee dans un assemblage compileSession d'atelier avec l'equipe STM
Auditer les fichiers declencheurs ${RepertoireDeclenchement}Previent le double traitement des rejets lors de la mise en service de la migration courriel1 heure

Ce qui ne doit PAS etre migre (a decommissionner)

ComposantRaison
Orchestration MettreAJourFeed (ICUTexto)Statut = Unenlisted ; confirme non actif en production. Ne pas porter.
STM.ICU.EAI_MessageUsager.Schedule (test de pulsation UCCX)Mecanisme de test/pulsation sans fonction en production. Supprimer entierement.
Chemin adaptateur Static-DotNetSMTP de BizTalkRelais SMTP herite ; consolider toute la livraison de courriel via SendGrid ou Graph API sendMail. Elimine la sous-orchestration EnvoyerEwsCourriel et le chemin de reconciliation des NDR Exchange si les sources SMTP sont confirmees migrees.
Ports d'envoi FILE ResultatExecution et ErreurArchive sur systeme de fichiers remplacee par des evenements personnalises Application Insights + stockage a froid Azure Blob optionnel. Eliminer entierement la dependance au systeme de fichiers.
Orchestration ObtenirTokenOAuth (ICUCourriel)Remplacee par l'identite managee Azure — l'acquisition manuelle de jetons est obsolete.
Les 4 solutions de recuperation CBRStubs de routage purs sans logique d'affaires ; remplaces par des abonnements a des rubriques Service Bus.
SSO BizTalkRemplace par Azure Key Vault.
ScheduledTaskAdapter (tiers)Remplace par des declencheurs minuterie Azure Functions.

Specifications detaillees produites

SMS : STM.ICUTexto.EAI + STM.ICUTextoExtraction.EAI

Etat actuel : l'emplacement de reception WCF-WebHttp (/icutexto/api.svc) accepte les POST /texto avec authentification Basic appuyee par un AuthorizationManager personnalise. Les requetes traversent 7 orchestrations : validation, envoi unitaire/par lot vers VuDu (/send, /send_batch), ecritures de suivi SQL, interrogation du statut de livraison (VuDu /get_broadcast), et un lot quotidien d'extraction SQL-vers-Optimax. Les identifiants sont stockes dans le SSO BizTalk via le comportement WCF personnalise STM.WCFHttpHeaderBehavior. Les ports d'envoi VuDu ont RetryCount=0 (aucun reessai en cas d'echec). Toutes les erreurs sont archivees sur le systeme de fichiers. L'interrogation de statut s'execute en boucle sequentielle while — un echec de lot suspend la boucle entiere.

Changements cles dans l'etat futur :

Courriel : STM.ICUCourriel.EAI

Etat actuel : 11 orchestrations reparties dans deux projets (EnvoiCourriel, TraiteRejet). Entrant : reception WCF-WebHttp (/icucourriel/api.svc), authentification Basic. Double chemin de livraison : relais SMTP interne (Static-DotNetSMTP) ou SendGrid REST API, selectionne par ObtenirServiceCourriel(Source) — une fonction de routage compilee dans un assemblage auxiliaire opaque. La reconciliation des rejets s'execute comme une boucle declenchee par FILE interrogeant la base ICU puis lancant 5 sous-orchestrations en parallele : lecteur de NDR Exchange Online (OAuth2), rebonds SendGrid, blocages, signalements de spam et courriels invalides. L'acquisition du jeton OAuth2 pour Exchange est un form-POST manuel a l'interieur d'une orchestration BizTalk. Le suivi BizTalk est desactive (TrackingOption=None) sur les 11 orchestrations. Aucune correlation distribuee. OrderedDelivery=true sur le port d'envoi de suivi SQL.

Changements cles dans l'etat futur :


Vue d'ensemble de l'architecture Azure

Architecture cible proposee

+-------------------------------------------------------------------------+
|                      Azure API Management                                |
|  /icumediator/v1/messageUsager  /icutexto/v1/texto  /icucourriel/v1/courriel
|  /icu/telus.svc  /icuressociaux/v1/messageX                              |
|  Politiques : validate-jwt (Entra ID), rate-limit, injection correlation-id |
+------------------------------+------------------------------------------+
                               |
                               v
+-------------------------------------------------------------------------+
|                   Azure Service Bus (Standard / Premium)                 |
|  Rubriques : mediator-inbound, sms-outbound, sms-status-request,        |
|          sms-inbound, icucourriel-envoi, icucourriel-resultat,           |
|          social-outbound, voice-outbound                                 |
|  DLQ sur toutes les rubriques ; files avec sessions pour livraison ordonnee |
+-----------+-------------------------------------------------------------+
            |
            v
+-------------------------------------------------------------------------+
|              Azure Logic Apps Standard + Azure Durable Functions          |
|                                                                          |
|  stm-icumediator        — Validation GLID, expansion des abonnes,       |
|                           suivi du cycle de vie (CreerSuiviCommunication)|
|  stm-icutexto           — VuDu /send, /send_batch (Durable fan-out)     |
|  stm-icutexto-status    — Interrogation VuDu /get_broadcast (minuterie) |
|  stm-icucourriel-send   — SendGrid /mail/send + Graph sendMail          |
|  stm-icucourriel-rejets — TraiterRejets fan-out/fan-in (minuterie)      |
|  stm-icuressociaux      — Twitter POST /2/tweets                        |
|  stm-icu-telus          — Telus RVI sortant + recepteur de rappels      |
|  stm-icumassif          — Declencheur FILE -> envoi parallele           |
|                           courriel + SMS                                 |
|  stm-extraction-sspo    — Minuterie -> SQL -> ETL Optimax               |
+-----------+-------------------------------------------------------------+
            |
            +--------------> Azure SQL (ICU DB, Mediator DB — existantes ; acces par identite managee)
            +--------------> Azure Key Vault (tous les secrets, cles API, chaines de connexion)
            +--------------> Application Insights (journaux structures, alertes, requetes KQL)
            +--------------> VuDu SMS API (POST form-encoded /send, /send_batch, /get_broadcast)
            +--------------> SendGrid API (/mail/send, points de terminaison /suppression/*)
            +--------------> Microsoft Graph (/users/{sender}/sendMail, lecture de boite aux lettres NDR)
            +--------------> X (Twitter) API v2 (POST /2/tweets)
            +--------------> Telus RVI Outbound API (POST https://apipriv.stm.info/int/rvi-outbound/v1)
            +--------------> GLID REST API (GET /Applications/{app}/ListesDistribution)
            '--------------> UCCX Informix DB (adaptateur personnalise a determiner — element de plus haute complexite)

Services Azure cles et leurs equivalents BizTalk

Composant BizTalkEquivalent AzureNotes
Emplacement de reception WCF-WebHttpAzure API ManagementOAuth 2.0 / JWT remplace l'authentification Basic
BizTalk MessageBox (SQL)Rubriques + files Azure Service BusFiles avec sessions activees pour la livraison ordonnee
Moteur d'orchestration BizTalkAzure Logic Apps Standard (flux simples) + Azure Durable Functions (avec etat, longue duree)Patrons convoy → Durable Orchestrator
SSO BizTalkAzure Key Vault + identite manageeAucun secret de principal de service dans le code
Adaptateur WCF-SQL TypedPollingDeclencheur minuterie Azure Functions + SqlClientIdentite managee vers Azure SQL
Adaptateur de planification (ScheduledTaskAdapter)Declencheur minuterie Azure Functions (expression CRON dans les parametres d'application)
Adaptateur FILE (reception)Declencheur Azure Blob Storage ou recurrence Logic AppsElimine la dependance aux partages UNC
Adaptateur FILE (envoi — archive)Evenements personnalises Application Insights + niveau froid Azure Blob
STM.WCFHttpHeaderBehavior personnaliseReference de secret Key Vault dans les en-tetes d'action HTTP
Pipeline STM.JsonAssembler personnalisePrise en charge JSON native dans Logic Apps / System.Text.Json
AuthorizationManager personnalisePolitique APIM validate-jwt
Console d'administration BizTalk + file suspendueDLQ Service Bus + alertes Azure Monitor
Base de donnees de suivi BizTalkApplication Insights + Log AnalyticsTrackingOption=None — aucune reference historique

Actions prealables a la migration (pour la rencontre avec les consultants)

#ElementPrioriteResponsableJustification
1Decompiler les assemblages STM.ICUCourriel.EAI.Helper et STM.ICUTexto.EAI.Helper ; documenter les regles de ObtenirServiceCourriel, VerifierFiltreDestinataire, ObtenirSendGridAPIKey, AuthorizationManagerCritiqueEquipe de developpement STM + consultantsToutes les specifications de migration des Phases 1 et 2 sont bloquees par ceci. La logique d'affaires est invisible sans cette etape.
2Extraire toutes les valeurs d'identifiants du SSO BizTalk : jetons d'authentification VuDu par Source, cle API SendGrid, client_id / client_secret OAuth Exchange, identifiants GLID, mot de passe d'authentification Basic TelusCritiqueOperations STM + securiteNecessaire avant que le provisionnement d'Azure Key Vault puisse debuter. Les valeurs ne sont pas visibles dans PortBindingsMaster.xml.
3Obtenir la documentation complete de l'API VuDu : limites de debit, plafond de taille de lot, catalogue de codes d'erreur, mecanisme d'authentification (la liaison actuelle utilise un en-tete personnalise — confirmer si base sur un jeton ou HMAC)CritiqueResponsable integration STMSans cela, la politique de reessai et la conception de gestion d'erreurs dans fn-envoyer-sms-vudu ne peuvent etre finalisees.
4Resoudre le chemin de connectivite UCCX / IBM Informix pour Azure : evaluer (a) pilote Informix conteneurise dans Azure Functions, (b) service REST intermediaire sur site, (c) API REST Cisco UCCX si disponibleEleveeInfrastructure STM + consultantsLa Phase 3 (Telus Voice) est entierement bloquee tant que cela n'est pas resolu. Commencer maintenant pour eviter de retarder l'echeancier global.
5Confirmer si la STM dispose d'une infrastructure Azure APIM / Azure Functions / Logic Apps existante ou s'il s'agit d'un deploiement viergeEleveeEquipe infonuagique STMLes conventions de nommage, la gouvernance, le reseau (injection VNet, points de terminaison prives) different significativement entre les scenarios vierge et existant.
6Determiner si le chemin de livraison SMTP interne / Exchange Online (EnvoyerEwsCourriel) peut etre entierement decommissionne en faveur de SendGrid uniquement, ou si des domaines source specifiques necessitent la livraison par ExchangeEleveeAdministration courriel STM + affairesEliminer le chemin SMTP retire 3 orchestrations et la branche complete de reconciliation des NDR Exchange — reduction d'envergure significative si realisable.
7Confirmer le statut operationnel de MettreAJourFeed (ICUTexto) — verifier avec les operations STM que STM.ICUTexto.EAI_PollTraitementSmsFeed est intentionnellement Unenlisted et peut etre retire en toute securiteMoyenneOperations STMLe retirer simplifie la portee de la migration SMS ; s'il est utilise de maniere inattendue, cela pourrait causer une perte de donnees.
8Auditer ${RepertoireDeclenchement} pour les fichiers declencheurs FILE accumules utilises par la boucle de rejet de courriel ; planifier l'etat initial lors de la mise en service pour prevenir le double traitement des rebonds existantsMoyenneOperations STMLe declencheur FILE sera remplace par un declencheur minuterie ; tout fichier declencheur en attente doit etre traite ou ecarte avant la bascule.
9Mapper toutes les variables d'environnement parametrees vers leurs valeurs concretes : ${uriFournisseur}, ${IcuDbAdress}, ${IcuMediatorDbAdress}, ${OptimaxPowerBIDbAdress}, ${WebServiceGlid}, ${UrlSendGrid}, ${SMTPHostName}:${SMTPPort}, tous les intervalles d'interrogation, chemins UNC des partages de fichiersMoyenneOperations STMRequis pour la configuration des parametres d'application Azure. Aucune de ces valeurs n'est presente dans le code analyse.
10Verifier l'exigence de livraison ordonnee SQL pour SauvegarderTraitementCourriel et SauvegarderTraitementSMS avec l'equipe de base de donnees STM — determiner si les procedures stockees elles-memes imposent l'ordonnancement ou dependent de la serialisation du port d'envoi BizTalkMoyenneEquipe BD STMDetermine si des files Service Bus avec sessions activees sont requises pour les ecritures SQL ou si des appels directs sont securitaires. Affecte l'architecture des Phases 1 et 2.
11Confirmer l'authentification du point de terminaison de rappel Telus RVI : /icu/telus.svc n'a actuellement aucune authentification (Telus rappelle sans identifiants). Determiner si APIM peut imposer un filtrage IP, un secret partage ou l'epinglage de certificat sur le point de terminaison entrant TelusMoyenneSecurite STM + TelusExposer un point de terminaison public non authentifie dans APIM constitue un risque de securite qui doit etre resolu avant la Phase 3.
12Etablir une strategie de test en execution parallele : definir une approche de rejeu de messages pour SMS et courriel puisque le suivi BizTalk est desactive et qu'il n'existe aucune donnee de trace historique pour valider l'exactitude de la migrationMoyenneAQ STM + consultantsSans donnees de suivi, la seule reference de validation est le trafic en direct en parallele. Un plan de test formel avec injection de messages synthetiques est requis.

Estimation de l'ecart de couts

Remarque : ces chiffres sont des ordres de grandeur approximatifs pour une plateforme ICU de transport en commun a trafic moyen. Les couts reels dependent des volumes de messages, de la concurrence, du niveau SQL et de la necessite d'injection VNet. Obtenir des devis precis a partir du calculateur de prix Azure en utilisant les metriques de volume reelles de la STM.

Couts d'infrastructure BizTalk (PME typique — estime)

ComposantCout annuel estime (CAD)
Licence BizTalk Server 2020 Enterprise (lot 2 coeurs x 2)25 000 $–40 000 $
Windows Server + SQL Server (BizTalk + MessageBox) — 2 VM15 000 $–25 000 $
Soutien d'infrastructure, correctifs, frais d'administration BizTalk20 000 $–40 000 $/an
Cout total estime du TCO annuel BizTalk~60 000 $–105 000 $/an

Equivalent Azure APIM + Service Bus + Logic Apps (estime)

ComposantCout annuel estime (CAD)
Azure APIM (niveau Standard, 1 unite)~4 200 $/an
Azure Service Bus (espace de noms Standard, ~1 M messages/mois)~1 200 $/an
Azure Logic Apps Standard (locataire unique, plan WS1)~5 000 $–8 000 $/an
Azure Durable Functions (plan Consommation, invocations estimees)~500 $–2 000 $/an
Azure Key Vault (niveau Standard, operations sur les secrets)~300 $/an
Application Insights + Log Analytics~600 $–1 500 $/an
Azure SQL (existant — conserve tel quel, acces par identite managee uniquement)Aucun nouveau cout
Cout annuel total estime Azure~12 000 $–17 000 $/an

Ecart

Economies annuelles estimees de 43 000 $–88 000 $/an une fois BizTalk decommissionne. Cout unique du projet de migration (consultation + developpement) estime a 80 000 $–150 000 $ selon la complexite d'UCCX Informix et si la logique des assemblages auxiliaires doit etre retro-ingenierie. Periode de rentabilisation : 1–2 ans.


Fichiers produits

FichierDescription
output/integration-inventory.mdCatalogue complet retro-ingenierie des 11 solutions BizTalk : flux d'orchestration, ports d'envoi/reception, systemes externes, mecanismes d'authentification, procedures stockees et evaluation de complexite avec ordre de priorite de migration
output/specs/spec-sms-future-state.mdSpecification complete de l'etat futur pour STM.ICUTexto.EAI et STM.ICUTextoExtraction.EAI : diagramme d'architecture Azure propose, politiques APIM, mappage des rubriques Service Bus, pseudocode Durable Function pour l'envoi VuDu et l'interrogation de statut, definitions de contrats API (6 API), inventaire des secrets Key Vault, propositions d'amelioration (authentification, observabilite, reessai), resume des ecarts (ce qui change / est retire / est ajoute) et 10 risques de migration
output/specs/spec-email-future-state.mdSpecification complete de l'etat futur pour STM.ICUCourriel.EAI : diagramme d'architecture Azure propose, pseudocode de flux Logic Apps pour l'envoi de courriel (chemins SMTP et SendGrid) et Durable Function fan-out/fan-in pour la reconciliation des rejets (5 interrogateurs de suppression en parallele), politiques APIM, definitions de contrats API (POST /courriel, GET /courriel/status/{id}), inventaire des secrets Key Vault, propositions d'amelioration (modernisation OAuth, patrons asynchrones, consolidation SMTP), resume des ecarts et 11 risques de migration
output/executive-summary.mdCe document — paysage d'integration, phasage de la migration, gains rapides, liste de decommissionnement, architecture cible Azure, actions prealables a la migration, estimation de l'ecart de couts et index des fichiers