Stage de fin d’études – dotcloud

465 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
465
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×