Architecture WEB
avec NodeJS et les micro-services
about:nfroidure
Web Platform Architect
Whook Framework creator
Building softwares for Lille's innovative startups since JavaScript is a hot topic.
Almost passed the Rust compiler checks once.
Quand on annonce aux devs qu'on migre sur NodeJS
Quand l'appli monte en charge
NodeJS
- Technologie relativement jeune
- Pas encore d' “état de l'art”
- Trop de choix ?
Les services WEB
Des machines à état
Service Web REST
GET
Récupérer un état
PUT/POST/DELETE
Modifier un état
Base de donnée
SELECT
Récupérer un état
INSERT/UPDATE/DELETE
Modifier un état
HTTP(État)
- HTTP(db)
- HTTP(fs)
- HTTP(redis)
- HTTP(time, redis, fs)
- HTTP(...)
Flow HTTP
-
Vérification de la requête
-
Lecture / modification d'état
-
Réponse HTTP quand transaction effectuée
-
Déclenchement d'actions en conséquence (envoi de mails, appels d'API tierces...)
Exemple
La distribution de cacahuètes, une architecture scalable
HTTP request
HTTP response
Frontaux REST
Services
Bus
Vide
Monnayeur plein
Avarie
Vente
Outils
Process manager
- Forever
- PM2
- ...
NGinx
- Routing
- Load-balancing
- SSL
Bus
- AMQP
- Amazon SQS
Services
- Démons personnalisés
- Services externes
Déploiement automatisé
- Ansible
- Docker
- Cloud (Amazon, CleverCloud)
- Administrateur système
Monitoring
- Munin
- KeyMetrics
- New Relic
- ...
Pro tips
Éviter les effets de bord
Pas de RPC
Le seul point d'entrée est l'API Rest
Log
Everything
Fonctions pures
Gorilla banana
Dépendences
code != état
Learn REST
Code review
Hackathon Level Backend
Use PUT
MicroServices 1rst
Just fake a x-process bus
No more POO
Write tests
and keep your job