

Pierre-Gilles Leymarie
Stage DUT
1 Septembre 2015

- Company
- BulldozAIR
- Goals
- Development
- Video


BlockBase






Paris 15
Boucicaut
Startup Incubator


BlockBase

BlockBase



BulldozAIR

Utilisé par 6000 entreprises


BulldozAIR

Objectif : Améliorer la communication chantier - bureau

BulldozAIR






BulldozAIR
API
{
id: '9af06b3c-08e0-420c-88e9-fc50be052098',
title: 'Une note',
number: 1,
is_terminated: false,
project_id: '912b4512-5d6d-4887-9c11-e2fadabe2490',
file_id: '2c8dab58-7f4a-466b-8bf2-5feebd1ff329',
created_by: '17ca2780-4344-422b-a8a4-ab2032f19e9a',
updated_by: '17ca2780-4344-422b-a8a4-ab2032f19e9a',
created_at: Tue Jun 23 2015 11:31:48 GMT+0200 (CEST),
updated_at: Tue Jun 23 2015 11:31:48 GMT+0200 (CEST),
latest_from_server: Tue Jun 23 2015 11:31:48 GMT+0200 (CEST),
is_deleted: false
}
GET /notes/9af06b3c-08e0-420c-88e9-fc50be052098

Backend actuel


- Problèmes de performances
- Code difficilement factorisable
- Très peu souple
- Librairie cliente peu mises à jour

Les choix technologiques
Cahier des charges
- Synchronisation avec les apps Mobiles
- Performances
- Factorisation du code
- Souplesse
- Légèreté


Les choix technologiques
Benchmark de Sails.js

Execution time (hr): 1s 697.814605ms
Execution time (hr): 2s 230.95525ms
Execution time (hr): 2s 631.891823ms
Execution time (hr): 2s 938.193255ms
4 * 200 insertions simultanées

Les choix technologiques
Express


Les choix technologiques
La base de donnée


- Orienté graphe
- Très performant avec les données associatives
- Payant pour les entreprises
- Programme Java lourd en mémoire
- BDD relationnelle libre
- Très performant avec les gros lots de données
- Procédure stockée
- Nombreux types ( UUID, Json )

Les choix technologiques
Architecture micro-services



Les choix technologiques
Architecture micro-services

- Load-balancing avec Nginx
- Un event-bus
- Email Service
- Scheduler Service

Les choix technologiques
Docker
Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur virtuel, qui pourra être exécuté sur n'importe quel serveur Linux


Le développement
Test Unitaires & d'intégrations

- Framework Mocha
- 744 tests
- 98% de couverture de code

Le développement
L'intégration continue


Le développement
Tests de charges


Conclusion
Bilan de ces 3 mois
- Choix technologiques
- De nombreux benchmarks
- Plusieurs "Proof of Concept"
- Test-driven development
- 138 routes d'API écrites entièrement testée
- Un contrat d'apprentissage Ingénieur de 3 ans
Video
deck
By Pierre-Gilles Leymarie
deck
- 448