Download - Stage de fin d’études – dotcloud
![Page 1: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/1.jpg)
Joffrey Fuhrer – MTI2012 – du 15/02/2012 au 15/08/2012
1
![Page 2: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/2.jpg)
Présentation de l’entreprise La team labs Travaux réalisés Conclusion
2
![Page 3: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/3.jpg)
•Historique •Organisation
3
![Page 4: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/4.jpg)
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
![Page 5: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/5.jpg)
~20 employés Principales divisions : Platform
SRE (Site Reliability Engineers)
Labs (discontinuée)
Support
Finances, Marketing…
5
![Page 6: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/6.jpg)
•Objectifs •Composition •Méthodologie
6
![Page 7: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/7.jpg)
Produit focalisé Développeurs « full-stack » Participation à la construction
communautaire… … En fonction de ses besoins
7
![Page 8: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/8.jpg)
Supervision :
Technique : Samuel Alba, engineering manager
Produit : Solomon Hykes, CEO
Autres membres :
Yusuf Simonson, UNC graduate
J.-R. Prévost, étudiant MTI-2012
8
![Page 9: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/9.jpg)
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
![Page 10: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/10.jpg)
•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
![Page 11: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/11.jpg)
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
![Page 12: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/12.jpg)
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
![Page 13: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/13.jpg)
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
![Page 14: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/14.jpg)
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
![Page 15: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/15.jpg)
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
![Page 16: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/16.jpg)
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
![Page 17: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/17.jpg)
Sauvegarde des données dans une base de données MongoDB
API simpliste, contraintes minimales
17
dotcloud.db.insert(‘people’, {
firstname : ‘John’,
lastname : ‘Doe’,
age : 22
}, function(err, result) {
if (!err)
console.log(‘success !’);
});
![Page 18: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/18.jpg)
Objectifs : Synchronisation des données en
temps réel entre clients – serveur Interface doit sembler naturelle
pour le développeur Réalisation :
Module « sync » Utilisation de stack.io + MongoDB Interface « array-like »
18
var people =
dotcloud.sync.
synchronize(‘people’);
people.push({
firstname: ‘John’,
lastname: ‘Doe’,
age: 22
});
people.observe(function(type) {
if (type == ‘insert’)
console.log(‘success!’)
});
![Page 19: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/19.jpg)
19
Mono-processus
Satellitaire
![Page 20: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/20.jpg)
Communication avec l’API Twitter Abstraction du serveur Proof of Concept de l’intégration third party Support OAuth
20
dotcloud.twitter.timeline(function(err, res) {
if (err)
return console.log('Error: ', err);
res.forEach(function(x) {
console.log(x.user.name, ': ', x.text);
});
});
![Page 21: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/21.jpg)
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
21
dotcloud.db.private.insert(‘people’, {
firstname : ‘John’,
lastname : ‘Doe’,
age : 22
}, function(err, result) {
if (!err)
console.log(‘success !’);
});
![Page 22: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/22.jpg)
http://js.dotcloud.com
22
![Page 23: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/23.jpg)
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
![Page 24: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/24.jpg)
24
![Page 25: Stage de fin d’études – dotcloud](https://reader033.vdocuments.fr/reader033/viewer/2022061217/54b44f504a7959f44a8b4594/html5/thumbnails/25.jpg)
Très bonne expérience Start-up dynamique
Exigence
Responsabilisation Découvertes culturelles (USA/Californie/SF) Tremplin vers une position de platform
engineer
25