SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Joffrey Fuhrer – MTI2012 – du 15/02/2012 au 15/08/2012




                                                         1
   Présentation de l’entreprise
   La team labs
   Travaux réalisés
   Conclusion



                                   2
•Historique
•Organisation




                3
   Fondée en France – 2008
   Y-Combinator – été 2010
   Financement:
     800 000$ - décembre 2010
     10 000 000$ - mars 2011
   Beta – premier PaaS multi-langage – janvier 2011
   GigaOM Structure People & Judge awards – juin 2011
   Support websockets et vertical scaling – mars 2012
                                                         4
   ~20 employés
   Principales divisions :
       Platform
       SRE (Site Reliability Engineers)
       Labs (discontinuée)
       Support
       Finances, Marketing…
                                           5
•Objectifs
•Composition
•Méthodologie




                6
 Produit focalisé
 Développeurs « full-stack »
 Participation à la construction
  communautaire…
 … En fonction de ses besoins


                                    7
   Supervision :
     Technique : Samuel Alba, engineering manager
     Produit : Solomon Hykes, CEO
   Autres membres :
     Yusuf Simonson, UNC graduate
     J.-R. Prévost, étudiant MTI-2012

                                                     8
   Scheduling :
     Product meeting 1/semaine
     Idem sprint planning
     Stand-up meeting 1/jour
   Travail :
     Expérimentations
     Interaction avec les utilisateurs
     Prise en compte des compétiteurs
                                          9
•stack.io 0.1
•Ember.js + Racer
•Stack composer
•dotcloud.js
    •Module db
    •Synchronisation
    •Considérations architecturales
    •Module Twitter
    •Authentification
•stack.io 0.2
                                      10
   Pré-existant :
       Node.js
       Communication client-serveur et serveur-serveur
       Transport : redis + websockets
       Couche évènements, couche RPC + streaming
   Réalisations :
     Interface EventEmitter
     Performance tweaks
     Bugfixing
                                                          11
   Ember.js
     SproutCore pour apps web modernes (Javascript)
     Tom Dale & Yehuda Katz
     Projet open-source
   Racer
     node.js
     Synchronisation de modèle client/serveur
     Utilisé par le framework derby
                                                       12
   Objectif : librairie d’interfaçage des deux
    systèmes
     Flexible
     Naturelle
   Résultat : projet open-source
     Présenté lors d’un meet-up Ember.js devant une
      audience de développeurs
     Publié sur github

                                                       13
   Objectif :
     Réalisation d’un outil de composition de stack
      technologique
     Intégration de services « processus », « database »
      et « services tiers »
     Déploiement automatique sur dotCloud

                                                            14
   Réalisations :
     Modèle de base de données
     Implémentation du modèle sur MongoDB
     Création d’une API REST (node.js/express/mongoose)
   Projet mis en hiatus :
     Cible mouvante
     Milestone imminente
                                                           15
   Objectif :
     Publication d’un produit réalisable en un temps court
     Proof of concept d’un produit ciblé sur les
      développeurs « full-stack »
     A l’origine, amélioration de la plateforme jsFiddle
      avec services « cloud ».
      ▪ Développement d’une extension Chrome
      ▪ Déploiement automatisé
     Open-source
                                                              16
 Sauvegarde des données dans une base de
  données MongoDB
 API simpliste, contraintes minimales
    dotcloud.db.insert(‘people’, {
        firstname : ‘John’,
        lastname : ‘Doe’,
        age : 22
    }, function(err, result) {
      if (!err)
        console.log(‘success !’);
    });
                                            17
   Objectifs :                            var people =
     Synchronisation des données en         dotcloud.sync.
      temps réel entre clients – serveur       synchronize(‘people’);

     Interface doit sembler naturelle     people.push({
      pour le développeur                    firstname: ‘John’,
                                             lastname: ‘Doe’,
   Réalisation :                            age: 22
     Module « sync »                      });

     Utilisation de stack.io + MongoDB    people.observe(function(type) {
     Interface « array-like »               if (type == ‘insert’)
                                               console.log(‘success!’)
                                           });

                                                                             18
Satellitaire




Mono-processus




                                19
   Communication avec l’API Twitter
   Abstraction du serveur
   Proof of Concept de l’intégration third party
   Support OAuth
    dotcloud.twitter.timeline(function(err, res) {
      if (err)
        return console.log('Error: ', err);

      res.forEach(function(x) {
        console.log(x.user.name, ': ', x.text);
      });
    });
                                                     20
   Ajout d’une notion de middleware dans stack.io 0.1
   … Puis portage dans version 0.2
   Création de collections privées dans sync et db
          dotcloud.db.private.insert(‘people’, {
              firstname : ‘John’,
              lastname : ‘Doe’,
              age : 22
          }, function(err, result) {
            if (!err)
              console.log(‘success !’);
          });
                                                         21
http://js.dotcloud.com


                         22
 Basé sur ZeroRPC
 Node.js + Client en Python
 Dépendance sur Redis retirée
 Couche évènementielle disparaît (peut être
  émulée grâce au streaming RPC)
 Middlewares
 Module d’authentification/autorisation + OAuth
 Meilleure stabilité mais plus complexe
                                                   23
24
   Très bonne expérience
     Start-up dynamique
     Exigence
     Responsabilisation
   Découvertes culturelles (USA/Californie/SF)
   Tremplin vers une position de platform
    engineer
                                                  25

Más contenido relacionado

Destacado

Imágenes de grecia
Imágenes de greciaImágenes de grecia
Imágenes de grecia
NINES00
 
Programación 1ª evaluación
Programación 1ª evaluaciónProgramación 1ª evaluación
Programación 1ª evaluación
Dori Castellanos
 
Présentation jjr c reil
Présentation jjr c reilPrésentation jjr c reil
Présentation jjr c reil
Céline Langlet
 
Resolució obres cobriment riera
Resolució obres cobriment rieraResolució obres cobriment riera
Resolució obres cobriment riera
ERCMalgrat
 
paquete financiero
paquete financieropaquete financiero
paquete financiero
kely16
 
Debat d'orientation sur les fp pour 2012 rapport d'information 616 senat, se...
Debat d'orientation sur les fp pour 2012  rapport d'information 616 senat, se...Debat d'orientation sur les fp pour 2012  rapport d'information 616 senat, se...
Debat d'orientation sur les fp pour 2012 rapport d'information 616 senat, se...
Ministère de l'Économie et des Finances
 
Diapositivasok
DiapositivasokDiapositivasok
Diapositivasok
chanani
 
Dossier de presse_printemps(1)
Dossier de presse_printemps(1)Dossier de presse_printemps(1)
Dossier de presse_printemps(1)
Bâle Région Mag
 

Destacado (20)

Imágenes de grecia
Imágenes de greciaImágenes de grecia
Imágenes de grecia
 
Programación 1ª evaluación
Programación 1ª evaluaciónProgramación 1ª evaluación
Programación 1ª evaluación
 
La bibliothèque dans l'inconscient collectif : une double contrainte
La bibliothèque dans l'inconscient collectif : une double contrainteLa bibliothèque dans l'inconscient collectif : une double contrainte
La bibliothèque dans l'inconscient collectif : une double contrainte
 
Présentation jjr c reil
Présentation jjr c reilPrésentation jjr c reil
Présentation jjr c reil
 
Théâtre la Coupole automne 2015
Théâtre la Coupole  automne 2015Théâtre la Coupole  automne 2015
Théâtre la Coupole automne 2015
 
Analysez le comportement de vos visiteurs
Analysez le comportement de vos visiteurs Analysez le comportement de vos visiteurs
Analysez le comportement de vos visiteurs
 
Cómo entender a la audiencia e internet. SEO & web analytics
Cómo entender a la audiencia e internet. SEO & web analyticsCómo entender a la audiencia e internet. SEO & web analytics
Cómo entender a la audiencia e internet. SEO & web analytics
 
Resolució obres cobriment riera
Resolució obres cobriment rieraResolució obres cobriment riera
Resolució obres cobriment riera
 
Manual de reflexion
Manual de reflexionManual de reflexion
Manual de reflexion
 
A María
A MaríaA María
A María
 
paquete financiero
paquete financieropaquete financiero
paquete financiero
 
Debat d'orientation sur les fp pour 2012 rapport d'information 616 senat, se...
Debat d'orientation sur les fp pour 2012  rapport d'information 616 senat, se...Debat d'orientation sur les fp pour 2012  rapport d'information 616 senat, se...
Debat d'orientation sur les fp pour 2012 rapport d'information 616 senat, se...
 
L’heure de la sieste
L’heure de la siesteL’heure de la sieste
L’heure de la sieste
 
FR paramétrage - 1er pas
FR paramétrage - 1er pasFR paramétrage - 1er pas
FR paramétrage - 1er pas
 
Unidad 1 - Panorámica de los sistemas de comunicaciones
Unidad 1 - Panorámica de los sistemas de comunicacionesUnidad 1 - Panorámica de los sistemas de comunicaciones
Unidad 1 - Panorámica de los sistemas de comunicaciones
 
Diapositivasok
DiapositivasokDiapositivasok
Diapositivasok
 
Dossier de presse_printemps(1)
Dossier de presse_printemps(1)Dossier de presse_printemps(1)
Dossier de presse_printemps(1)
 
White paper "user provisioning"
White paper "user provisioning"White paper "user provisioning"
White paper "user provisioning"
 
Présentation Générale d'OSCAR
Présentation Générale d'OSCARPrésentation Générale d'OSCAR
Présentation Générale d'OSCAR
 
Valores TóXicos
Valores TóXicosValores TóXicos
Valores TóXicos
 

Similar a Stage de fin d’études – dotcloud

Introduction au développement Android
Introduction au développement AndroidIntroduction au développement Android
Introduction au développement Android
Steve Tremblay
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
MongoDB
 
PowerPoint sur le Web 2.0
PowerPoint sur le Web 2.0PowerPoint sur le Web 2.0
PowerPoint sur le Web 2.0
guest4ca1b
 
Slideshare - Web 2.0
Slideshare - Web 2.0Slideshare - Web 2.0
Slideshare - Web 2.0
agirard003
 

Similar a Stage de fin d’études – dotcloud (20)

Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Introduction au développement Android
Introduction au développement AndroidIntroduction au développement Android
Introduction au développement Android
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
OCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCS
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNuke
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le Cloud
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
 
PowerPoint sur le Web 2.0
PowerPoint sur le Web 2.0PowerPoint sur le Web 2.0
PowerPoint sur le Web 2.0
 
Slideshare - Web 2.0
Slideshare - Web 2.0Slideshare - Web 2.0
Slideshare - Web 2.0
 

Stage de fin d’études – dotcloud

  • 1. Joffrey Fuhrer – MTI2012 – du 15/02/2012 au 15/08/2012 1
  • 2. Présentation de l’entreprise  La team labs  Travaux réalisés  Conclusion 2
  • 4. Fondée en France – 2008  Y-Combinator – été 2010  Financement:  800 000$ - décembre 2010  10 000 000$ - mars 2011  Beta – premier PaaS multi-langage – janvier 2011  GigaOM Structure People & Judge awards – juin 2011  Support websockets et vertical scaling – mars 2012 4
  • 5. ~20 employés  Principales divisions :  Platform  SRE (Site Reliability Engineers)  Labs (discontinuée)  Support  Finances, Marketing… 5
  • 7.  Produit focalisé  Développeurs « full-stack »  Participation à la construction communautaire…  … En fonction de ses besoins 7
  • 8. Supervision :  Technique : Samuel Alba, engineering manager  Produit : Solomon Hykes, CEO  Autres membres :  Yusuf Simonson, UNC graduate  J.-R. Prévost, étudiant MTI-2012 8
  • 9. Scheduling :  Product meeting 1/semaine  Idem sprint planning  Stand-up meeting 1/jour  Travail :  Expérimentations  Interaction avec les utilisateurs  Prise en compte des compétiteurs 9
  • 10. •stack.io 0.1 •Ember.js + Racer •Stack composer •dotcloud.js •Module db •Synchronisation •Considérations architecturales •Module Twitter •Authentification •stack.io 0.2 10
  • 11. Pré-existant :  Node.js  Communication client-serveur et serveur-serveur  Transport : redis + websockets  Couche évènements, couche RPC + streaming  Réalisations :  Interface EventEmitter  Performance tweaks  Bugfixing 11
  • 12. Ember.js  SproutCore pour apps web modernes (Javascript)  Tom Dale & Yehuda Katz  Projet open-source  Racer  node.js  Synchronisation de modèle client/serveur  Utilisé par le framework derby 12
  • 13. Objectif : librairie d’interfaçage des deux systèmes  Flexible  Naturelle  Résultat : projet open-source  Présenté lors d’un meet-up Ember.js devant une audience de développeurs  Publié sur github 13
  • 14. Objectif :  Réalisation d’un outil de composition de stack technologique  Intégration de services « processus », « database » et « services tiers »  Déploiement automatique sur dotCloud 14
  • 15. Réalisations :  Modèle de base de données  Implémentation du modèle sur MongoDB  Création d’une API REST (node.js/express/mongoose)  Projet mis en hiatus :  Cible mouvante  Milestone imminente 15
  • 16. Objectif :  Publication d’un produit réalisable en un temps court  Proof of concept d’un produit ciblé sur les développeurs « full-stack »  A l’origine, amélioration de la plateforme jsFiddle avec services « cloud ». ▪ Développement d’une extension Chrome ▪ Déploiement automatisé  Open-source 16
  • 17.  Sauvegarde des données dans une base de données MongoDB  API simpliste, contraintes minimales dotcloud.db.insert(‘people’, { firstname : ‘John’, lastname : ‘Doe’, age : 22 }, function(err, result) { if (!err) console.log(‘success !’); }); 17
  • 18. Objectifs : var people =  Synchronisation des données en dotcloud.sync. temps réel entre clients – serveur synchronize(‘people’);  Interface doit sembler naturelle people.push({ pour le développeur firstname: ‘John’, lastname: ‘Doe’,  Réalisation : age: 22  Module « sync » });  Utilisation de stack.io + MongoDB people.observe(function(type) {  Interface « array-like » if (type == ‘insert’) console.log(‘success!’) }); 18
  • 20. Communication avec l’API Twitter  Abstraction du serveur  Proof of Concept de l’intégration third party  Support OAuth dotcloud.twitter.timeline(function(err, res) { if (err) return console.log('Error: ', err); res.forEach(function(x) { console.log(x.user.name, ': ', x.text); }); }); 20
  • 21. Ajout d’une notion de middleware dans stack.io 0.1  … Puis portage dans version 0.2  Création de collections privées dans sync et db dotcloud.db.private.insert(‘people’, { firstname : ‘John’, lastname : ‘Doe’, age : 22 }, function(err, result) { if (!err) console.log(‘success !’); }); 21
  • 23.  Basé sur ZeroRPC  Node.js + Client en Python  Dépendance sur Redis retirée  Couche évènementielle disparaît (peut être émulée grâce au streaming RPC)  Middlewares  Module d’authentification/autorisation + OAuth  Meilleure stabilité mais plus complexe 23
  • 24. 24
  • 25. Très bonne expérience  Start-up dynamique  Exigence  Responsabilisation  Découvertes culturelles (USA/Californie/SF)  Tremplin vers une position de platform engineer 25