Pierre-Gilles Leymarie

Stage DUT

1 Septembre 2015

  1. Company
  2. BulldozAIR 
  3. Goals
  4. Development
  5. 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