Developing collaborative applications in the cloud (Ruben Daniëls, Lieke Arends) - Sud Web 2011
-
0:07 - 0:10Ok, bienvenue à tous !
-
0:10 - 0:13Je suis ici aujourd'hui avec Lieke pour vous parler de Cloud9,
-
0:13 - 0:19un IDE dans le cloud, avec lequel vous pouvez accéder à votre code de n'importe où, n'importe quand.
-
0:20 - 0:26Je suis Ruben Daniels, co-fondateur et directeur de Ajax.org, et Cloud9.
-
0:26 - 0:32Je développe en Javascript depuis 1999.
-
0:32 - 0:36Ça fait un moment, et javascript a beaucoup évolué.
-
0:36 - 0:45Je suis l'auteur et le créateur de la plateforme Ajax.org, qui est une librairie d'interface qu'on utilise dans Cloud9.
-
0:45 - 0:52Notre compagnie comprend 20 personnes, et on essaie de révolutionner le développement
-
0:52 - 0:55de code, dans le cloud.
-
0:55 - 1:01Bonjour, je m'appelle Lieke, je parle français, mais je ne fais pas cette présentation en français,
-
1:01 - 1:06parce que Ruben ne parle pas, et moi je ne parle pas "tant" bien.
-
1:06 - 1:13Donc, il y a de la traduction, mais je m'intéresse : combien de gens peuvent entendre l'anglais ?
-
1:13 - 1:17C'est presque toute la salle.
-
1:17 - 1:26Je vais parler anglais. Je fais partie dAjax.org depuis 2009, dans les relations avec les développeurs.
-
1:33 - 1:40Donc, ce dont on va parler aujourd'hui : premièrement, une réponse à la question "Pourquoi le cloud ?"
-
1:40 - 1:44Ou plutôt, "Pourquoi le cloud pour des développeurs ?"
-
1:44 - 1:50Je vous ferai une démo de l'IDE Cloud9, qui est notre vision de la manière de faire,
-
1:50 - 1:57et ensuite nous parlerons de collaboration, que nous imaginons dans le futur du développement dans le cloud.
-
1:57 - 2:04Je vais laisser Lieke commencer, elle va vous expliquer pourquoi le cloud est important.
-
2:05 - 2:12Nous pensons que le développement se fera dans le cloud, donc prenons un peu de recul.
-
2:12 - 2:17Il se peut que vous vous demandiez : pourquoi travailler dans le cloud ?
-
2:17 - 2:22Et d'ailleurs, c'est quoi cette chose qu'on appelle le "cloud" ?
-
2:23 - 2:25Alors, jetons un oeil au cloud...
-
2:25 - 2:34Le cloud, c'est l'étape qui suit la virtualisation, qui nous permet de ne plus nous soucier du matériel,
-
2:34 - 2:43mais quand même toujours de quel OS tourne, comment installer et configurer des SGBD comme MySQL,
-
2:43 - 2:49et il faut toujours garder un oeil sur chaque serveur, on doit s'inquiéter de leur dimensionnement.
-
2:49 - 2:56Donc, il y a deux types de systèmes que l'on appelle "cloud" :
-
2:56 - 2:59il y en a qui sont des constructions d'APIs sur des systèmes de gestion de virtualisation,
-
2:59 - 3:04ce qui est proche de "Infrastructure as a Service" (IaaS)
-
3:04 - 3:12et des systèmes où la couche remonte au-dessus de l'API, "Platform as a Service" (PaaS)
-
3:12 - 3:19Pour moi, la promesse du cloud, c'est que l'intégration remonte au niveau de l'API,
-
3:19 - 3:23que l'on utilise en construisant des applications au-dessus.
-
3:23 - 3:27Ça inclut donc l'espace disque, la base de données, et la puissance de calcul.
-
3:27 - 3:34Ce niveau de cloud est pour l'instant surtout une promesse, même si Google App Engine
-
3:34 - 3:37et Heroku sont plutôt loin dans le concept.
-
3:37 - 3:42Donc, regardons un exemple ; il est plutôt simple, peut-être inutile,
-
3:42 - 3:45mais j'aimerais vous expliquer ce que le cloud signifie.
-
3:45 - 3:49Donc, disons que vous avez une boîtes de livres ; vous devez la stocker,
-
3:49 - 3:52et plus tard, vous voudrez récupérer des livres.
-
3:52 - 4:02Avant la virtualisation, vous deviez construire un abri ; pour protéger vos livres, avec une porte verrouillable,
-
4:02 - 4:07mais maintenant, avec la virtualisation, l'abri est déjà prêt.
-
4:07 - 4:13Vous avez quand même besoin de gérer l'espace à l'intérieur, construire les étagères,
-
4:13 - 4:17et stocker les livres vous-mêmes.
-
4:17 - 4:25Avec le cloud, vous obtenez un gars, ou un robot, vous lui donnez votre stock de livres,
-
4:25 - 4:30il les stocke pour vous, et vous pouvez les lui redemander quand vous voulez.
-
4:30 - 4:38C'est un exemple simple, mais il montre bien les niveaux de pré-intégration.
-
4:38 - 4:43Alors, quelle est la fonctionnalité la plus utile du cloud ?
-
4:43 - 4:49Premièrement, gérer le dimensionnement des serveurs.
-
4:49 - 4:57Imaginez que vous avez une application sociale, vous commencez avec quelques utilisateurs,
-
4:57 - 5:02et vous le faites tourner sur une VM chez Amazon.
-
5:02 - 5:06Soudainement, Justin Bieber remarque votre appli, et il tweete dessus.
-
5:06 - 5:12Et hop, 8 million d'adolescentes excitées, qui embourbent soudainement sur vos serveurs !
-
5:12 - 5:18Que votre business model soit construit pour ça, c'est pas la question !
-
5:18 - 5:22Et du coup, vos serveurs explosent...
-
5:22 - 5:27Il faut que vous puissiez gérer vos ressources back-end rapidement, donc que faire ?
-
5:27 - 5:36Il faut démarrer d'autres instances, et un balanceur de charge, mais d'abord, il faut gérer le dimensionnement de votre code !
-
5:36 - 5:41La plupart de vos applications avec des fonctionnalités sociales, ou des bases de données,
-
5:41 - 5:45ne peuvent pas se redimensionner horizontalement, sans une étude approfondie ;
-
5:45 - 5:47c'est donc un cauchemar !
-
5:47 - 5:54Pas juste à cause de lui, mais à cause du coût pour architecturer et dimensionner votre application
-
5:54 - 5:59sans même savoir si elle sera populaire ou non.
-
5:59 - 6:07L'infrastructure dans le cloud résoud ce problème ; les APIs sont exactement construites pour le dimensionnement.
-
6:07 - 6:13En utilisant cet outil de dimensionnement tout prêt, vous pouvez dimensionner d'1 utilisateur à 1 million,
-
6:13 - 6:15puis redescendre à 1 utilisateur !
-
6:15 - 6:23Et ceci, sans le coût de le prévoir à l'avance, ou les pertes dûes à l'échec face à la popularité soudaine !
-
6:23 - 6:28En gros, le cloud sauve du temps et de l'argent,
-
6:28 - 6:33et les développeurs peuvent se concentrer sur ce qu'ils aiment faire le plus : développer des applications !
-
6:33 - 6:39Ils peuvent se concentrer sur les fonctionnalités demandées par les utilisateurs.
-
6:39 - 6:43Je pense qu'on peut se mettre d'accord pour dire que le cloud, c'est un truc sympa.
-
6:43 - 6:45Ruben ?
-
6:45 - 6:49Qu'est-ce que ça veut dire pour le développement ?
-
6:49 - 6:54Les plateformes cloud fournissent un SDK, que vous installez sur votre machine,
-
6:54 - 6:59et vous espérez que tout marchera pareil sur votre machine et dans le cloud, mais ce n'est jamais le cas.
-
6:59 - 7:04Regardons App Engine, dans Google, qui embarque Big Table.
-
7:04 - 7:08Big Table est cette énorme infrastructure dans le cloud pour stocker des données ;
-
7:08 - 7:11vous ne pouvez pas l'installer sur votre PC.
-
7:11 - 7:17Donc, vous devez simuler ça, quand vous installez ce SDK, vous simulez l'environnement cloud.
-
7:17 - 7:22Et ce n'est jamais parfait ; vous aurez toujours le cas où votre application marche localement,
-
7:22 - 7:28et vous l'uploadez, et elle ne marche pas, à cause de certaines différences.
-
7:28 - 7:39Donc, c'est difficile, vous ne pouvez pas tester entièrement votre application, et il faut une solution.
-
7:39 - 7:44Cloud9, c'est notre vision d'une solution au problème.
-
7:44 - 7:50Le code que vous développez ne vit pas sur votre machine, mais dans le cloud,
-
7:50 - 7:59vous développez dans le cloud, et puisque c'est là qu'il vit, vous pouvez accéder toute l'API, dont Big Table.
-
7:59 - 8:03Donc quand vous buildez l'application, il n'y a pas de problème.
-
8:03 - 8:08Vous pouvez lancer et débuguer dans le même environnement aussi.
-
8:08 - 8:12Un autre avantage : vous n'avez pas à télécharger et installer un SDK,
-
8:12 - 8:21sur votre système, qui est sans doute différent de celui du développeur qui a créé le SDK.
-
8:21 - 8:28Tous ces problèmes s'en vont, vous pouvez commencer à faire ce que vous aimez faire en tant que développeur :
-
8:28 - 8:30écrire du code.
-
8:30 - 8:38Maintenant, prenons ce scénario, vous êtes un nouveau développeur, vous rejoignez une compagnie,
-
8:38 - 8:41qui a distribué une web-app il y a un an ;
-
8:41 - 8:45les clients appellent parce qu'ils ont entendu parler d'une nouvelle technologie,
-
8:45 - 8:49et ils veulent que la web-app la supporte.
-
8:49 - 8:56Pour ajouter cette fonctionnalité convenablement, vous avez besoin de tout l'environnement,
-
8:56 - 9:05le serveur, la base de données, scripts pour le déploiement, et d'installer tout ça.
-
9:05 - 9:10Il faut que vous trouviez votre chemin dans ce système : discuter avec les administrateurs,
-
9:10 - 9:14trouver les mots de passe, comprendre la procédure de déploiement...
-
9:14 - 9:21Du coup, avant d'avoir créé un environnement de développement que vous pouvez utiliser
-
9:21 - 9:28sans avoir à modifier du code en live, vous devez passez une éternité à faire tout ça.
-
9:28 - 9:33Ce problème est une réalité pour beaucoup de développeurs.
-
9:33 - 9:39Imaginez que vous tentiez d'ajouter une fonctionnalité, ou de résoudre un bug,
-
9:39 - 9:44maintenant, imaginez ça : un environnement de développement qui tourne dans le cloud
-
9:44 - 9:50est ce qui est utilisé pour fabriquer cette application.
-
9:50 - 9:57Tout l'ensemble d'outils, d'éditeurs et de processeurs sont maintenant disponibles
-
9:57 - 10:00en entrant une simple URL dans le navigateur.
-
10:00 - 10:09En tant que développeur, vous pouvez démarrer immédiatement, améliorer votre application,
-
10:09 - 10:13et tester sur une ferme cloud de test.
-
10:13 - 10:18Quand vous avez testé le nouveau code, et avec succès,
-
10:18 - 10:22vous pouvez cliquer sur "déployer en prod", et le client est content !
-
10:22 - 10:29Vous n'avez pas à perdre de temps à faire l'admin système, ou à répéter vos efforts !
-
10:29 - 10:36Vous pouvez avoir tout l'environnement de développement d'un projet derrière une simple URL,
-
10:36 - 10:41et votre vie est soudainement bien plus heureuse !
-
10:43 - 10:50Je vais vous montrer comment un IDE dans le cloud peut marcher.
-
10:54 - 11:04C'est notre site web, c9.io, et vous ne le voyez pas, parce qu'on a deux écrans...
-
11:12 - 11:20Donc, vous pouvez vous loguer avec votre compte GitHub ; qui en a un ?
-
11:20 - 11:30GitHub est un site qui héberge votre code source, avec un aspect social.
-
11:30 - 11:38Pour les gens qui ont un compte c'est facile ; sinon, vous pouvez créer un compte avec Cloud9.
-
11:38 - 11:43Ici, vous avez tous vos projets ; ils vivent tous dans le cloud.
-
11:43 - 11:52Vous pouvez les ouvrir, en les clonant depuis GitHub.
-
11:52 - 11:59On ouvre le projet Node.JS, par exemple.
-
11:59 - 12:04Comme vous voyez, vous pouvez reconnaître des éléments d'IDE habituels.
-
12:04 - 12:11Un éditeur, un arbre de fichiers, et des éléments d'interface pour vous aider dans certaines tâches.
-
12:11 - 12:21Nous voulons cet éditeur innovant, meilleur que les éditeurs que vous connaissez, dans Eclipse, par exemple,
-
12:21 - 12:26ou dans d'autres IDEs important, ou des éditeurs de textes.
-
12:26 - 12:36Quand nous l'avons construit, en septembre 2010, nous l'avons présenté à une conférence, "JS conf",
-
12:36 - 12:41et immédiatement, les gars de Mozilla qui construisaient un éditeur sont venus nous voir :
-
12:41 - 12:50"votre éditeur est plus rapide, on pourrait travailler ensemble, et mêler nos efforts"
-
12:50 - 12:56Et donc, c'est ce qu'on a fait, on a travaillé avec Mozilla pour le rendre meilleur et plus rapide.
-
12:56 - 13:01Et maintenant, on a une vraie communauté de quelques centaines de gens qui donnent du code,
-
13:01 - 13:06et qui rendent l'éditeur encore meilleur, avec des raccourcis vim pour ceux qui aiment.
-
13:06 - 13:11La coloration syntaxique, et toutes ces choses que vous voulez pour en faire le meilleur éditeur
-
13:11 - 13:17au monde, point final, le détail étant qu'il tourne dans un navigateur.
-
13:17 - 13:23Le truc cool avec cet éditeur, c'est qui se dimensionne dynamiquement,
-
13:23 - 13:29même avec 100000 lignes de code, il serait toujours aussi rapide ; il ne rend que la partie que vous voyez.
-
13:29 - 13:39Cloud9 utilise ACE, cet éditeur, il est open-source, sur ace.ajax.org
-
13:39 - 13:47et Cloud9 y ajoute notamment des onglets pour naviguer à travers les fichiers.
-
13:47 - 13:54et les fichiers vivent dans le cloud, donc vous y accéder dans le navigateur,
-
13:54 - 14:02et on supporte l'offline, donc sans connexion, certains fichiers restent disponibles.
-
14:02 - 14:06Dans les versions futures, il y aura un support complet de la synchronisation,
-
14:06 - 14:09on en a fait une démo le mois dernier.
-
14:09 - 14:15Tout votre projet se synchronise automatiquement avec votre système de fichier local.
-
14:15 - 14:20Vous pouvez y accéder dans le train.
-
14:20 - 14:25Créons une application de zéro.
-
14:35 - 14:39Une application Hello World...
-
15:02 - 15:09On commence en créant un fichier javascript.
-
15:14 - 15:19On l'appelle "HelloWorld", fichier vide.
-
15:19 - 15:27On crée un fichier javascript qui s'exécute côté serveur, qui tourne grâce à Node.JS.
-
15:27 - 15:31Qui ici connaît Node.JS ?
-
15:31 - 15:36Pour ceux qui ne connaissent pas, c'est un runtime javascript, qui utilise V8,
-
15:36 - 15:44et exécute du javascript côté serveur, en étant très orienté sur les entrées/sorties asynchrones.
-
15:44 - 15:52Vous utilisez un style de développement orienté "événements", comme les événements dans le navigateur,
-
15:52 - 15:54sauf qu'on est dans le serveur.
-
15:54 - 15:57Pour toutes les opérations qui peuvent prendre du temps, comme la lecture d'un fichier,
-
15:57 - 16:05vous passez un callback, qui est retourné quand le contenu du fichier est chargé.
-
16:05 - 16:08Ça vous autorise à faire beaucoup de choses en même temps,
-
16:08 - 16:13et de ne pas bloquer votre thread principal.
-
16:13 - 16:18Donc, créons un petit serveur HTTP.
-
16:27 - 16:32On crée une classe HTTP.
-
16:38 - 16:47Ça c'est le callback, et il a deux paramètres, "request" et "response".
-
16:58 - 17:02On lui demande d'écouter sur le port 80.
-
17:02 - 17:10Puisqu'il tourne dans le cloud, il va nous lever une erreur, parce qu'on n'a pas le droit d'écouter sur le port 80.
-
17:10 - 17:14Regardons... Je clique sur "debug"...
-
17:14 - 17:21La boîte de dialogue me propose d'ajouter des arguments, mais je ne veux pas.
-
17:21 - 17:24Et j'obtiens mon erreur.
-
17:24 - 17:28C'est exécuté dans le serveur, qui me dit que je ne peux pas accéder ce port,
-
17:28 - 17:35il faut que j'utilise le port qui est dans cette variable, que l'on me fournit.
-
17:35 - 17:39donc, je copie ça là.
-
17:39 - 17:43On devrait faire autre chose, tiens, à la récupération de la requête.
-
17:43 - 18:00Répondons, passons "200", et lançons ça.
-
18:06 - 18:09J'ai oublié quelque chose ?
-
18:09 - 18:18Ah, après le "200", il faut quand même que j'envoie quelque chose.
-
18:27 - 18:40Et voila ; c'est un petit serveur web écrit en Node. Je peux l'accéder dans le cloud, et il me dit "HelloWorld".
-
18:40 - 18:48Maintenant, un peu plus complexe ; on ajoute un compteur.
-
19:06 - 19:10Regardons ce que ça fait.
-
19:16 - 19:22À chaque fois que je recharge la page, il s'incrémente, mais deux fois.
-
19:22 - 19:32C'est parce que le serveur requête aussi la favicône à chaque requête.
-
19:32 - 19:39Pour faire en sorte que ça ne contrarie pas notre test,
-
19:48 - 19:56on peut ajouter cette petite condition.
-
20:29 - 20:33Désolé ?
-
20:33 - 20:39Oui, c'est partiellement vrai.
-
20:46 - 20:51Parce que c'est à la favicon qu'il s'intéresse...
-
20:51 - 20:56Faute de frappe ?
-
21:13 - 21:27Bon, aucune idée de pourquoi ça ne marche pas, mais on peut passer à autre chose.
-
21:27 - 21:31On peut aussi positionner un point d'arrêt.
-
21:31 - 21:39J'arrête ce process...
-
21:39 - 21:44Et maintenant qu'on a lancé une requête, le breakpoint l'arrête.
-
21:44 - 21:51On peut inspecter les variables, pour voir ce qui se passe.
-
21:51 - 22:01On peut voir la pile d'appels ici, et la visiter.
-
22:01 - 22:07Et tout ceci, ce sont les fichiers internes à Node.JS, que l'on visite.
-
22:07 - 22:12On peut aussi regarder ce qu'est la variable "counter".
-
22:18 - 22:22"counter" est à 1.
-
22:22 - 22:30On débloque, et on relance la requête ; et maintenant, c'est 2.
-
22:30 - 22:36Vous pouvez aussi changer la variable.
-
22:49 - 22:52Et comme vous voyez, on a changé la variable ici.
-
22:52 - 23:00Ça permet un debugging d'application auquel on est habitué dans le monde Java.
-
23:00 - 23:03Mais ici c'est du javascript, et c'est dans le cloud.
-
23:03 - 23:06Donc, on n'a pas d'application qui tourne localement.
-
23:06 - 23:14Et c'est le type de choses qui deviennent possibles avec les navigateurs qui sont de plus en plus rapides.
-
23:14 - 23:20Beaucoup plus rapides, 3000 fois plus rapides.
-
23:20 - 23:27Cette application, en terme de vitesse et de temps de démarrage bat Eclipse, mais parce que c'est dans le cloud,
-
23:27 - 23:35on peut faire beaucoup plus, on peut prendre l'URL, et la partager.
-
23:35 - 23:43On n'a pas eu à installer quoi que ce soit, j'ai juste créé un projet, pas d'installation de Node,
-
23:43 - 23:47ou de Git, ou NPM, ou quoi que ce soit.
-
23:47 - 23:52Ce n'est même pas mon ordinateur que je suis en train d'utiliser.
-
23:52 - 23:57Je peux prendre n'importe quel ordinateur, et j'ai toujours accès à tous mes projets.
-
23:57 - 24:05Ça change beaucoup de choses, mais ce qui compte encore plus, c'est la collaboration.
-
24:05 - 24:08Travailler ensemble sur du code.
-
24:08 - 24:14Et c'est la partie suivante de cette présentation.
-
24:20 - 24:30Il y avait un slide de plus que je voulais évoquer, sur le projet qui tourne sous Cloud9 IDE.
-
24:30 - 24:34Ce sont tous des projets open source que l'on a démarrés et que l'on utilise.
-
24:34 - 24:42Le plus large est APF, Ajax.org PlatForm, une librairie d'applications qui tourne dans le navigateur.
-
24:42 - 24:50C'est open source, et ça vous permet de mélanger plusieurs types de composants, de manière déclarative.
-
24:50 - 24:58Et il y a ACE, je vous en ai parlé, l'éditeur avec la coloration syntaxique, la complétion de code, etc.
-
24:58 - 25:04Et Cloud9 IDE, qui est open source aussi ; elle est sur GitHub,
-
25:04 - 25:09vous pouvez la rélécharger, et l'utiliser localement, ou sur votre serveur Web, si vous le souhaitez.
-
25:09 - 25:18Il y a beaucoup d'autres projets, comme JSDav, WebFS, qui est un wrapper pour le FS offline de Chrome,
-
25:18 - 25:20et aussi quelques autres librairies.
-
25:20 - 25:28Donc, jetez-y un oeil, sur github.com/ajaxorg, si ça vous intéresse.
-
25:28 - 25:35Donc, comme Ruben l'a dit, c'est l'étape suivante dans la collaboration.
-
25:35 - 25:39Jetons un oeil à la collaboration : il y a des challenges habituels.
-
25:39 - 25:46Quand vous regardez le monde, vous voyez que c'est un énorme effort de collaboration :
-
25:46 - 25:52bureaux, immeubles, gouvernements, ... tout est collaboration !
-
25:52 - 25:58Et la nature lui a donné une forme particulière, qui la rend efficiente et efficace !
-
25:58 - 26:04Prenons un exemple simple encore : des enfants, qui construisent un château de sable.
-
26:04 - 26:11Si on veut faire un truc simple, comme un gros tas de sable, tout le monde peut travailler librement,
-
26:11 - 26:18ils travaillent en parallèle, et il n'y a aucun problème, ils font tous la même chose.
-
26:18 - 26:24Mais une fois que la pile de sable est finie, il faut des changements dynamiques ;
-
26:24 - 26:32les tâches vont être séparées : un enfant va creuser une trancher, un autre construire le château,
-
26:32 - 26:35encore un autre doit construire une porte, ...
-
26:35 - 26:41La collaboration parallèle vient d'être remplacée par une séparation des tâches,
-
26:41 - 26:49et quand un enfant interfère avec les tâches d'un autre, il va y avoir des caprices, sous peu...
-
26:49 - 26:53Je ne pense pas que cet enfant déteste les châteaux de sable ;
-
26:53 - 27:01je pense qu'il ne peut juste pas séparer ses tâches convenablement avec l'autre enfant.
-
27:01 - 27:10C'est une partie difficile de la collaboration ; et fondamentalement, il n'y a pas une seule manière de faire.
-
27:10 - 27:19Toutes les tâches ont des paramètres différents selon la phase du process où vous êtes.
-
27:21 - 27:28Avec le développement, tout le monde utilise sans doute un de ces contrôleurs de sources.
-
27:28 - 27:35Et c'est la manière de collaborer du malchanceux.
-
27:35 - 27:40Vous devez uploader votre code pour qu'il soit livré à un serveur, peut-être dans le cloud.
-
27:40 - 27:43Et qu'il soit re-downloadé.
-
27:43 - 27:49C'est très distant, vous n'avez pas une réponse immédiate, il faut que vous sachiez ce que les autres font,
-
27:49 - 27:54en utilisant une autre forme de communication.
-
27:54 - 27:58Vous travaillez séparément, chacun dans son silo.
-
27:58 - 28:05Il y a beaucoup d'autres moyens de collaborer, et dans Cloud9, on essaie de trouver des pistes
-
28:05 - 28:11pour faire en sorte que les développeurs travaillent en temps réel.
-
28:11 - 28:17Avoir un IDE dans le cloud ouvre la voie à des nouveaux modes de collaboration.
-
28:17 - 28:25Par exemple, les revues de code interactives : vous pouvez parcourir le code, et ajouter un commentaire.
-
28:25 - 28:30Et c'est immédiatement partagé avec les autres personnes, parce que c'est dans le cloud.
-
28:30 - 28:42Pensez aussi à l'entraide, à la formation, au partage de morceaux de codes, ou de l'URL de votre application.
-
28:42 - 28:47On n'aura plus besoin de dépendre d'inventions comme celle-ci, pour la programmation à plusieurs.
-
28:47 - 28:54Il y a une nouvelle manière de collaborer qui améliore l'expérience de développement.
-
28:54 - 29:01Disons que vous avez une équipe sur un projet, je vais prendre un exemple véridique.
-
29:01 - 29:11Avec Cloud9, on a la possibilité de partager notre environnement de travail.
-
29:11 - 29:15Regardons un peu la situation de notre compagnie à nous :
-
29:15 - 29:19on a des gens qui travaillent à distance, aux USA ou en Europe,
-
29:19 - 29:23mais l'équipe centrale de développement est à Amsterdam.
-
29:23 - 29:31Souvent, quelqu'un a un problème, il y a un bug à corriger, du code doit être produit,
-
29:31 - 29:40ça nécessite d'y réfléchir, et d'y collaborer ; c'est pratique de travailler ensemble sur ce problème.
-
29:40 - 29:42Comment faire ?
-
29:42 - 29:47Avec Cloud9, tout le projet est en ligne, pas juste le code.
-
29:47 - 29:53Le runtime, la base de données, tout est là derrière une unique URL.
-
29:53 - 29:57Comme vous en avez l'habitude avec d'autres services en ligne,
-
29:57 - 30:04avec Cloud9, vous pouver partager l'URL de votre environnement avec vos collègues de l'autre côté du monde.
-
30:04 - 30:11Pour le faire, vous positionnez des permissions, lecture seule ou lecture-écriture.
-
30:11 - 30:15Puis, votre ami rejoint votre projet.
-
30:15 - 30:22À l'intérieur du projet, vous pourrez communiquer directement, chat, vidéo, conversations audio ;
-
30:22 - 30:30mais avant tout, vous pouvez coder simultanément, de manière collaborative, comme vous le faites avec Google Docs.
-
30:30 - 30:37Et non seulement ça, mais la personne qui s'est fait inviter peut lancer l'application.
-
30:37 - 30:42En cliquant sur le bouton "debug", vous lancez le code dans un système identique au vôtre,
-
30:42 - 30:45parce que c'est très exactement votre système.
-
30:45 - 30:56Donc la personne n'a pas à simuler votre environnement, et la phrase "Ça marche chez moi" n'existe plus !
-
30:56 - 31:00Donc, en résumé : les APIs dans le cloud vous aident à dimensionner,
-
31:00 - 31:07et avoir votre code dans le cloud vous facilitent l'accès, la collaboration, et la maintenance sur vos applications.
-
31:07 - 31:10L'intégration permet de cibler facilement des plateformes.
-
31:10 - 31:15Donc, c'était un aperçu de l'avenir, merci de votre attention,
-
31:15 - 31:22et si vous voulez collaborer, ou utiliser notre application, c'est en ligne sur c9.io, ou GitHub.
-
31:22 - 31:26Merci beaucoup !
-
31:34 - 31:36Y a-t-il des questions ?
-
31:36 - 31:40C'est un vieux troll, désolé de le présenter !
-
31:40 - 31:48Mais il y a un problème avec la confiance et la sécurité, et l'accessibilité, dans le cloud.
-
31:48 - 31:55Je peux hacker dans le train, et pusher mes commits ; mais que se passe-t-il
-
31:55 - 32:02si je possède une compagnie privée, et je ne veux pas ne plus être capable de récupérer mes données
-
32:02 - 32:06parce que le service est down, ou a simplement fermé ?
-
32:06 - 32:10Je ne vous souhaite pas d'avoir à fermer Cloud9, bien sûr...
-
32:10 - 32:20Mais quels sont les problèmes de sécurité, de confidentialité, de confiance, et comment vous les gérez ?
-
32:20 - 32:23Je pense que ce sont des soucis généralisés au le cloud ;
-
32:23 - 32:26et je pense que le monde s'en rend progressivement compte,
-
32:26 - 32:29de plus en plus de grosses applications tournent en ligne,
-
32:29 - 32:35et les gens mettent beaucoup de leur valeur dedans, regardez Salesforce, par exemple.
-
32:35 - 32:39Il y a des solutions, notamment aux problèmes de sécurité bien entendu ;
-
32:39 - 32:44on pourrait même avancer qu'un fournisseur de cloud investira plus dans sa sécurité,
-
32:44 - 32:53parce que c'est son "nom", et sa compagnie n'aura aucune valeur en cas de problème de sécurité.
-
32:53 - 32:59Mais il y a des compagnies qui veulent pouvoir contrôler ça eux-mêmes.
-
32:59 - 33:04Je pense qu'il va toujours y avoir un équilibre entre le cloud privé, et le cloud public ;
-
33:04 - 33:10et ceux qui se soucient plus des coûts se pencheront vers les publics,
-
33:10 - 33:21et ceux qui se soucient plus de la sécurité se pencheront vers les clouds privés.
-
33:26 - 33:32Dans l'exemple, vous avez fait une application en Node.JS, et je me demande,
-
33:32 - 33:38il y a plusieurs versions de Node.JS, comment vous en sortir ?
-
33:38 - 33:42Chaque utilisateur installe sa propre version de Node.JS ?
-
33:42 - 33:48Est-ce qu'il y a des modules spéciaux, des hacks spéciaux ?
-
33:48 - 33:54Ou est-ce que vous le mettez à jour à la dernière version, mais du coup le code doit être mis à jour ?
-
33:54 - 33:57Ou alors vous restez sur une version spécifique ?
-
33:57 - 34:02Pour le moment, nous ne supportons qu'une version, mais on travaille dur,
-
34:02 - 34:09pour gérer ce problème de versions ; et c'est dans le SDK, et dans le runtime en effet.
-
34:09 - 34:15Ce que vous aurez, c'est un fichier de configuration, dans votre projet, qui déclare la version,
-
34:15 - 34:18et on les supportera toutes.
-
34:18 - 34:29On travaille ensemble avec Joyent pour supporter toutes ces versions de Node simultanément.
-
34:35 - 34:39Bonjour, je ne vous ai jamais vu sauvegarder votre code ;
-
34:39 - 34:43et comment est-ce que vous gérer le versionning, aussi ?
-
34:43 - 34:50J'ai sauvegardé du code en utilisant Cmd+S, mais c'était rapide !
-
34:50 - 34:56Si je ne sauvegarde pas, il sauvegardera quand je cliquerai sur le bouton "debug".
-
34:56 - 35:02Pour le versionning, vous avez dû voir vers le bas l'interface en ligne de commande ;
-
35:02 - 35:07et vous pouvez faire beaucoup de choses que vous feriez sur votre ordinateur, comme "ls" ou "cd",
-
35:07 - 35:12ou taper "git" ; et même "git" et ce que vous voulez.
-
35:12 - 35:17"git status", "git push/pull", "git commit", pour gérer vos versions.
-
35:17 - 35:26On ajoute Mercurial en ce moment aussi ; Subversion n'est pas encore sûr, mais on finira probablement par l'ajouter.
-
35:26 - 35:35Pardon ? inaudible Peut-être, peut-être...
-
35:35 - 35:42Il demandait aussi si ça allait fonctionner avec Bazaar.
-
35:42 - 35:52Bonjour, si j'ai bien compris, votre IDE Cloud9 exécute du Javascript du côté du serveur ? - Oui.
-
35:52 - 35:57Du coup, est-ce qu'on devrait l'utiliser comme CDN, Content Delivery Network ?
-
35:57 - 36:00Est-ce possible ?
-
36:00 - 36:03Heu... non...
-
36:03 - 36:09Ce sont des concepts très différents...
-
36:09 - 36:16Il exécute du code, mais qui vivra uniquement sur un serveur, quelque part dans le cloud.
-
36:16 - 36:22Donc ce n'est pas plus proche de certains réseaux, c'est à un seul endroit,
-
36:22 - 36:24contrairement à ce que ferait un CDN.
-
36:24 - 36:28Ok, donc c'est juste de l'exécution locale pour tester ?
-
36:28 - 36:32Oui, l'exécution est dans le but de développer votre application ;
-
36:32 - 36:41donc on vous fournit toute l'infrastructure pour développer votre appli, comme vous l'installeriez localement.
-
36:41 - 36:51Juste un petit exemple : votre IDE a l'air d'utiliser MarkItUp, pour les Cmd+S et tout.
-
36:51 - 36:57Si vous voulez refactoriser MarkitUp avec votre IDE, que va-t-il se passer ?
-
36:57 - 37:02Je ne comprends pas vraiment la question, désolé ?
-
37:02 - 37:08C'est écrit en Javascript, Cloud9? - Oui. - Il utilise des librairies, des plugs-in jQuery ?
-
37:08 - 37:12Quelque chose de similaire, mais pas jQuery, oui.
-
37:12 - 37:20Et si je veux refactoriser un plug-in jQuery, par exemple (désolé pour mon anglais)
-
37:20 - 37:28qui est utilisé par Cloud9 IDE ? Est-ce qu'il y a des conflits entre les exécutions ?
-
37:28 - 37:33Non, l'exécution de votre application est complètement séparée de Cloud9.
-
37:33 - 37:42Cloud9 est juste une application qui tourne là, et quel que soit le code que vous tapez, il tourne dans une nouvelle fenêtre.
-
37:42 - 37:46Donc il n'y a pas de conflits.
-
37:46 - 37:49C'était ça la question que tu voulais poser ? - Ouais ouais.
-
37:49 - 37:52Merci beaucoup. Juste pour savoir.
-
37:52 - 37:57inaudible
-
37:57 - 38:02Production ? Non, c'est juste pour du développement.
-
38:02 - 38:06La question c'est : est-ce fait pour du développement, ou aussi de la production ?
-
38:06 - 38:09Et on veut vraiment rester concentrés sur le développement.
-
38:09 - 38:13On travaille avec d'autres compagnies qui fournissent des environnements de production,
-
38:13 - 38:19donc vous pouvez publier votre application depuis Cloud9, vers l'environnement que vous voulez.
-
38:19 - 38:23Vous avez montré Node.JS, mais qu'est-ce qu'il en est de Python, de Ruby, ... ?
-
38:23 - 38:28On était à Google I/O le mois dernier, à démontrer un runtime Python,
-
38:28 - 38:31pour pouvoir déployer dans Google App Engine.
-
38:31 - 38:37On travaille sur ce type de runtimes, et on les ajoutera dans les mois qui viennent.
-
38:37 - 38:41On pourrait considérer un déploiement vers Heroku, aussi ?
-
38:41 - 38:45Où es... ? - Juste derrière. - Ah !
-
38:45 - 38:53Désolé ? - On pourrait considérer un déploiement vers Heroku, en d'autres langages, comme PHP ?
-
38:53 - 39:06Oui, on pense à Ruby aussi, et peut-être PHP, et on discute avec ces fournisseurs pour déployer vers eux.
-
39:06 - 39:15Désolé pour mon anglais. Est-ce qu'il y a des services de tests automatisés dans l'outil ?
-
39:15 - 39:19Vous parlez de développement, de plans, d'infrastructure, ...
-
39:19 - 39:23Très bonne question. Pas encore, mais c'est sur la roadmap.
-
39:23 - 39:29Et on est en train de construire une jolie interface, pour brancher n'importe quel framework
-
39:29 - 39:33de test unitaire que vous souhaitez.
-
39:33 - 39:37Et on va aussi ajouter des tests Selenium, pour que vous puissiez les lancer,
-
39:37 - 39:47les enregistrer dans Cloud9 mais les lancer dans le cloud, pour n'importe quel navigateur.
-
39:56 - 40:03Bonjour, j'aimerais en savoir plus sur votre business model, est-ce que le service est gratuit ?
-
40:03 - 40:10Pourquoi devrais-je avoir confiance en un service gratuit comme le vôtre ?
-
40:10 - 40:16Ok, le service est basé sur du freemium, c'est-à-dire qu'il y a une partie gratuite.
-
40:16 - 40:21C'est gratuit pour une utilisation open-source ; donc si vous avez un projet open-source,
-
40:21 - 40:24et que vous voulez travailler dessus dans le cloud, c'est gratuit.
-
40:24 - 40:32Si c'est un projet commercial, que vous voulez avoir en privé, alors il faut payer.
-
40:35 - 40:39Que se passe-t-il quand vous perdez la connexion ?
-
40:39 - 40:44On peut toujours utiliser l'éditeur et écrire du code ?
-
40:44 - 40:50La fonctionnalité "offline" devrait disponible dans quelques semaines ;
-
40:50 - 40:55elle permettra de synchroniser tout le projet sur votre système de fichier,
-
40:55 - 41:00et en utilisant le manifest HTML5, l'application est disponible aussi.
-
41:00 - 41:05Donc vous pouvez faire toutes les opérations, créer des répertoires, des fichiers, etc.
-
41:05 - 41:14les sauvegarder, les supprimer, et ils seront resynchronisés en se reconnectant.
-
41:24 - 41:31Si vous n'êtes pas un environnement de production, comment vous gérer les déploiements ?
-
41:31 - 41:37L'un de vos arguments était que vous êtes dans le cloud, donc c'est facile de déployer ;
-
41:37 - 41:46mais si la configuration de l'environnement de déploiement est différent du vôtre, vous ne résolvez pas le problème ?
-
41:46 - 41:52Ce qu'on fait, c'est qu'on travaille ensemble avec les PaaS, ou les fournisseurs d'infrastructure.
-
41:52 - 41:58Quand vous commencez votre projet, vous pouvez choisir : je veux créer un projet Google App Engine.
-
41:58 - 42:03Et votre environnement se configure pour que vous développiez sur App Engine.
-
42:03 - 42:06Et quand vous déployez, il déploie sur App Engine.
-
42:06 - 42:14Du coup, on génère de la liberté, parce que toutes ces organisations ré-invente comment on fait ça.
-
42:14 - 42:24Nous on ne veut pas faire ça, on veut juste fournir la meilleure expérience de développement.
-
42:24 - 42:26Je pense qu'on n'a plus de temps.
-
42:26 - 42:33On a deux livres, qui doivent être donnés aux meilleures questions ; mais il faut que tu me donnes un coup de main.
-
42:33 - 42:36J'ai trouvé la première question plutôt bonne. - Moi aussi, oui.
-
42:36 - 42:39Et qui va avoir le deuxième ?
-
42:39 - 42:43J'ai trouvé la question sur les tests très bonne. - Mais c'est un orateur !
-
42:43 - 42:47Mais il ne peut pas l'avoir, je sais, c'est juste une remarque pour l'honneur !
-
42:47 - 42:52Bon, du coup, on va le garder !
-
42:52 - 42:53Je pense que...
-
42:53 - 42:56La dernière ?
-
42:56 - 43:02Ok, donc pour la première et la dernière question !
-
43:02 - 43:05Félicitations !
-
43:09 - 43:10Voila.
-
43:10 - 43:14Vous pouvez poser quand même une dernière question en français si vous voulez, si c'est juste la langue qui vous retient.
-
43:14 - 43:18On traduira après.
-
43:18 - 43:21Si vous avez honte de votre anglais...
-
43:21 - 43:23Merci beaucoup !
-
43:23 -Merci !
- Title:
- Developing collaborative applications in the cloud (Ruben Daniëls, Lieke Arends) - Sud Web 2011
- Description:
-
Web browsers are now full part of the « Web as a platform » motto. Cloud9IDE is one of those new Web IDE, based on Open Web technologies.
With everything moving to the Cloud, it is now time to have software development join in. JavaScript applications run online for a purpose, so why shouldn't you develop your application online too? So, to do this we are building Cloud9 IDE as a SaaS service with an open source foundation.
But what are the advantages of the cloud? In this talk we will go into the advantages that the cloud infrastructure offers to developers and how they can work faster.
A major aspect of developing in the cloud is the social aspect. We will explain the future of collaboration when moving development to the cloud. However, there are some challenges to collaboration. We will explain the subtleties of collaboration tooling and the challenges it brings.
Why for example did Google Wave get so many complaints, leading to its end. We will explain why collaboration has no single method and use a timeslider/ track changes comparison for purpose of explaining the subtlety.
Then we will go deeper into the browser. Advanced widgets need to innovate the browser platform to compete with flash/ silverlight/ java: HTML5. We will talk about HTML5 more in detail.Then we will highlight how easy it is to develop software in the Cloud using Cloud9 IDE, and we will show how to extend the IDE. Ajax.org believes in the open web. Opening up technologies to stand on each other's shoulders, whilst creating healthy businesses. One of the key features of a great IDE is a great code editor. For this part Ajax.org developed Ace, which has recently been adopted by Mozilla as the new Bespin and future code editor for Firefox. The combined power of Mozilla and Ajax.org now makes Ace the best, and most universal code editor on the web. Everything in Cloud9 is an extension, and we are inviting people and companies to join the community to extend the IDE to their own needs and requirements.
- Video Language:
- English
- Duration:
- 43:34
yann.madeleine edited French subtitles for Developing collaborative applications in the cloud (Ruben Daniëls, Lieke Arends) - Sud Web 2011 | ||
rudyrigot edited French subtitles for Developing collaborative applications in the cloud (Ruben Daniëls, Lieke Arends) - Sud Web 2011 | ||
rudyrigot edited French subtitles for Developing collaborative applications in the cloud (Ruben Daniëls, Lieke Arends) - Sud Web 2011 | ||
rudyrigot edited French subtitles for Developing collaborative applications in the cloud (Ruben Daniëls, Lieke Arends) - Sud Web 2011 | ||
rudyrigot edited French subtitles for Developing collaborative applications in the cloud (Ruben Daniëls, Lieke Arends) - Sud Web 2011 | ||
rudyrigot added a translation |