Inventorier la charge globale lambda

Créez un enregistrement de migration avec suffisamment de preuves pour reproduire et comparer le comportement de la source.

Pour inventorier la charge globale lambda, procédez comme suit :

  1. Enregistrez la configuration, le chemin de déploiement, les dépendances, les couches, les bibliothèques natives, les variables d'environnement, les paramètres VPC, le rôle IAM, les déclencheurs, le propriétaire et les contacts opérationnels.
  2. Capturez les mesures de référence : taux d'appel, simultanéité maximale, durée p95 et p99, durée maximale, mémoire utilisée, tailles de charge utile, erreurs, délais d'attente, ralentissements, nouvelles tentatives, DLQ ou nombre d'échecs, ancienneté de la file d'attente ou du carnet de commandes, seuils d'alarme et limites de capacité en aval.
  3. Enregistrez les événements de succès représentatifs, les événements mal formés, les événements en double, les cas d'expiration, les échecs d'autorisation, les exemples d'échec en aval et les exemples de journal source avec des valeurs confidentielles occultées.

Rechercher : un enregistrement de stock complet avec des liens de preuve, des notes de risque initiales et des lacunes nécessitant une confirmation du propriétaire.

Sortie : ne comptez pas uniquement sur les exports de configuration. Les journaux, les mesures, les alarmes et les événements représentatifs révèlent généralement un comportement que la configuration seule n'affiche pas.

Evaluer chaque fonction échantillonnée pour la migration OCI Functions

Enregistrez les exigences, les modifications requises et la décision de migration pour chaque fonction échantillonnée.

Pour évaluer chaque fonction échantillonnée pour la migration OCI Functions, complétez un enregistrement d'évaluation avec les éléments suivants pour chaque fonction échantillonnée :

  • Nom de la fonction et propriétaire de l'application
  • Objectif et criticité de l'entreprise
  • Exécution et version
  • Format de déclenchement et d'événement entrant
  • Services AWS et appels SDK utilisés
  • Temps d'exécution, mémoire, simultanéité et taille de la charge utile
  • Réessayer, commander, dupliquer la livraison et le comportement d'échec
  • Droits d'accès IAM et dépendances réseau
  • Journaux en cours, mesures, alarmes et objectifs de niveau de service
  • Configuration OCI Functions requise et modèle de déclencheur
  • Modifications de code, d'adaptateur ou de déploiement requises
  • Lacunes connues et risques non résolus

Utilisez l'un des résultats d'évaluation suivants :

  • Migration d'OCI Functions prête : la charge globale peut être déplacée vers OCI Functions avec des modifications limitées.
  • Migration d'OCI Functions avec des modifications : la charge globale nécessite un adaptateur, des modifications de code ciblées, des modifications de configuration ou des modifications opérationnelles.
  • Vérification des exceptions requise : les fonctions OCI peuvent ne pas répondre à une exigence de charge globale documentée. Ne procédez pas à une architecture non fonctionnelle sans l'examen des exceptions décrit dans ce manuel.

Le propriétaire de l'application et le propriétaire de la migration doivent vérifier l'évaluation avant le début de l'implémentation.

Evaluer les exigences de migration des fonctions OCI

Déterminez l'approche de migration OCI Functions pour une charge globale.

Pour évaluer les exigences de migration d'OCI Functions, procédez comme suit :

  1. Examinez les exigences de déclenchement, d'exécution, de dépendances, de durée d'exécution, de mémoire, de simultanéité, de charge utile, d'IAM, de réseau et opérationnelles de la charge globale pour déterminer l'approche de migration d'OCI Functions.
  2. Séparez la logique métier portable de l'analyse des événements propres à AWS, des appels SDK, des hypothèses IAM, de la journalisation et de la gestion des nouvelles tentatives.

    Les modifications de migration requises sont alors visibles avant le début de l'implémentation.

  3. Utilisez les modèles de migration OCI Functions suivants comme point de départ.
    Modèle de charge globale Modèle de migration OCI Functions Valider
    Charge de travail courte, basée sur les événements et sans conservation de statut Fonctions OCI Charge utile, mémoire, délai d'expiration, simultanéité, dépendances et accès en aval requis
    Charge globale d'API HTTP OCI API Gateway et OCI Functions Authentification, méthodes, routes, en-têtes, taille de la charge utile, réponses aux erreurs, latence et délai d'expiration
    Processeur d'événements d'objet, de notification, de file d'attente, de flux ou de journal OCI Functions avec les événements OCI, Oracle Cloud Infrastructure Queue, OCI Notifications, OCI Streaming ou le service OCI Connector Hub applicables Format d'événement, comportement de livraison, nouvelles tentatives, commande, gestion des doublons, destination des pannes et contre-pression

OCI Functions est la cible par défaut pour les initiatives de migration Lambda lorsqu'elle répond aux exigences fonctionnelles, de performances, de sécurité et opérationnelles de la charge globale.

Concevoir l'architecture OCI cible

Définissez des modèles d'appel, d'identité, de secret, de réseau, de dépendance, d'observabilité et de basculement.

Pour concevoir l'architecture OCI cible, procédez comme suit :

  1. Sélectionnez le chemin d'appel et le document attendus pour l'authentification, la forme de la charge utile, les en-têtes ou les métadonnées, la latence, les nouvelles tentatives, le tri, le comportement du batch, la distribution en double, le filtrage et la destination de l'échec.
  2. Définissez l'application, le compartiment, le référentiel d'images OCI Functions, le VCN, les sous-réseaux, les tables de routage, les règles de sécurité, la passerelle de service ou la passerelle NAT, l'accès privé, les exigences sortantes et les adresses en aval.
  3. Identifiez chaque service OCI ou adresse externe appelé par la fonction lors de l'exécution, y compris OCI Object Storage, OCI Queue, OCI Streaming, OCI Vault, les bases de données et les API tierces.
  4. Définissez des signaux opérationnels tels que les champs de journal, l'ID de corrélation, le nombre d'appels, la durée, les erreurs, les délais d'attente, les symptômes de capacité, les échecs en aval, les vues de tableau de bord, les alarmes et les étapes du guide d'exécution.

Recherchez un récapitulatif de l'architecture cible avec une liste de composants, un chemin d'intégration, une conception de sécurité, une conception opérationnelle et des conseils de redessin de diagramme.

Considérations : La conception de l'architecture n'est terminée que lorsque le flux normal, le flux de nouvelles tentatives, le flux d'échec, le flux d'accès refusé et le flux d'annulation sont décrits.

Considérations relatives à la conception et sélection des cibles

Tenez compte des points suivants lors de la révision de la conception.

Ils sont intentionnellement orientés vers l'action afin que les évaluateurs puissent demander des preuves plutôt que d'accepter des déclarations générales de préparation.

  • Ajustement de la cible : utilisez OCI Functions pour un travail sans conservation de statut, axé sur les événements, à courte durée d'exécution et pouvant être conteneurisé qui correspond aux limites cible et au modèle d'appel. Utilisez une autre cible pour les charges de travail à longue durée d'exécution, avec conservation de statut, de type démon, avec orchestration lourde, de type travailleur ou couplées à des services AWS.
  • Charges et délais d'attente : enregistrez les tailles réelles des demandes et des réponses, la durée maximale, le nombre de délais d'attente et la sémantique des réponses de l'appelant. Transmettez des données volumineuses par référence via OCI Object Storage, OCI Queue, OCI Streaming ou un autre emplacement de stockage plutôt que via la charge utile de la fonction.
  • Dépendances : convertissez les hypothèses de couche ZIP et Lambda en dépendances d'image ou d'image de base partagée. Testez les bibliothèques natives, la taille des images, les versions de dépendance, le comportement de démarrage, les hypothèses de kit SDK intégré et le comportement d'exécution.
  • Concomitance et évolutivité : déterminez pourquoi la simultanéité réservée ou provisionnée AWS a été utilisée : capacité réservée, limitation du trafic, réduction du démarrage à froid, ralentissement de la source d'événements ou protection en aval. Concevez le comportement d'OCI avec la planification de la capacité, la simultanéité provisionnée, le cas échéant, les contrôles de déclenchement, la contre-pression et les limites en aval.
  • Déclencheurs : validez la forme d'événement, les nouvelles tentatives, le tri, le comportement de batch, la distribution en double, le filtrage, la destination d'échec et l'idempotence. Le comportement des déclencheurs est généralement la zone de migration à risque le plus élevé.
  • Opérations : traitez les journaux, les mesures, les alarmes, les tableaux de bord, les traces, les classeurs d'exécution, le déclencheur d'annulation et le propriétaire d'annulation en tant que livrables de migration, et non en tant que nettoyage après coupure.

Guide de sélection de cible

Caractéristique de charge globale Cible OCI recommandée Les raisons
Fonction apatride, événementielle, courte durée, conteneurisable Fonctions OCI Ajustement le plus proche lorsque les contraintes de charge utile, de délai d'attente, de mémoire, de déclencheur, de dépendance, de réseau et de simultanéité sont satisfaites.
Fonction API HTTP avec un comportement simple de demande/réponse OCI API Gateway et OCI Functions Ajustement approprié lors de la validation de l'authentification, des en-têtes, de la taille de la charge utile, du délai d'attente, de la latence, du code de statut et de la sémantique des réponses.
Processeur d'événements d'objet, de notification, de file d'attente, de flux ou de journal OCI Functions avec des événements OCI, des notifications OCI, OCI Connector Hub, OCI Streaming via Connector Hub ou un flux de messagerie repensé L'ajustement potentiel, mais le comportement de livraison, de nouvelle tentative, de commande, de lot, de doublon, de message empoisonné et d'échec doivent être repensés et testés.
Travail à longue durée d'exécution ou processus de type salarié OCI Container Instances, OKE, OCI Compute ou workflow décomposé Evite les contraintes d'appel et d'exécution des fonctions tout en préservant un chemin de déploiement basé sur un conteneur ou un service.
Orchestration lourde d'intégration Oracle Integration, service de workflow ou refonte Meilleur ajustement lorsque la charge globale coordonne les systèmes, attend l'état externe ou gère les étapes de compensation plutôt que d'exécuter une petite unité de calcul.
Processus avec conservation de statut, état durable local ou démon OCI Compute, OKE ou refonte OCI Functions n'est pas un modèle d'exécution de démon ou d'état local durable.

Préparation des ressources OCI et de l'accès au déploiement

Préparez l'environnement cible minimal nécessaire pour créer, déployer et tester la fumée.

Pour préparer les ressources OCI et l'accès au déploiement, procédez comme suit :

  1. Créez ou identifiez le compartiment, l'application OCI Functions, les sous-réseaux VCN, le référentiel OCI Container Registry, les emplacements de clé secrète OCI Vault, les ressources de journalisation et les alarmes de surveillance.
  2. Configurer l'accès développeur et CI/CD pour la création d'images, la transmission d'images, le déploiement de fonctions, l'appel de tests de fumée et la lecture de journaux.
  3. Créez des règles de groupe dynamique et des instructions de stratégie pour l'accès d'exécution. Portée par compartiment et ressource lorsque cela est possible, en particulier pour les buckets, les flux de données, les files d'attente, les clés secrètes OCI Vault et les bases de données.
  4. Push d'image de test de fumée, déploiement de fonction, appel direct, émission de journal, lecture de clé secrète, lecture de clé secrète refusée et un appel de service en aval représentatif.

Recherchez un environnement cible prêt avec des chemins d'accès documentés et un test de fumée réussi.

Remarques : Assurez-vous que l'identité de déploiement et l'identité d'exécution sont distinctes lorsque le processus nécessite des droits d'accès différents.