Description du projet
TraduitLa principale raison de choisir cette approche est l'économie et l'évolutivité. Le trafic est imprévisible et par à-coups : calme pendant des heures, puis une brusque montée. Nous voulons que le backend se mette à l'échelle à zéro lorsque personne ne l'utilise, et nous ne payons que pour les invocations réelles et les ressources consommées, et sous charge, il s'évolue automatiquement sans notre intervention. Les démarrages à froid doivent être maintenus dans des limites raisonnables : dimensionnement approprié de la mémoire, dépendances légères et concurrence provisionnée uniquement là où le chemin critique l'exige vraiment. Le modèle d'accès pour DynamoDB est important à concevoir à l'avance, pas à ajouter plus tard - cette décision détermine la plupart des performances et des coûts.
Tout doit être reproductible en tant qu'Infrastructure as Code - Terraform ou AWS SAM/CDK de votre choix, mais pas de clics manuels dans la console. Nous avons besoin d'environnements de développement, de staging et de production séparés créés à partir des mêmes modèles, de rôles IAM avec des permissions minimales pour chaque fonction, de journalisation et de traçage structurés (CloudWatch, X-Ray), d'alarmes pour les erreurs et le throttling, et d'un pipeline CI/CD avec déploiement à la fusion. Veuillez inclure :
— API Gateway et gestionnaires Lambda avec validation des entrées et réponses d'erreur claires ;
— conception de DynamoDB (table unique ou multi-table) avec modèles d'accès documentés ;
— EventBridge/SQS pour les tâches en arrière-plan, les réessais et les files d'attente de lettres mortes ;
— IaC complète, séparation des environnements et un pipeline de déploiement fonctionnel.