Optimisation des performances et techniques d'optimisation

Applications serverless avec AWS Lambda

Claudio Canales

Senior DevOps Engineer

Performance = latence + coût

  • Vous payez le temps.
  • Optimiser les performances, c'est aussi réduire les coûts.
  • Mesurer avant d'optimiser.
  • Changer un élément à la fois.

Chronomètre et coût

Applications serverless avec AWS Lambda

Répartition du temps

  • Initialisation.
  • Exécution du handler.
  • Temps d'attente des appels externes.

Init vs handler vs appels externes

Applications serverless avec AWS Lambda

Cold start vs warm start

Cold start

  • Lambda a besoin d'un nouvel environnement.

Warm start

  • Réutilise un environnement existant.
  • Le handler s'exécute avec moins de surcoût.

Chronologie cold vs warm

Applications serverless avec AWS Lambda

Travail d'init vs travail du handler

  • Imports et configuration globale exécutés à l'init.
  • Une init lourde allonge les cold starts.
  • La durée d'init apparaît dans les métriques.

Répartition init vs handler

Applications serverless avec AWS Lambda

Réutiliser les clients sur les appels chauds

  • Créer un client à chaque appel répète le coût.
  • Réutilisez-le quand l'environnement est chaud.

Réutilisation de client global

Applications serverless avec AWS Lambda

Modèle : client en dehors du handler

import boto3
sts = boto3.client("sts")
def handler(event, context):
    return sts.get_caller_identity()

Client créé une seule fois

Applications serverless avec AWS Lambda

Mettre en cache quand c'est possible

  • Garder les données en mémoire.
  • Utiliser /tmp pour de petits fichiers temporaires.
  • Mettre en cache avec prudence et invalider au besoin.

Cache en mémoire et /tmp

Applications serverless avec AWS Lambda

Alléger les dépendances

  • Les gros packages chargent plus lentement.
  • Supprimez ce qui est inutile.
  • Gardez des dépendances minimales.

Dépendances légères vs lourdes

Applications serverless avec AWS Lambda

Journaliser avec discernement

  • Trop de logs = coût et bruit.
  • Visez des messages courts et structurés.
  • Restez recherchable ; aidez traçage et débogage.

Volume de logs vs signal

Applications serverless avec AWS Lambda

Réduire le surcoût des appels externes

  • Les appels à d'autres services sont les plus lents.
  • Réduisez-les ; regroupez quand possible.
  • Définissez des timeouts pour éviter les blocages.

Minimiser les appels externes

Applications serverless avec AWS Lambda

La mémoire influe aussi sur le CPU

  • Le CPU évolue avec la mémoire.
  • Le code lié au CPU peut finir plus vite.
  • Plus de mémoire peut réduire durée ou coût.
  • Testez pour trouver la valeur optimale.

Mémoire -> CPU -> exécution plus rapide

Applications serverless avec AWS Lambda

Trouver le point optimal de coût

  • Le meilleur réglage mémoire minimise le coût total.
  • La courbe descend puis se stabilise ou remonte.
  • Re-testez après chaque changement.

Courbe coût vs mémoire

Applications serverless avec AWS Lambda

Mesurer avec CloudWatch

  • Suivre Duration et Init duration.
  • Suivre erreurs et throttles.
  • Surveiller les queues de latence (p95, p99).

Métriques de performance CloudWatch

Applications serverless avec AWS Lambda

Réduire les cold starts

  • Réduire ce qui s'exécute à l'init.
  • Garder un package léger.
  • Réutiliser les initialisations coûteuses.
  • Envisager des environnements provisionnés.

Checklist de réduction des cold starts

Applications serverless avec AWS Lambda

Points clés

  • Savoir où part le temps.
  • Réutiliser les clients et mettre en cache prudemment.
  • La mémoire influe sur CPU et durée.
  • Mesurer chaque changement.

Points clés sur la performance

Applications serverless avec AWS Lambda

Passons à la pratique !

Applications serverless avec AWS Lambda

Preparing Video For Download...