Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Stage de fin d’études – dotcloud

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 25 Publicité

Plus De Contenu Connexe

Similaire à Stage de fin d’études – dotcloud (20)

Publicité

Plus récents (20)

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. Satellitaire Mono-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

×