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
7. Produit focalisé
Développeurs « full-stack »
Participation à la construction
communautaire…
… En fonction de ses besoins
7
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. 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
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. 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. 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. 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. 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. 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. 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
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. 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
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