Serverless starter
on August 29, 2020
Il s'en est passé des changements depuis j'étais hébergé gratuitement sur les pages personnelles free. Le service est gratuit et le déploiement se fait via FTP. Mais c'était un bon point de départ pour https://darkwood.fr lorsqu'on a zéro budget pour un étudiant. Ensuite le switch chez Gandi pour avoir un hébergement dédié plus professionnel pour une offre d'une dizaines d'euros par mois dans les années 2013. Cependant, avec le temps, j'ai switché sur l'offre AWS Lightsail pour réduire encore mes dépenses mensuelles et de pouvoir configurer un Debian dédié pour 3,5€ par mois. Cependant, il est possible de faire encore mieux !
Aujourd'hui la virtualisation, le développement de sites internets sous docker permet de conteneuriser les services. Il est possible de construire des solutions PAAS dites "serverless". C'est à dire sans avoir à se soucier de la configuration des services, ces services sont facturés à l'usage. Cela peut être l'utilisation d'un espace disque dynamique via S3, mais aussi l'exécution de code PHP ou NodeJS via Amazon Lambda. Ou encore de déploiement de CloudFront faisant office de CDN, ce qui permet de créer un site statique avec S3 ou lier à un site dynamique avec Lambda.
Pour comprendre comment tout cela fonctionne, je vous recommande la formation de Matthieu Napoli : Serverless Visually Explained qui explique visuellement comment fonctionnent les services AWS et comment les utiliser. Serverless Symfony a aussi été une bonne inspiration pour finaliser certains points techniques, je recommande cette solution si vous souhaitez utiliser purement Symfony.
Grâce à ces différentes sources, j'ai pu configurer via le framework serverless mon propre starter https://github.com/darkwood-fr/serverless-starter qui permet d'avoir un espace avec deux environnements déploiement (production et pré-production) via des commandes Makefile, un site statique et une api liée a ce site.
Je verrais à l'avenir pour améliorer au besoin ce starter, comme par exemple avoir le choix d'utiliser une Api en NodeJS ou Symfony, un frontend en VueJS ou Gatsby, de configurer un déploiement automatique via des actions Github, et pourquoi pas avec l'aide de Seed et Netlify. Serverless Stack est un bon guide complémentaire par rapport à ce projet.
Bien sûr, je suis ouvert à toute contribution sur le starter.