Jamstack: construire une architecture moderne pour des sites Web plus rapides, sécurisés et évolutifs
image fournie par: netlify
Ces dernières années, la technologie de développement Web a changé chaque jour qui passe. Cet article présentera l'architecture Jamstack et clarifiera ses concepts et ses avantages.
Dans le passé, l'architecture de lampe a dominé le développement de sites Web dynamiques. Par la suite, l'architecture moyenne a jeté les bases d'une nouvelle génération d'applications Web. Aujourd'hui, avec la montée des API et des composants réutilisables, les sites Web statiques sont redevenus la tendance. C'est une façon de "revenir aux bases", mais pas exactement.
Points de base:
Qu'est-ce que Jamstack?
Jamstack est une architecture qui redéfinit le Web moderne pour créer des sites Web plus rapides et plus sûrs. Ces sites sont mieux évolutifs et sont plus faciles (plus amusants) à développer et à maintenir avec le bon ensemble d'outils. décomposons ce terme:
mais très similaire à ce qu'Ajax (asynchrone javascript et xml) a été créé par une autre société, Adaptive Path, cette année - bien que l'API XMLHTTPREQUEST (XHR) qui a rendu Ajax possible existait également pendant un certain temps, AJAX et JAMSTACK IT IT IT IT IS Une amélioration rafraîchissante de la philosophie existante et a un objectif légitime qui a été rapidement adopté par la communauté. Ce battage médiatique est bien mérité: cette façon de travailler a inspiré de nombreux développeurs du monde entier.
"site Web statique" est l'opposé du "site Web dynamique", non? Alors, comment pouvons-nous fournir des interactions riches et dynamiques en utilisant uniquement des fichiers HTML simples? La réponse est JavaScript.
JavaScript a beaucoup changé depuis la première guerre du navigateur, et avec l'émergence de Node.js et l'émergence de bibliothèques telles que React, Angular et Vue.js, il s'est consolidé comme un statut de langage de programmation universel. Les possibilités de concevoir des interfaces utilisateur avancées (UIS) sont infinies.
Bien sûr, JavaScript n'est pas une panacée. Vous ne les utilisez probablement pas pour l'analyse des données ou l'IA. Mais pour le développement Web, il n'y a pas grand-chose à voir avec l'API que vous ne pouvez pas faire avec les méthodes JavaScript, car il est très probable que quelqu'un ait créé un microservice pour cela.
Et si vous pouvez encapsuler tous ces processus et balisages en composants réutilisables - vous pouvez vous brancher à tout moment où vous avez besoin d'une fonctionnalité spécifique - vous pouvez conserver des heures de travail à chaque fois.
Il s'agit de la pile J · A · M: JavaScript, API, Tags.
Tous ce sont des sujets chauds dans le développement Web, ils sont étroitement liés, mais pas exactement les mêmes. Vous entendrez ces termes assez souvent, alors clarifions certains d'entre eux depuis le début.
couplé fait référence au contenu d'un site Web créé, géré et stocké sur le backend du site Web (où se trouve la base de données, comme le panneau d'administration WordPress). Ce contenu est ensuite extrait du backend et représenté dans le navigateur via une interface frontale (comme un modèle WordPress). Dans une certaine mesure, les applications "couplées" sont des applications traditionnellement "pile complète", et le backend et le frontend sont des aspects différents de la même application. en revanche,
découplagesignifie que le backend et le frontend sont gérés séparément - cela signifie que la base de données et les outils de gestion seront situées sur un serveur, tandis que le frontend sera situé sur un autre serveur . Bien sûr, un support est nécessaire pour connecter les deux, généralement une API. De plus, comme le backend est désormais en fait séparé du frontend, il peut en fait y avoir plusieurs frontendons à différents endroits! (Pensez aux différentes vitrines en utilisant le même moteur, comme Shopify.) En bref, le logiciel
sans têten'a pas du tout de couche frontale ou de présentation. Par exemple, un CMS sans tête peut générer du contenu statique et le pousser n'importe où: applications mobiles, appareils IoT, sites Web statiques. Certes, il s'agit également d'une situation de "découplage", mais ici, vous n'avez peut-être même pas besoin d'une API. Pensez à un moteur WordPress qui exporte les publications comme des fichiers HTML statiques pour le service: c'est sans tête. En fait, vous êtes maintenant sur une page générée de cette manière.
Autrement dit, monotype peut être défini comme un logiciel construit dans son ensemble. Les exemples peuvent inclure des applications mobiles, la plupart des applications qui peuvent être installées sur votre ordinateur et des applications Web telles que WordPress. Ces applications peuvent toujours avoir des «modules» ou des «composants» internes, mais nous disons que ceux-ci sont étroitement couplés parce qu'ils font partie intégrante de l'application, sans eux, l'application ne fonctionnera pas. En revanche, les composants logiciels couplés à couplage lâche fonctionnent plus comme des plugins qui peuvent être supprimés ou remplacés, et la fonctionnalité peut changer, mais le noyau de l'application peut toujours fonctionner. Ce principe permet une fonctionnalité «d'externalisation» via des API tierces (communément appelées «microservices») - car ils fournissent des fonctionnalités d'accessibilité (redimensionnement de l'image, connexion, stockage) qui ne font pas intrinsèquement intégrale à l'application.
Informatique sans serveur et traditionnelAuthentic, "Serverless" est un peu impropre. Quel que soit le type de travail informatique que vous faites, le serveur sera impliqué. Cependant, la façon dont vous accédez et gérez vos serveurs peut être très différente. Dans le modèle traditionnel , vous pouvez avoir un serveur physique réel (parfois appelé Bare Metal), ou un serveur privé virtuel où les ressources vous sont attribuées - et d'autres utilisateurs - dans le serveur physique. Les ressources sont limitées et que vous utilisiez 100% des ressources ou non, vous devez les payer comme si vous les utilisiez.
Modèle traditionnel
Modèle sans serveur
Serveur physique avec des ressources limitées
Pool de ressources illimité
Architecture plus fiable *
sujette à l'échec (tel que la défaillance du disque dure)
Si statique est le meilleur choix, alors quoi de mieux que de convertir un blog Dynamic WordPress (WP) en blog statique? Ce faisant, nous réduirons la vitesse et la latence de chargement des pages d'au moins un ordre de grandeur, d'améliorer considérablement la sécurité et d'améliorer notre référencement en même temps. En bref, le processus est le suivant:
Que dois-je faire avec le panneau de gestion?
Gestion du contenu (comme la modification des publications existantes) est l'endroit où les CM sans tête entre en jeu. Pour des commentaires et des newsletters, utilisez déjà des API externes (comme Disqus et MailChimp)?
Comment l'avez-vous fait? Nous ne pouvons pas couvrir les tenants et aboutissants de SSG et CMS sans tête ici, mais veuillez prêter attention aux suivis de cette série. Nous fournirons un guide étape par étape pour migrer les sites Web WordPress.
Dans la communauté de Jamstack, vous entendrez souvent "gratuit" - heureusement, ce n'est pas gratuit, car
vous devez toujours nous dire votre numéro de carte de créditEn bref, le processus est le suivant: Dans ce cas, nous prendrons notre site Web statique (par exemple, le blog que nous avons migré dans l'étude de cas 1) et le mettrons en ligne:
Déployer sur Netlify, GitLab Pages ou GitHub Pages.
La surcharge de la mise en place de fichiers HTML sur un CDN déployé est petite. N'oubliez pas qu'aucun calcul réel n'est impliqué, aucun rendu PHP n'est impliqué. Sauf si vous hébergez un site Web très populaire qui consomme beaucoup de bande passante, les entreprises ne se soucient pas d'offrir des services d'hébergement. Cela peut leur apporter une bonne publicité.
La société vous enfermera également en offrant beaucoup de cadeaux. Lorsque vous avez besoin de services avancés (vous en aurez besoin si votre entreprise se développe), vous travaillez déjà avec eux. C'est juste - et, à ce moment-là, vous devrez développer une solution temporaire pour résoudre votre problème ou utiliser le service pour une période payante.
netlify ou github / gitlab sont à la fois très simples et nécessitent un effort minimal. (Néanmoins, nous allons entrer dans le processus en détail dans l'article suivant.)
Voyons comment cette nouvelle approche se compare à la lampe ou à la pile moyenne:
lampe / pile moyenne
Jamstack
J'espère que vous avez appris les avantages de la création d'un site Web pour le moment. Mais vous pouvez toujours être sceptique quant à la façon d'effectuer les opérations les plus élémentaires sans traitement backend, telles que la connexion de l'utilisateur et la gestion ou le stockage du contenu dynamique sans bases de données relationnelles (RDBM).
Voici quelques autres exemples que vous pouvez faire avec Jamstack:
Le développement des choses est inévitable, en particulier dans le domaine informatique. Auparavant, c'était la pile de lampe, puis la pile moyenne. Maintenant, c'est Jamstack, et dans cinq à dix ans, ce sera autre chose. Il vaut mieux accepter ces modifications et les apporter la nôtre!
Apprendre de nouvelles façons de faire les choses peut sembler lourde, mais elle peut également revigorer votre passion pour le développement. Vous pouvez vous retrouver à passer moins de temps à maintenir des serveurs et à vous soucier des problèmes de sécurité. Vous pouvez constater que le développement nécessite moins d'efforts et que vos clients sont plus satisfaits. Vous pouvez même être plus compétitif (et pouvoir demander une augmentation) à cause de cela. ?
Veuillez suivre plus d'articles sur ce sujet. Bien que nous introduisions Jamstack depuis des années, il est devenu une discipline et une pratique indépendantes. Nous vous fournirons les tutoriels dont vous avez besoin pour devenir un professionnel de Jamstack et le mettre à jour dans l'index de cette page. Vous pouvez également rester à jour avec notre flux RSS ou nos médias sociaux.
et plus de travail en cours.
Qu'est-ce que Jamstack? Jamstack signifie "JavaScript, API et Tags". Il s'agit d'une architecture pour créer des sites Web et des applications Web, qui met l'accent sur le découplage de la frontale de l'arrière-end pour de meilleures performances, sécurité et expérience des développeurs.
En quoi JaESSTACK est-il différent du développement Web traditionnel? Dans le développement Web traditionnel, le serveur est responsable de la génération de HTML dynamiquement dans chaque demande. D'un autre côté, JamStack pré-construction de la page pendant le processus de construction, fournit directement des actifs statiques au client et utilise l'API pour implémenter des fonctions dynamiques.
Quels sont les principes clés de l'architecture Jamstack? Les principaux principes de Jamstack incluent le développement préalable, le développement centré sur l'API et l'utilisation d'un réseau de livraison de contenu global (CDN). Le pré-intention implique la génération de HTML statique pendant la phase de construction, tandis que l'API gère la fonctionnalité dynamique.
Quels sont les avantages de l'utilisation de Jamstack? Jamstack offre de nombreux avantages tels que des performances améliorées en raison de la génération de sites statiques, une sécurité améliorée en réduisant la surface d'attaque du serveur et en simplifié l'évolutivité avec CDN. De plus, cela conduit souvent à une meilleure expérience de développeur.
Puis-je utiliser les fonctionnalités côté serveur dans mon application Jamstack? Oui, les applications JAMSTACK peuvent tirer parti des fonctionnalités côté serveur via des fonctions ou des API sans serveur. Les fonctions sans serveur vous permettent d'exécuter du code côté serveur en réponse aux événements, en fournissant des fonctionnalités dynamiques tout en conservant les avantages de la livraison statique du site.
Jamstack convient-il à tous les types de sites Web? Jamstack convient à une grande variété de sites Web, des simples sites de blogs et de marketing aux applications Web complexes. Cependant, son applicabilité dépend des exigences spécifiques du projet et des exigences pour le traitement côté serveur en temps réel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!