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
Merci !
