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.
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.
+---------------------------------+
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
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.
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.
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.
| Action | Impact | Effort |
|---|---|---|
| Decommissionner les 4 solutions CBR Recup | Retire 4 solutions BizTalk immediatement ; remplacees par des abonnements Service Bus — aucune logique d'affaires perdue | Demi-journee par solution |
| Migrer ICUTextoExtraction | Premiere migration fonctionnelle : declencheur minuterie + 2 appels SQL ; valide l'identite managee vers Azure SQL | 1–2 jours |
| Extraire tous les secrets du SSO BizTalk et des assemblages auxiliaires | Debloque toutes les phases de migration subsequentes ; fait emerger le probleme Informix tot | 1 jour (necessite l'acces developpeur STM) |
Documenter la table de routage ObtenirServiceCourriel | Debloque la migration courriel de la Phase 2 ; actuellement enfermee dans un assemblage compile | Session 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 courriel | 1 heure |
| Composant | Raison |
|---|---|
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 BizTalk | Relais 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 Erreur | Archive 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 CBR | Stubs de routage purs sans logique d'affaires ; remplaces par des abonnements a des rubriques Service Bus. |
| SSO BizTalk | Remplace par Azure Key Vault. |
ScheduledTaskAdapter (tiers) | Remplace par des declencheurs minuterie Azure Functions. |
STM.ICUTexto.EAI + STM.ICUTextoExtraction.EAIEtat 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 :
POST /icutexto/texto), OAuth 2.0 JWT remplacant l'authentification Basicsms-outbound, sms-status-request)vudu-auth-token-{source}MettreAJourFeed (Unenlisted) → decommissionne, non migre202 Accepted + point de terminaison d'interrogation de statutSTM.ICUCourriel.EAIEtat 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 :
POST /icucourriel/v1/courriel), OAuth 2.0 contre Entra IDStatic-DotNetSMTP → Microsoft Graph POST /v1.0/users/{sender}/sendMailObtenirTokenOAuth → eliminee ; l'identite managee gere l'OAuth Exchange0 0 3 * * *)dtDerniereExecution independamment (elimine le risque de double traitement en cas d'echec de branche)ObtenirServiceCourriel → table de configuration explicite dans la base ICU ou politique APIM (decision requise avant la Phase 1)idMessage+-------------------------------------------------------------------------+
| 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)
| Composant BizTalk | Equivalent Azure | Notes |
|---|---|---|
| Emplacement de reception WCF-WebHttp | Azure API Management | OAuth 2.0 / JWT remplace l'authentification Basic |
| BizTalk MessageBox (SQL) | Rubriques + files Azure Service Bus | Files avec sessions activees pour la livraison ordonnee |
| Moteur d'orchestration BizTalk | Azure Logic Apps Standard (flux simples) + Azure Durable Functions (avec etat, longue duree) | Patrons convoy → Durable Orchestrator |
| SSO BizTalk | Azure Key Vault + identite managee | Aucun secret de principal de service dans le code |
| Adaptateur WCF-SQL TypedPolling | Declencheur minuterie Azure Functions + SqlClient | Identite 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 Apps | Elimine la dependance aux partages UNC |
| Adaptateur FILE (envoi — archive) | Evenements personnalises Application Insights + niveau froid Azure Blob | |
STM.WCFHttpHeaderBehavior personnalise | Reference de secret Key Vault dans les en-tetes d'action HTTP | |
Pipeline STM.JsonAssembler personnalise | Prise en charge JSON native dans Logic Apps / System.Text.Json | |
AuthorizationManager personnalise | Politique APIM validate-jwt | |
| Console d'administration BizTalk + file suspendue | DLQ Service Bus + alertes Azure Monitor | |
| Base de donnees de suivi BizTalk | Application Insights + Log Analytics | TrackingOption=None — aucune reference historique |
| # | Element | Priorite | Responsable | Justification |
|---|---|---|---|---|
| 1 | Decompiler les assemblages STM.ICUCourriel.EAI.Helper et STM.ICUTexto.EAI.Helper ; documenter les regles de ObtenirServiceCourriel, VerifierFiltreDestinataire, ObtenirSendGridAPIKey, AuthorizationManager | Critique | Equipe de developpement STM + consultants | Toutes les specifications de migration des Phases 1 et 2 sont bloquees par ceci. La logique d'affaires est invisible sans cette etape. |
| 2 | Extraire 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 Telus | Critique | Operations STM + securite | Necessaire avant que le provisionnement d'Azure Key Vault puisse debuter. Les valeurs ne sont pas visibles dans PortBindingsMaster.xml. |
| 3 | Obtenir 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) | Critique | Responsable integration STM | Sans cela, la politique de reessai et la conception de gestion d'erreurs dans fn-envoyer-sms-vudu ne peuvent etre finalisees. |
| 4 | Resoudre 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 disponible | Elevee | Infrastructure STM + consultants | La Phase 3 (Telus Voice) est entierement bloquee tant que cela n'est pas resolu. Commencer maintenant pour eviter de retarder l'echeancier global. |
| 5 | Confirmer si la STM dispose d'une infrastructure Azure APIM / Azure Functions / Logic Apps existante ou s'il s'agit d'un deploiement vierge | Elevee | Equipe infonuagique STM | Les conventions de nommage, la gouvernance, le reseau (injection VNet, points de terminaison prives) different significativement entre les scenarios vierge et existant. |
| 6 | Determiner 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 Exchange | Elevee | Administration courriel STM + affaires | Eliminer le chemin SMTP retire 3 orchestrations et la branche complete de reconciliation des NDR Exchange — reduction d'envergure significative si realisable. |
| 7 | Confirmer 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 securite | Moyenne | Operations STM | Le retirer simplifie la portee de la migration SMS ; s'il est utilise de maniere inattendue, cela pourrait causer une perte de donnees. |
| 8 | Auditer ${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 existants | Moyenne | Operations STM | Le declencheur FILE sera remplace par un declencheur minuterie ; tout fichier declencheur en attente doit etre traite ou ecarte avant la bascule. |
| 9 | Mapper 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 fichiers | Moyenne | Operations STM | Requis pour la configuration des parametres d'application Azure. Aucune de ces valeurs n'est presente dans le code analyse. |
| 10 | Verifier 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 BizTalk | Moyenne | Equipe BD STM | Determine 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. |
| 11 | Confirmer 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 Telus | Moyenne | Securite STM + Telus | Exposer un point de terminaison public non authentifie dans APIM constitue un risque de securite qui doit etre resolu avant la Phase 3. |
| 12 | Etablir 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 migration | Moyenne | AQ STM + consultants | Sans 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. |
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.
| Composant | Cout annuel estime (CAD) |
|---|---|
| Licence BizTalk Server 2020 Enterprise (lot 2 coeurs x 2) | 25 000 $–40 000 $ |
| Windows Server + SQL Server (BizTalk + MessageBox) — 2 VM | 15 000 $–25 000 $ |
| Soutien d'infrastructure, correctifs, frais d'administration BizTalk | 20 000 $–40 000 $/an |
| Cout total estime du TCO annuel BizTalk | ~60 000 $–105 000 $/an |
| Composant | Cout 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 |
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.
| Fichier | Description |
|---|---|
output/integration-inventory.md | Catalogue 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.md | Specification 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.md | Specification 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.md | Ce 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 |