Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Stage de fin d’études – dotcloud

326 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Stage de fin d’études – dotcloud

  1. 1. Joffrey Fuhrer – MTI2012 – du 15/02/2012 au 15/08/2012 1
  2. 2.  Présentation de l’entreprise La team labs Travaux réalisés Conclusion 2
  3. 3. •Historique•Organisation 3
  4. 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. 5.  ~20 employés Principales divisions :  Platform  SRE (Site Reliability Engineers)  Labs (discontinuée)  Support  Finances, Marketing… 5
  6. 6. •Objectifs•Composition•Méthodologie 6
  7. 7.  Produit focalisé Développeurs « full-stack » Participation à la construction communautaire… … En fonction de ses besoins 7
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  19. 19. SatellitaireMono-processus 19
  20. 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. 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
  22. 22. http://js.dotcloud.com 22
  23. 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. 24
  25. 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

×