SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

Les Réseaux de MMM
Les Réseaux de MMMLes Réseaux de MMM
Les Réseaux de MMMMedmultimed
 
Les médias francophones à l'ère numérique
Les médias francophones à l'ère numériqueLes médias francophones à l'ère numérique
Les médias francophones à l'ère numériqueULg - UCLMons
 
Unificacion De Areas Administrativas
Unificacion De Areas AdministrativasUnificacion De Areas Administrativas
Unificacion De Areas AdministrativasUnificacion
 
Antonio Gaudí
Antonio GaudíAntonio Gaudí
Antonio GaudíRoss_Elena
 
Cedefop Trame Memoire V1 0
Cedefop Trame Memoire V1 0Cedefop Trame Memoire V1 0
Cedefop Trame Memoire V1 0Shingo Hamada
 
Obama et sa Mère
Obama et sa MèreObama et sa Mère
Obama et sa MèreDIALLO89
 
Es hora de fiesta
Es hora de fiestaEs hora de fiesta
Es hora de fiestachorradas
 
Frutas S3 B 19
Frutas S3 B 19Frutas S3 B 19
Frutas S3 B 19diegooolz
 
CASD -données statistique publique française insee mai 2011 (http://www.insee...
CASD -données statistique publique française insee mai 2011 (http://www.insee...CASD -données statistique publique française insee mai 2011 (http://www.insee...
CASD -données statistique publique française insee mai 2011 (http://www.insee...Ministère de l'Économie et des Finances
 
\"Incorporación de recursos informático para la articulación entre Nivel Inic...
\"Incorporación de recursos informático para la articulación entre Nivel Inic...\"Incorporación de recursos informático para la articulación entre Nivel Inic...
\"Incorporación de recursos informático para la articulación entre Nivel Inic...yamila
 
Trabajo De Sociedad
Trabajo De SociedadTrabajo De Sociedad
Trabajo De Sociedadguest4a19ec
 
Seminario conjunto AHCIET – CITEL
Seminario conjunto AHCIET – CITELSeminario conjunto AHCIET – CITEL
Seminario conjunto AHCIET – CITELguest1a502a0
 
Volcanes 090304121024 Phpapp02
Volcanes 090304121024 Phpapp02Volcanes 090304121024 Phpapp02
Volcanes 090304121024 Phpapp02imsafu
 

En vedette (18)

Les Réseaux de MMM
Les Réseaux de MMMLes Réseaux de MMM
Les Réseaux de MMM
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Les médias francophones à l'ère numérique
Les médias francophones à l'ère numériqueLes médias francophones à l'ère numérique
Les médias francophones à l'ère numérique
 
Unificacion De Areas Administrativas
Unificacion De Areas AdministrativasUnificacion De Areas Administrativas
Unificacion De Areas Administrativas
 
Antonio Gaudí
Antonio GaudíAntonio Gaudí
Antonio Gaudí
 
Cedefop Trame Memoire V1 0
Cedefop Trame Memoire V1 0Cedefop Trame Memoire V1 0
Cedefop Trame Memoire V1 0
 
Obama et sa Mère
Obama et sa MèreObama et sa Mère
Obama et sa Mère
 
Es hora de fiesta
Es hora de fiestaEs hora de fiesta
Es hora de fiesta
 
Frutas S3 B 19
Frutas S3 B 19Frutas S3 B 19
Frutas S3 B 19
 
CASD -données statistique publique française insee mai 2011 (http://www.insee...
CASD -données statistique publique française insee mai 2011 (http://www.insee...CASD -données statistique publique française insee mai 2011 (http://www.insee...
CASD -données statistique publique française insee mai 2011 (http://www.insee...
 
\"Incorporación de recursos informático para la articulación entre Nivel Inic...
\"Incorporación de recursos informático para la articulación entre Nivel Inic...\"Incorporación de recursos informático para la articulación entre Nivel Inic...
\"Incorporación de recursos informático para la articulación entre Nivel Inic...
 
Web 2
Web 2Web 2
Web 2
 
Trabajo De Sociedad
Trabajo De SociedadTrabajo De Sociedad
Trabajo De Sociedad
 
Seminario conjunto AHCIET – CITEL
Seminario conjunto AHCIET – CITELSeminario conjunto AHCIET – CITEL
Seminario conjunto AHCIET – CITEL
 
Ag 2013 cecca asmerade
Ag 2013 cecca asmeradeAg 2013 cecca asmerade
Ag 2013 cecca asmerade
 
La Entrega
La EntregaLa Entrega
La Entrega
 
Volcanes 090304121024 Phpapp02
Volcanes 090304121024 Phpapp02Volcanes 090304121024 Phpapp02
Volcanes 090304121024 Phpapp02
 
Safari 1
Safari 1Safari 1
Safari 1
 

Similaire à Stage de fin d’études – dotcloud

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 CloudTugdual Grall
 
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 8davrous
 
Introduction au développement Android
Introduction au développement AndroidIntroduction au développement Android
Introduction au développement AndroidSteve 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-phpapp01MongoDB
 
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?Microsoft
 
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?benjguin
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
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 SCSOCCIware
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNukeMicrosoft
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012Cyril P
 
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.5Microsoft
 
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 XamarinThierry Buisson
 
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)Restlet
 
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 CloudMicrosoft
 
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 2018Cedric Girard
 
PowerPoint sur le Web 2.0
PowerPoint sur le Web 2.0PowerPoint sur le Web 2.0
PowerPoint sur le Web 2.0guest4ca1b
 
Slideshare - Web 2.0
Slideshare - Web 2.0Slideshare - Web 2.0
Slideshare - Web 2.0agirard003
 

Similaire à 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?
 
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
 
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