Guide de migration des courriels sur site vers le cloud

Auteur

Oiseau

Catégorie

Email

Guide de migration des courriels sur site vers le cloud

Auteur

Oiseau

Catégorie

Email

Guide de migration des courriels sur site vers le cloud

Auteur

Oiseau

Catégorie

Email

Tellement de fois, nous entendons la question : « Avez-vous un livre de procédures de quelque type qui décrive le processus de migration d'une installation sur site vers Bird ? »

Eh bien oui, oui nous en avons un. Continuez à lire.

Tout d'abord, un peu de contexte. Le service Bird Cloud a été créé en 2014 à partir du succès énorme de la solution On-Premises Momentum MTA. Momentum est au cœur de Bird Cloud, fournissant une livraison à grande vitesse et une gestion du trafic pour des milliers de clients sur le service cloud. Pour cette raison, Momentum reçoit une grande partie de notre attention en matière d'ingénierie, mais les résultats de ce travail sont souvent cachés dans des améliorations de performance qui ne reçoivent pas beaucoup d'attention de la presse.  Les clients de Momentum voient les avantages de ce travail chaque fois qu'une nouvelle version publique de Momentum est publiée.

Cela ne signifie PAS que Bird est juste « Momentum dans le Cloud ». MessageBird est bien plus que cela et peut apporter des avantages supplémentaires aux clients qui choisissent de migrer ou de les utiliser dans une approche hybride.  De plus, nous avons rendu très facile pour les clients de PowerMTA de migrer ou d'utiliser PowerMTA avec Bird dans une configuration hybride également. Le reste de ce document décrira en détail comment vous pouvez migrer vos flux de messages de Momentum ou PowerMTA vers le service Bird Cloud. 

Il y a vraiment deux scénarios séparés à considérer lors de la migration vers Bird depuis Momentum ou PowerMTA. 

  1.  Vous êtes prêt à quitter complètement le monde sur site, à fermer vos centres de données physiques et à ne plus gérer d'MTA sur site directement.  Cela signifie éliminer Momentum ou PowerMTA de votre déploiement et envoyer des messages directement à SparkPost pour le traitement des messages. Ou

  2. Vous avez des raisons de garder une certaine empreinte sur site pour une raison ou une autre.  Certaines possibilités pourraient être :

  • des flux de livraison spécifiques nécessitant un prétraitement dans Momentum

  • répartition de capacité pour des besoins de reprise après sinistre ou de pic

  • soutenir des clients hérités dans PMTA tout en déplaçant de nouveaux clients vers SparkPost

 … puis vous souhaitez transférer les autres messages vers Bird pour un traitement ultérieur des messages.  

Dans les deux situations, vous devez être conscient que Bird n'acceptera que des messages SMTP pour la livraison qui sont injectés par le port 587 ou 2525 et utilisent SMTP_Auth avec un nom d'utilisateur et un mot de passe spécifiques (Voir les documents SMTP ici). Nous recommandons également fortement de se connecter avec une connexion TLS, mais ce n'est pas strictement nécessaire. Si vous remplacez complètement votre couche MTA (scénario 1), alors vous voudrez peut-être envisager d'utiliser l'API REST Transmissions qui peut accepter des messages via des connexions HTTPS. La documentation sur cette API est ici.

Quelle option choisir ?

Pour déterminer si vous êtes dans l'option n°1 ou l'option n°2, considérez ces facteurs :

  • Utilisez-vous le moteur de script Lua de Momentum pour quelque chose de plus compliqué que le routage de messages ?

    • Lua est un outil de script complet pour manipuler des messages en ligne, mais la grande majorité de nos utilisateurs l'utilisent seulement pour sélectionner un binding pour la livraison.  Si c'est le cas, vous pouvez modifier votre code de génération pour ajouter un attribut ip_pool à l'en-tête X-MSYS-API et faire en sorte que Bird assigne la route pour vous. 

    • Si vous utilisez Lua pour faire des choses plus compliquées comme le filtrage de corps, les réécritures de Mail_From, ou les calculs de cadence des messages, et qu'il n'est pas faisable de déplacer cette logique dans votre application d'injection, vous voudrez peut-être envisager de passer au camp de l'option n°2.

  • Votre système de génération est-il capable d'envoyer des messages par le port 587 en utilisant TLS et SMTP_Auth ?

    • Certains systèmes de gestion de campagne ne peuvent envoyer des mails que sur le port 25 en texte clair. Cela pose un problème de sécurité pour Bird, donc vous voudrez peut-être envisager l'option n°2

  • Utilisez-vous la syntaxe de substitution PowerMTA ou d'autres modifications de message en ligne ?

    • Si vous pouvez déplacer cette fonction dans vos générateurs ou utiliser le langage de template Bird, alors vous pouvez toujours utiliser l'option 1, mais sinon, vous devrez peut-être penser à garder un nœud PMTA en ligne pour cette modification de message avant l'envoi à Bird pour la livraison.

  • Avez-vous besoin de faire un scan AV/AS entrant avant l'injection ? Bien que cela soit possible dans Momentum et PowerMTA, eBird suppose que vous avez déjà effectué toutes ces vérifications.  Vous voudrez peut-être envisager de les faire avant l'injection.

Pour le camp de l’option n°1 (Arrêt immédiat) :

Supposons que vous êtes d'accord avec l'option 1 et que vous êtes prêt à fermer vos MTA sur site et que vous avez décidé de continuer à utiliser la méthode d'injection SMTP, sans changer vos systèmes de création de messages.   Vos systèmes de génération doivent créer un message SMTP complètement formaté, puis l'envoyer à Bird via TLS en utilisant SMTP_AUTH où le nom d'utilisateur et le mot de passe sont tels que décrits sur cette page. Rappelez-vous que le « mot de passe » est la clé API que vous générez dans votre compte Bird avec l'option de livraison SMTP activée.

Si vous êtes dans le camp de l'option n°1, envisagez de passer directement à l'API REST depuis votre système de génération. Dans la plupart des cas, nous constatons que les systèmes de traitement des clients utilisent déjà JSON sur HTTP et doivent se convertir à SMTP avant l'injection. Vous pouvez sauter cette étape et l'envoyer directement à nous sous forme de charge utile REST formatée JSON.

Si vous choisissez d'injecter avec l'API REST, vous devrez peut-être modifier un peu votre système de création de contenu, mais cela peut en valoir la peine.  Vous pouvez en savoir plus ici.

Une des plus grandes préoccupations des grands ESP lors d'une migration est l'échauffement d'IP. Typiquement, ils ont passé de nombreuses années à peaufiner leur inventaire d'adresses IP avec grand soin, donc l'idée d'abandonner tout ce travail est douloureuse. Bird a mis en place un processus Bring Your Own IP (BYOIP) qui prend en charge cette question. Si vous disposez d'un bloc CIDR /24 contigu, Bird peut utiliser ces IP existantes pour la livraison, ce qui vous évite d'avoir à les échauffer à nouveau. Si vous êtes en mesure de profiter de cette option, vous pouvez sauter la section ici sur l'échauffement d'IP.

Si vous pensez être prêt à avancer, passez à la section « Comment y parvenir »

Exploiter l’option n°2 (prétraitement sur site) :

Cependant, si vous êtes dans l'équipe de l'option n°2, alors vous voudrez ajouter quelques changements de configuration à votre déploiement. La façon la moins douloureuse de migrer certains flux de messages sélectionnés de Momentum ou PMTA vers Bird tout en utilisant l'injection SMTP depuis vos systèmes de génération est d'ajouter une route spéciale dans votre configuration.

Pour Momentum :

  1. Configurez une version de Momentum > 3.6.23. 

  2. Installez un certificat SSL valide et ouvrez le port sortant 587 afin que Momentum puisse communiquer avec Bird. Configurez un domaine sortant afin d’acheminer un message à travers Momentum vers Bird. 

  3. Avec la configuration ci-dessous, tout message atteignant cette configuration sera routé vers smtp.sparkpostmail.com en utilisant le port 587 et SMTP_Auth avec le nom d'utilisateur et le mot de passe définis là. outbound_smtp_auth { } Keep_Message_Dicts_In_Memory = true Domain "smtp.sparkpostmail.com" {   Remote_SMTP_Port = "587"   Outbound_SMTP_AUTH_Type = "LOGIN"   Outbound_SMTP_AUTH_user = "SMTP_Injection"   Outbound_SMTP_AUTH_pass = "17258redacted8bd6cd7a8redacted8c22bce" }

  4. Configurez les bindings que vous souhaitez relayer via MessageBird avec TLS et dirigez-les vers le domaine que vous avez défini ci-dessus.

    Note :
    TLS n'est pas strictement requis mais est fortement recommandé. Si TLS n'est pas possible pour une raison quelconque, le whitelistage des IP avec les clés API est également une forte recommandation.


    binding "CustomerA-Outbound" {   Gateway = "smtp-demo.sparkpostelite.com"     TLS = "required"     TLS_Certificate = "/etc/pki/tls/certs/trymsys.net.crt"     TLS_Key = "/etc/pki/tls/certs/trymsys.net.key"     TLS_Ciphers = "DEFAULT" }

Pour PowerMTA :

  1. Configurez une version de PowerMTA > 4.5.0

  2. Installez un certificat SSL valide et ouvrez le port sortant 587 afin que PowerMTA puisse communiquer avec Bird.

  3. Configurez un chemin de domaine sortant afin que vous puissiez router un message à travers PowerMTA vers Bird. Avec la configuration ci-dessous, tout message atteignant cette configuration sera routé vers smtp.sparkpostmail.com en utilisant le port 587 et SMTP_Auth avec le nom d'utilisateur et le mot de passe définis ici.  Dans PowerMTA, c'est également ici que vous pouvez définir TLS. Notez que cela est également documenté plus en détail ici 

<domain sparkpost.rollup>    use-unencrypted-plain-auth yes    auth-username SMTP_Injection    auth-password YourAPIKeygoesherewhenyougenerateit    route smtp.sparkpostmail.com:587    use-starttls yes    require-starttls yes    max-smtp-out 10 </domain>

4. Configurez les VMTAs que vous souhaitez relayer via Bird avec la configuration de rollup {sparkpost} que vous avez définie ci-dessus.

<virtual-mta SparkPostRelay>     <domain *>         queue-to {sparkpost}     </domain> </virtual-mta>

Une fois que vous aurez apporté ces modifications de configuration, tous les messages envoyés au « binding » ou « VMTA » sélectionné devraient être automatiquement routés à travers Bird pour la livraison.  

Comment y arriver

Lorsque vous commencez ce processus, ne faites pas l'erreur de penser qu'il s'agit d'une opération de nuit.  Bien faire cela prendra du temps et de l'attention.  

  1. Configurez votre compte Bird et testez-le complètement en utilisant un sous-compte de développement afin que vous puissiez filtrer ce trafic plus tard.  Vous devrez faire cela pour l'une ou l'autre option car vous aurez besoin de la clé API pour le mot de passe SMTP_Auth de toute façon.

  2. Si vous utilisez l'injection SMTP, prévoyez d'ajouter un en-tête X-MSYS-API pour incorporer toutes les métadonnées et les attributs de messages nécessaires.  Tous les X-Headers devraient être réécrits en tant que métadonnées et vous devriez également inclure les attributs ip_pool et campagne. Un exemple est disponible ici

  3. Si vous n'utilisez PAS BYOIP, vous devez vous assurer que vous configurez des domaines d'envoi légèrement différents à utiliser avec MessageBird afin que vous puissiez faire fonctionner les deux environnements en parallèle aussi longtemps que nécessaire.  Si votre domaine d'envoi actuel est mycompany.com, peut-être configurez sp.mycompany.com spécifiquement pour la livraison de Bird.  Cela vous permet de migrer lentement et prudemment sans compromettre l'un ou l'autre domaine.

  4. Assurez-vous que vous disposez d'une pleine concordance de domaine et que les fonctionnalités de sécurité sont activées.  Dans DNS, configurez DKIM, SPF, DMARC, les domaines de rebond et de suivi afin qu'ils semblent tous appartenir à la même organisation.

  5. Configurez l'échauffement automatique d'IP sur vos IP_Pools définis.  Si vous utilisez l’option BYOIP mentionnée précédemment, vous pouvez ignorer l'étape d'échauffement.

  6. Commencez par un flux de messages et avancez à partir de là.  Tout comme l'échauffement d'IP, vous ne voulez pas faire cela d'un coup. Redirigez d'abord quelques centaines de messages, puis 10 % du volume, puis 20 % le jour suivant et augmentez jusqu'à ce que vous ayez déplacé tout le volume. Si vous êtes un ESP, sélectionnez un client avec qui vous pouvez travailler et testez le processus avec leurs retours d'expérience.  Si tout fonctionne bien, passez au suivant. Si vous rencontrez des problèmes, prenez le temps de les régler et intégrez-les au processus pour le suivant.

  7. Automatisez autant que possible avec des API.  En dehors des changements DNS, la configuration SparkPost peut être principalement automatisée avec quelques appels API.

Collecte de données depuis Bird

MessageBird rapporte la livraison des messages dans un flux de webhooks ou dans l'API des événements de messages.  L'accès aux journaux en texte clair de Bird est simplement impossible. Vous pouvez récupérer ces données dans votre environnement avec un collecteur de webhooks ou en appelant périodiquement l'API des événements et en consommant les données.  Nous vous recommandons d'utiliser des webhooks et avons quelques recommandations pour bien le faire.  Sous sa forme la plus basique, un collecteur de webhook PHP peut être déployé en quelques lignes de code :

<?php $verb = $_SERVER['REQUEST_METHOD'];   if ($verb == "POST") {     $jsonStr = file_get_contents("php://input");     http_response_code(200);     $rnum = rand(1000,9999);     $t = date("YmdHis") . $rnum;     $Jfile = './data/data_'.$t.'.txt';     if (file_exists($Jfile)) {        $fn = basename($Jfile,".txt");       $seq = 0;       $ftail = substr($fn,-2,1);       if ($ftail == "-"){         $seq = substr($fn,-1);       }       $seq++;       $Jfile = basename($Jfile,".txt")."-".$seq.".txt";     }       $fh = fopen($Jfile, "w") or die("Impossible de créer le fichier !");       fwrite($fh, $jsonStr);       fclose($fh);   } ?>

Pendant que vous expérimentez, vous pouvez les essayer avec des collecteurs gratuits tels que http://webhook.site/.

Une fois que vous avez collecté toutes les données de webhook, vous pouvez les lire dans un stockage de données pour un traitement supplémentaire.  Il existe également des moyens de pousser des webhooks via des services comme StitchData et Segment.

Les mêmes informations sont disponibles dans l'API des événements si vous avez besoin de REMPLIR les données et ne pouvez pas accepter de données PUSH.  Voici un exemple d'appel à l'API des événements :
GET https://api.sparkpost.com/api/v1/events/message?/

recipients=recipient@example.com&templates=my-template&events

Cette API est entièrement documentée avec des exemples ici :  https://developers.sparkpost.com/api/events/#events-get-search-for-message-events

Si vous avez vraiment besoin des données des événements sous une forme ressemblant aux journaux PMTA ou Momentum, c'est également possible si vous utilisez un code de conditionnement supplémentaire. La bonne nouvelle est qu'il y a quelques exemples à voler déjà.

Récapitulatif

  1. Assurez-vous de parler à votre équipe de ventes et de gestion de la réussite.  Nous avons déjà fait cela et pouvons vous aider à le faire rapidement et de manière rentable.

  2. Déterminez si vous êtes dans le camp n°1 (capable de passer entièrement de l'on-prem) ou dans le camp n°2 (besoin toujours d'un MTA sur site).

  3. Inscrivez-vous pour un compte de test gratuit pour évaluer les détails d'intégration.

  4. Décidez sur les méthodes d'injection SMTP ou API REST.

  5. Si vous utilisez l'injection SMTP, déterminez comment obtenir les données d'en-tête et les attributs de message dans un en-tête X-MSYS-API.

  6. Confirmez si vous pouvez utiliser notre processus BYOIP.

  7. Mettez à jour votre DNS avec de nouveaux domaines si nécessaire.

  8. Construisez un petit échantillon pour tester votre migration.  Vous devrez peut-être ajuster votre configuration.

  9. Augmentez le volume jusqu'à ce que tout le trafic soit migré.

  10. Si vous appartenez au camp n°1, vous pouvez enfin fermer vos MTA sur site après que tout le trafic a été migré.

Prêt à voir Bird en action ?

Schedule a demo now.

La plateforme alimentée par l'IA pour le marketing, le support et la finance.

En cliquant sur "Obtenir une démo", vous acceptez les

La plateforme alimentée par l'IA pour le marketing, le support et la finance.

En cliquant sur "Obtenir une démo", vous acceptez les

La plateforme alimentée par l'IA pour le marketing, le support et la finance.

En cliquant sur "Obtenir une démo", vous acceptez les