• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Stage de fin d’études – dotcloud
 

Stage de fin d’études – dotcloud

on

  • 454 views

 

Statistics

Views

Total Views
454
Views on SlideShare
454
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Stage de fin d’études – dotcloud Stage de fin d’études – dotcloud Presentation Transcript

    • 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
    • SatellitaireMono-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