Infrastructure Serverless – Partie 2/5 : Hébergement statique (Patreon)
Content
Comme vous le savez sûrement, au fil du temps le blog korben.info est devenu un site conséquent et par son nombre de page que par sa sollicitation.Régulièrement, nous cherchons et mettons en place divers outils ou méthodes dans le but d’optimiser son exploitation, c’est à dire le rendre plus performant, plus rapide, mais aussi plus stable. Inévitablement il arrive que soit l’infrastructure elle-même qui nécessite une optimisation.
Ces derniers temps, nous avons étudié la possibilité d’une transition vers une nouvelle forme d’infrastructure. Cette forme, récemment popularisé sous le nom un peu buzzword de « serverless », propose de distinguer les différentes parties d’une structure web classique pour les placer dans des environnements qui leur sont adaptés et ainsi optimiser à chaque étape.
De manière générale, nous avons définis les objectifs avec les points suivants.
Optimiser le rendu web pour gagner en performances et en dynamisme ;
Bénéficier d’un dimensionnement dynamique pour absorber le trafic tout en économisant des ressources ;
Réduire la surface d’attaque pour maximiser sa sécurité ;
Favoriser la portabilité pour simplifier le changement de solution ou de prestataire.
Dans ce dossier, nous vous proposons d’explorer et de mettre en place un schéma d’infrastructure serverless, étape par étape.
Notre dossier sur l’infrastructure serverless
Infrastructure Serverless – Partie 1 : Générateur de site
Infrastructure Serverless – Partie 2 : Hébergement statique (cet article)
Infrastructure Serverless – Partie 3 : Gestion de contenu (à venir)
Infrastructure Serverless – Partie 4 : Fonctions cloud (à venir)
Infrastructure Serverless – Partie 5 : Micro-services et conclusion (à venir)
<figure></figure>
Hébergement statique
L’origine
Le bon vieux temps du serveur dédié pour un « simple » site web parait déjà loin.
En sortie de notre précédente partie, nous avons un ensemble de fichiers HTML et les ressources respectives qui ne nécessitent aucun traitement supplémentaire, à priori.Et puisque qu’il n’y a plus qu’à les distribuer dans leur plus simple appareil, on aimerait bien éviter d’installer un serveur Nginx sur un dédié, de configurer l’envrionnement pour Apache httpd sur un mutualisé, ou même plus généralement de paramétrer quoi que se soit.
Le principe
L’hébergement statique part du principe que pour des fichiers statique, le coût CPU est négligeable, que le risque de la mutualisation est nulle puisque sans compilation, et que donc la personnalisation est minimale.
En revanche, la proximité est élément important. Utiliser un CDN permet de réduire la distance parcourue pour les requêtes, et de gagner du temps. Être directement placer sur CDN est donc le Saint Graal.
La solution
La caractéristique commune est donc d’accepter en entrée des fichiers statiques (HTML/CSS/JS) et de les distribuer sur un réseau CDN à moindre coût déjà paramétré pour les performances.
<figure></figure>
L’intérêt étant de se passer de la gestion d’un serveur tout en améliorant nettement les performances sur les temps de réponse, aucun traitement à la volée n’étant requis.
Par ailleurs, les pages étant statiques, le déplacement du site d’un hébergement statique à un autre est particulièrement facile.
L’hébergeur statique s’intègre généralement dans l’étape de la génération du site, pour une gestion du cache de compilation (évitant une régénération complète de l’intégralité des pages à chaque déclanchement) et pour une gestion des version.
L’usage simple
La référence dans l’hébergement statique est Netlify. Très simple sur la mise en place et avec quelques fonctionnalités pré-intégrées intéressantes.
Beaucoup d’autres solutions existent, dont Cloudflare Page, particulièrement attractive sur la tarification car sans limitation sur le nombre de sites, de requêtes et de bande passante, et tout aussi simple.
L’utilisation de Cloudflare Page s’intègre parfaitement avec l’offre CDN, mais elle n’est pas obligatoire, et supporte les fonctions cloud via ses Workers (voir la partie Fonctions cloud).
Une petite documentation est disponibles, mais la mise en place est toute simple.
On relie le compte GitHub avec le service de Cloudflare.
On sélectionne le dépôt.
<figure></figure>
On active le bon framework pour partir avec des valeurs par défaut adaptées.
<figure></figure>
Et on lance le déploiement.
La première compilation va se lancer automatiquement, puis de même à chaque nouveau commit sur le dépôt.
<figure></figure>
Le résultat
Le site est ainsi automatiquement compilé et déployé en statique sur un réseau de contenu adapté (en l’occurrence le CDN Cloudflare).
<figure></figure>
On a donc obtenu satisfaction vis à vis de nos objectifs principaux :
Optimiser le rendu web pour gagner en performances et en dynamisme ;↪ En effet tout le travail de rendu est géré par la compilation avant le déploiement sur le CDN.
Bénéficier d’un dimensionnement dynamique pour éviter la réservation inutile de ressources ;↪ Le CDN gère tout seul les ressources dont il a besoin pour répondre correctement.
La suite
Une fois le site statique déployé sur un hébergement statique, c’est certes tout beau et tout rapide, si l’on veut efficacement y ajouter du contenu concret on est bloqué. Pour y remédier, on introduit un gestionnaire de contenu adapté, et ce sera le sujet de notre prochain article de la série.