* Neo Ici ! C'est un aperçu gratuit d'une lettre réservée aux abonnés, exclusive à mes membres dorés. Pour toute l'expérience, mettre à jour votre abonnement. === Je cherche la newsletter auteurs invités qui peuvent écrire sur la conception du système. Vous recevrez également une juste compensation. Si vous êtes intéressé, répondez à ce courriel. Maintenant, retour à la newsletter d'aujourd'hui... Ce que vous devez maîtriser (et éviter) pour construire des API rapides, fiables et évolutives#165: Neuf conseils pour les API à haut rendement
Chaque demande nécessite du travail... Pars la charge utile, interroge la base de données, emballe la réponse, puis renvoie-la. Chaque étape prend du temps... À mesure que le trafic augmente, ces petits retards s'additionnent :
La solution n'est PAS d'écrire un code plus rapide. Au lieu de cela, construire des systèmes plus intelligents qui font moins de travail, gérer plus de trafic, et rester rapide sous la pression. Laissez plonger dans des façons éprouvées de construire des API haute performance... ChapitreTransformez vos idées en prototypes interactifs en minutes (Partenaire)Tout le monde a des idées de produits... Mais la partie HARD est de les transformer en quelque chose que les gens peuvent cliquer, tester et donner des commentaires avant de passer des semaines à le construire. C'est là que Marque Figma entre... Avec Figma Faites, vous pouvez transformer des idées ou des conceptions Figma existantes en prototypes réalistes et interactifs pour explorer les flux d'utilisateurs, valider les concepts et itérer plus rapidement. Voici ce que vous pouvez faire:
Que vous soyez concepteur, PM, fondateur ou ingénieur, Figma Make vous aide à passer du concept à un prototype testable beaucoup plus rapidement. (Merci à Figma pour s'associer à cette newsletter.) ChapitreVoici ce qui se trouve dans cette newsletter:
Chapitre1. Cachage et compressionSi les réponses n'ont pas changé, vous devriez STOP les recalculer. C'est l'idée centrale derrière cache: stocker les réponses afin de les réutiliser plus tard. Cela saute les opérations coûteuses telles que les requêtes de base de données, la manipulation de données et/ou les appels API. Voici comment ça marche :
La mise en cache est utile pour les données qui ne changent PAS souvent. Pensez à des demandes comme des recherches de profil ou de catalogue de produits. Les implémentations populaires sont des caches en mémoire (Redis, Memcaché) et caches de bord (Rapidement, Nuageux) . Descendants de la mise en cache
Il n'y a que deux choses difficiles dans l'informatique : l'invalidation du cache & les noms. -- Phil Karlton Compression expliquéeSi les réponses sont trop grandes, les réduire. C'est l'idée centrale derrière compression: réduire la charge utile avant de l'envoyer sur le réseau. Il supprime redondance, comme les caractères répétés ou le formatage. Un résultat plus petit mais égal voyage plus rapidement et utilise moins de bande passante. Voici comment ça marche :
La compression fonctionne bien pour les grandes réponses JSON/binary. Certains formats de compression populaires sont Gzip et Brotli. D'autres options sont utilisées Protobuf ou Avro formats qui réduisent la taille de la charge utile par conception. En dessous de la compression
A emporter
Les deux accélèrent votre API lorsqu'elle est utilisée sélectivement et mesurée par rapport à leurs compromis. Chapitre2. Équilibrage et calibrage automatique des charges
Chaque demande que votre API obtient est un . À mesure que le trafic augmente, une machine ne peut pas tout faire. Le système ralentit, les files d'attente se forment et les utilisateurs attendent. Ajouter plus de serveurs aide, mais seulement si vous pouvez partager le travail et les gérer correctement. C'est ce que font l'équilibrage de charge et l'échelle automatique. Équilibrage des charges expliquéSi un serveur est occupé, vous devriez diriger de nouvelles requêtes vers d'autres serveurs. C'est l'idée clé derrière équilibre de charge. Il diffuse le trafic entrant sur de nombreux serveurs de sorte qu'aucun ne soit coincé à faire tout le travail. C'est comme un flic qui dirige les voitures vers les voies ouvertes. Voici comment ça marche :
L'équilibrage des charges rend votre système plus rapide et plus fiable. Si un serveur échoue ou est dépassé, d'autres prennent le relais. L'équilibrage des charges est idéal pour les API web, les microservices et les systèmes à forte circulation. Vous en construisez rarement vous-même, mais utilisez des solutions existantes. Certaines implémentations populaires sont AWS ELB, HAProxyet Nginx. Abaisse de l'équilibrage de la charge
Autoscalage expliquéSi les serveurs ne peuvent pas suivre, vous ne devriez pas ajouter plus manuellement ; laissez le système le faire pour vous. C'est l'idée derrière autotarification. Il ajoute/supprime automatiquement les serveurs lorsque la charge change. C'est comme appeler des chefs supplémentaires quand un restaurant reçoit une rafale de commandes, puis les renvoyer à la maison quand il se calme. Voici comment ça marche :
L'automatisation est courante dans les systèmes avec des charges de travail imprévisibles et des pics de trafic. Les outils populaires sont Kubernetes HPA & Groupes de calibrage automatique AWS. En dessous de l'échelle automatique
A emporterL'équilibrage de charge s'étend sur les serveurs et empêche la surcharge. Autoscaling ajoute/supprime des serveurs dans le système et gère la capacité du système. Ensemble, ils rendent les API plus rapides, stables et prêtes pour les changements de trafic. Chapitre3. Traitement asynchrone
Les tâches comme l'envoi de courriels, la lecture de fichiers ou les services d'appel passent beaucoup de temps à attendre les entrées/sorties (Autres) . Pendant l'attente, le serveur n'utilise pas efficacement le processeur. Si votre API attend la fin de ces longues tâches, les utilisateurs éprouvent un temps de réponse lent. Traitement asynchrone Résoudre ce problème. Il permet à l'API de réagir immédiatement pendant que les tâches lourdes s'exécutent en arrière-plan. Voici comment ça marche :
Il aime passer commande dans un restaurant et recevoir un buzzer: Vous pouvez continuer à faire d'autres choses pendant que la cuisine termine votre repas, et le restaurant continue de servir de nouveaux clients. Le traitement asynchrone est idéal pour les systèmes à forte circulation, les charges de travail imprévisibles ou les tâches d'OI lentes. Il découple la manipulation des demandes de travail lourd, en maintenant les API rapides et réactives. Les outils populaires sont LapinMQ, Kafka & Céleri. Défauts du traitement asynchrone
A emporterLe traitement asynchrone maintient les APIs réceptives en déchargeant les tâches d'OI lentes aux travailleurs de fond. Il échange la simplicité pour l'évolutivité, rendant les systèmes plus rapides sous charge mais plus difficiles à surveiller et à déboguer. ChapitreRappel : c'est un teaser de la newsletter réservée aux abonnés, exclusive à mes membres dorés. Lorsque vous mettez à niveau, vous obtiendrez :
Prêt pour la meilleure partie ? Continuez à lire avec un essai gratuit de 7 joursAbonnez-vous à Le Bulletin de la conception du système pour continuer à lire ce post et obtenir 7 jours d'accès gratuit aux archives complètes du post. Un abonnement vous donne :
|