Stage de fin d’études – dotcloud

25
Joffrey Fuhrer MTI2012 du 15/02/2012 au 15/08/2012 1

description

 

Transcript of Stage de fin d’études – dotcloud

Page 1: Stage de fin d’études – dotcloud

Joffrey Fuhrer – MTI2012 – du 15/02/2012 au 15/08/2012

1

Page 2: Stage de fin d’études – dotcloud

Présentation de l’entreprise La team labs Travaux réalisés Conclusion

2

Page 3: Stage de fin d’études – dotcloud

•Historique •Organisation

3

Page 4: Stage de fin d’études – dotcloud

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

~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

•Objectifs •Composition •Méthodologie

6

Page 7: Stage de fin d’études – dotcloud

Produit focalisé Développeurs « full-stack » Participation à la construction

communautaire… … En fonction de ses besoins

7

Page 8: Stage de fin d’études – dotcloud

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

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

•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

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

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

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

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

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

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

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

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

19

Mono-processus

Satellitaire

Page 20: Stage de fin d’études – dotcloud

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

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

http://js.dotcloud.com

22

Page 23: Stage de fin d’études – dotcloud

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

24

Page 25: Stage de fin d’études – dotcloud

Très bonne expérience Start-up dynamique

Exigence

Responsabilisation Découvertes culturelles (USA/Californie/SF) Tremplin vers une position de platform

engineer

25