SlideShare une entreprise Scribd logo
1  sur  40
palais des
congrès
Paris




7, 8 et 9
février 2012
JavaScript aussi sur le
  serveur et jusque dans le
  cloud ?
    7 février 2012
Benjamin Guinebertière   Stéphane Rios
www.benjguin.com         @stefounet
relation technique       CEO / CTO Founder
architectes              Fasterize (fasterize.com)
Microsoft France
Fasterize

  Startup créée mi-2011, en phase de beta privée
  Accélérateur de site Web en mode SaaS
    Optimise les pages HTML à la volée

    Réduit le temps de chargement des pages HTML

    Améliore le trafic, taux de transfo, SEO, etc …

    Ultra-simple à intégrer

  Node.js
    Utilisateurs depuis mi-2010

    Au cœur de notre architecture

  Cloud
    Rackspace / Openstack

    DevOps / Chef
Plan

  Contexte
  JavaScript côté serveur
  Comment Microsoft met cela en œuvre
   Node.JS sur Windows Azure
   Installation de serveurs open source sur Windows
     Azure
    Hadoop On Azure et Hadoop sur Windows Server
  Conclusion
15 ans de JavaScript
  Historique rapide JavaScript
    Création en 1995 par Brendan Eich

    Standardisé ensuite via ECMAScript

    Rien à voir avec Java
  JavaScript s’impose partout
    De plus en plus de code client

        HTML statique
        HTML généré côté serveur

        HTML généré côté serveur et côté client (Ajax)

        HTML généré uniquement côté client (SPA)
            HTML5 / Web Services REST

    Browser, RIA, Database, Application Server
  JSON gagne du terrain sur XML
    Stockage côté serveur (ex: bases NoSQL orientées
      documents)
    Exécuter du JavaScript côté serveur
Les moteurs JS

  Différents moteurs
    Chakra (IE)

    {Spider|Jaeger|Trace}.Monkey (Mozilla)

    V8 (Chrome)

    Rhino (JVM)

    Nitro (Apple)

    Carakan (Opera)

  Evolution des moteurs
    Course à la performance lancée par Chrome

    JIT, dernières versions de JS (1.8.5)
Le langage JavaScript
  Quelques spécificités de ce langage orienté objets
    Dynamique (runtime vs compilation)

    Pas de typage fort

       Quelques pièges dûs aux transtypage automatique

       Types primitifs restreints : Number, String, Boolean,
        undefined, null
       Types natifs : Array, Date, Objects, Regexp

    Prototypes

       Pas de classes mais possibilité d’avoir des constructeurs

    Fonctions

       Objets comme les autres

       Peuvent être passées en paramètre, assignées à des
        variables, des propriétés d’objet, modifiées, etc …
       Callback !

    Scope, this & closures
Un même langage côté client et
serveur?
  Fondamentaux du langage sont les mêmes …
    Syntaxe, portée des variables, opérateurs, non typé

    …

  … Mais
    Côté client on manipule principalement le DOM

    Côté serveur, plutôt pas (fs, net)

    D’où des frameworks différents (ou pas de framework)

  Début de réutilisation de code (socket.io, commonJS,
  underscoreJS)
  Réutilisation des compétences
JavaScript côté serveur

  Premier essai en 1996 avec Netscape (Livewire)
  De nombreuses plateformes
    Node.js, Rhino, CouchDB, Jaxer, APE

  Les moteurs JS côté serveur sont-ils adaptés ?
    V8

       roadmaps Node.JS vs Google

       Limite mémoire V8 à 1,5 Go

          Mais peu besoin de mémoire

    Rhino tourne dans la JVM => adapté

    Chakra est orienté client uniquement
Et Microsoft ?

  Microsoft accompagne ce mouvement important
    Sur Windows Azure

    Egalement sur Windows Server

  Exemples dont nous allons parler:
    Node.JS

    MongoDB

    Hadoop
Windows Azure résolument
ouvert
Node.JS

  Node.JS a été créé par Ryan Dahl chez Joyent en 2009
  C’est un « framework » permettant de développer des
  services haute performances sur un modèle asynchrone
  Modèle asynchrone plus performant et plus efficace que le
  classique modèle multithread quand on a beaucoup I/O
    Pas nouveau !

  JavaScript choisi car adapté au développement
  asynchrone grâce à ses forts aspects fonctionnels
  Intègre les protocoles réseaux en standard (ex: HTTP)
  Librairie système entièrement asynchrone
  Version 0.6.9 stable / 0.7.2 unstable
Hello Node
 var http = require('http');

 http.createServer(function (req, res) {
   res.writeHead(200, {'Content-Type': 'text/html'});
   res.end('Hello Node !');
 }).listen(8124, '127.0.0.1');
 console.log('Server running at http://127.0.0.1:8124/');
Hello Node++
 var http = require('http'),mysql = require('mysql'),
  client = mysql.createClient({user: 'root'}));

 client.query('use castle;');

 http.createServer(function (req, res) {
   res.writeHead(200, {'Content-Type': 'text/json'});
   client.query('select * from dragons',function (err,data){
       if (err) {
           res.end('ERROR');
       } else {
           res.end(JSON.stringify(data));
       }
   });
 }).listen(8124, '127.0.0.1');
 console.log('Server running at http://127.0.0.1:8124/');
Windows Azure Training Kit

  Plusieurs tutoriaux existent et décrivent comment écrire sa
  première application avec Node.JS et Windows Azure
    Windows Azure Training Kit (PowerShell,
     documentation)
    Cloud9

       IDE en ligne

       Suppport de Node.JS

       Support de Windows Azure

       Fonctionnalités intégrées : édition, versionning,

         debug, deploy
Node.JS dans Windows Azure

  Microsoft aide officiellement Ryan Dahl à porter Node.JS
  sur Windows depuis juin 2011
  Utilise IOCP
  Node est constitué d’un seul exécutable, node.exe, donc
  très simple à inclure dans un Worker Role
  Supporte Windows Azure et Windows Server 2003+
Node.JS sur Windows Azure
   proxy avec modifications de données
Modèle monothreadé !
  Ne jamais bloquer !!!
  Créer plusieurs process pour monter en charge
    Donc clusteriser pour avoir plusieurs instances

       Avec des proxys

           Entre Internet et Node.JS

               IIS (avec module HTTP iisnode)

           Entre Node.JS et les données (par exemple)

               connection pooling

  Complémentarité Node.JS et son frontal
    Nginx classiquement

    IIS dans le cas d’Azure

    Certains cas d’utilisation à déléguer au frontal:

       Ressources statiques

       Authentification
Ecosystème

  Communauté très active
    IRC, mailing list, wiki, github

  Npm : Node Package Manager (inclus en v0.6)
  Beaucoup de modules (~6800 sur npm)
    Express (Sinatra-like)

    Request

    Socket.io

    Dnode

    Optimist

  Version 0.8 se focalise sur cet écosystème
Les pièges à éviter

  Asynchrone
    Race conditions

    Soupe de callbacks, lisibilité du code

    Librairies « flow control » : async.js, step.js, flow.js, …

  Monothreadé => plusieurs process
    Clustering natif en 0.6

  Encodage
    ASCII/UTF-8 only

  Les API changent TRÈS vite
    Les modules aussi

    Culture Devops : déployer souvent
Node.JS sur Windows Azure
   serveur de chat
Mongo DB

  Une des bases noSql importantes du moment
  Base orientée documents
    Stocke du JSON

    Procédures stockées en JavaScript
MongoDB et Windows Azure

  http://www.mongodb.org/display/DOCS/MongoDB+on+Azur
  e
  https://github.com/mongodb/mongo-azure
  http://www.interoperabilitybridges.com/Azure/Getting_Starte
  d_Guide_Node_with_MongoDB.asp

  Comparaison avec les services fournis par Windows Azure
    Tables et Blobs Windows Azure

    SQL Azure Federations
Node.JS accédant à des tables MongoDB
sur Windows Azure
Hadoop:
implémentation de Map/Reduce




     Extrait de « Hadoop Tutorial from Yahoo!" (Yahoo! Inc.) / CC BY 3.0 »
Exemple: comptage de mots

  Map:
    Pour chaque mot trouvé

       Émettre <<le mot>>, 1

  Shuffle (magiquement géré par le Framework)
  Reduce
    Pour toutes les occurrences reçues clef, valeur (même

     clef)
       Comptage += valeur

       Émettre clef, comptage
Map/Reduce - Java
Map/Reduce – C#
Map/Reduce - JavaScript
Hadoop – vue d’ensemble
En JavaScript, c’est plus lent ?

  En l’occurrence non, car
    Le moteur Hadoop est écrit en Java

    Le JavaScript tourne dans Rhino (JVM)

    Pas de « streaming »

  Sur un jeu de test de 50 Go de texte
    En streaming (communication via stdin / stdout) :

     130% de plus que Java
    JavaScript :

     15% de plus que Java
Maintenant, analysons des logs
IIS
    Scénario

          Web Role Azure
        (grosse ferme Web)




      Accumulation de logs IIS
      (Windows Azure Blobs)




 Sélection, formattage, tri, aggrégat
      s dans un cluster Hadoop
Création d’un cluster à la demande
Création d’un cluster à la demande
Connexion aux Blobs Windows
Azure
Analyse de logs IIS



HD




H




D
Hadoop On Azure en JavaScript
Conclusion

  JavaScript prend de plus en plus d’importance
    Y compris sur le serveur

  Adoption forte par Microsoft
    Node.JS sur Windows Azure

    Autres moteurs tels que MongoDB

    Hadoop sur Windows Azure et Windows
Des ressources Windows Azure
gratuites

  Testez Windows Azure   Abonnés MSDN, vous
  gratuitement pendant   bénéficiez de
  90 jours               Windows Azure
     http://aka.ms/        http://aka.ms/
      tester-azure-90j       activer-azure-msdn
Pour aller plus loin

                                               Prochaines sessions des Dev Camps
  Chaque semaine, les                            10
                                                          Live     Open Data - Développer des applications riches avec le
  DevCamps                                     février
                                                2012
                                                         Meeting   protocole Open Data

  ALM, Azure, Windows Phone, HTML5, OpenData     16
                                                          Live     Azure series - Développer des applications sociales sur
                                               février
  http://msdn.microsoft.com/fr-fr/devcamp       2012
                                                         Meeting   la plateforme Windows Azure

                                                 17
                                                          Live     Comprendre le canvas avec Galactic et la librairie
                                               février
  Téléchargement, ressources                    2012
                                                         Meeting   three.js

                                                 21
  et toolkits : RdV sur MSDN                   février
                                                2012
                                                          Live
                                                         Meeting
                                                                   La production automatisée de code avec CodeFluent
                                                                   Entities
  http://msdn.microsoft.com/fr-fr/
                                               2 mars     Live     Comprendre et mettre en oeuvre le toolkit Azure pour
                                                2012     Meeting   Windows Phone 7, iOS et Android


  Les offres à connaître                       6 mars
                                                2012
                                                          Live
                                                         Meeting
                                                                   Nuget et ALM


         90 jours d’essai gratuit de Windows   9 mars
                                                2012
                                                          Live
                                                         Meeting
                                                                   Kinect - Bien gérer la vie de son capteur

         Azure                                 13 mars    Live
                                                                   Sharepoint series - Automatisation des tests
          www.windowsazure.fr                   2012     Meeting

                                               14 mars    Live     TFS Health Check - vérifier la bonne santé de votre
                                                2012     Meeting   plateforme de développement
         Jusqu’à 35% de réduction sur Visual
         Studio Pro, avec l’abonnement MSDN
                                               15 mars    Live     Azure series - Développer pour les téléphones, les
                                                2012     Meeting   tablettes et le cloud avec Visual Studio 2010
          www.visualstudio.fr                  16 mars    Live     Applications METRO design - Désossage en règle d'un
                                                2012     Meeting   template METRO javascript

                                               20 mars    Live     Retour d'expérience LightSwitch, Optimisation de
                                                2012     Meeting   l'accès aux données, Intégration Silverlight

                                               23 mars    Live     OAuth - la clé de l'utilisation des réseaux sociaux dans
                                                2012     Meeting   votre application

Contenu connexe

Tendances

Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...Ouadie LAHDIOUI
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSmartnSkilled
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Quentin Frémeaux
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation ConteneurisationTADx
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hoodsvuillet
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
[Tuto] Web burst : Débordement Web vers Windows Azure
[Tuto] Web burst : Débordement Web vers Windows Azure[Tuto] Web burst : Débordement Web vers Windows Azure
[Tuto] Web burst : Débordement Web vers Windows AzureMicrosoft Technet France
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Quentin Frémeaux
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSmartnSkilled
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en productionJulien Dubois
 
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchéesDrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchéesAurelien Navarre
 

Tendances (20)

Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation Conteneurisation
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
[Tuto] Web burst : Débordement Web vers Windows Azure
[Tuto] Web burst : Débordement Web vers Windows Azure[Tuto] Web burst : Débordement Web vers Windows Azure
[Tuto] Web burst : Débordement Web vers Windows Azure
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutant
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en production
 
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchéesDrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
 

En vedette

Cours windows-2003-server
Cours windows-2003-serverCours windows-2003-server
Cours windows-2003-servermbarek_slide
 
Migration des PME vers Windows 2012 R2 Essentials et Office 365
Migration des PME vers Windows 2012 R2 Essentials et Office 365Migration des PME vers Windows 2012 R2 Essentials et Office 365
Migration des PME vers Windows 2012 R2 Essentials et Office 365Microsoft Technet France
 
Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques
Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques
Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques Microsoft Technet France
 
Active Directory et la Sécurité
Active Directory et la SécuritéActive Directory et la Sécurité
Active Directory et la SécuritéMicrosoft
 
Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...
Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...
Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...Microsoft Technet France
 
Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012Microsoft Technet France
 
installation et configuration du DNS sous Windows serveur 2003
installation et configuration du DNS sous Windows serveur 2003installation et configuration du DNS sous Windows serveur 2003
installation et configuration du DNS sous Windows serveur 2003Souhaib El
 
Microsoft Active Directory
Microsoft Active DirectoryMicrosoft Active Directory
Microsoft Active Directorythebigredhemi
 
Active directory
Active directory Active directory
Active directory deshvikas
 
Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Microsoft Décideurs IT
 
En route vers Active Directory 2012 R2 et au-delà
En route vers Active Directory 2012 R2 et au-delà En route vers Active Directory 2012 R2 et au-delà
En route vers Active Directory 2012 R2 et au-delà Microsoft Décideurs IT
 
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Microsoft Décideurs IT
 
Active Directory Sur Windows 2008 R2
Active  Directory Sur  Windows 2008  R2Active  Directory Sur  Windows 2008  R2
Active Directory Sur Windows 2008 R2SIMOES AUGUSTO
 

En vedette (16)

Cours windows-2003-server
Cours windows-2003-serverCours windows-2003-server
Cours windows-2003-server
 
Migration des PME vers Windows 2012 R2 Essentials et Office 365
Migration des PME vers Windows 2012 R2 Essentials et Office 365Migration des PME vers Windows 2012 R2 Essentials et Office 365
Migration des PME vers Windows 2012 R2 Essentials et Office 365
 
Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques
Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques
Migration vers Active Directory 2012 et 2012 R2 : les meilleures pratiques
 
Active Directory et la Sécurité
Active Directory et la SécuritéActive Directory et la Sécurité
Active Directory et la Sécurité
 
2194 A 02
2194 A 022194 A 02
2194 A 02
 
Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...
Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...
Active Directory en 2012 : les meilleures pratiques en design, sécurité et ad...
 
Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012
 
installation et configuration du DNS sous Windows serveur 2003
installation et configuration du DNS sous Windows serveur 2003installation et configuration du DNS sous Windows serveur 2003
installation et configuration du DNS sous Windows serveur 2003
 
Microsoft Active Directory
Microsoft Active DirectoryMicrosoft Active Directory
Microsoft Active Directory
 
Active directory
Active directory Active directory
Active directory
 
Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !
 
En route vers Active Directory 2012 R2 et au-delà
En route vers Active Directory 2012 R2 et au-delà En route vers Active Directory 2012 R2 et au-delà
En route vers Active Directory 2012 R2 et au-delà
 
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
 
Ad
AdAd
Ad
 
Active Directory Sur Windows 2008 R2
Active  Directory Sur  Windows 2008  R2Active  Directory Sur  Windows 2008  R2
Active Directory Sur Windows 2008 R2
 
Tp ad pod4
Tp ad pod4Tp ad pod4
Tp ad pod4
 

Similaire à JavaScript aussi sur le serveur et jusque dans le cloud?

Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Quentin Adam
 
Comparaison des solutions Paas
Comparaison des solutions PaasComparaison des solutions Paas
Comparaison des solutions Paasyacine sebihi
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tousMicrosoft
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 LyonLeTesteur
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Julien Dubois
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesGaëtan LAVENU
 
Eclipse day paris
Eclipse day parisEclipse day paris
Eclipse day parisLeTesteur
 
Techdays azure pour les développeurs
Techdays azure pour les développeursTechdays azure pour les développeurs
Techdays azure pour les développeursAymeric Weinbach
 
Windows Azure: le cloud pour les développeurs
Windows Azure: le cloud pour les développeursWindows Azure: le cloud pour les développeurs
Windows Azure: le cloud pour les développeursMicrosoft
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchIdriss Neumann
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonStéphane Liétard
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mvMael Monnier
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Microsoft
 

Similaire à JavaScript aussi sur le serveur et jusque dans le cloud? (20)

Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?
 
Comparaison des solutions Paas
Comparaison des solutions PaasComparaison des solutions Paas
Comparaison des solutions Paas
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 Lyon
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
 
Eclipse day paris
Eclipse day parisEclipse day paris
Eclipse day paris
 
Techdays azure pour les développeurs
Techdays azure pour les développeursTechdays azure pour les développeurs
Techdays azure pour les développeurs
 
Windows Azure: le cloud pour les développeurs
Windows Azure: le cloud pour les développeursWindows Azure: le cloud pour les développeurs
Windows Azure: le cloud pour les développeurs
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic search
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mv
 
Native script
Native scriptNative script
Native script
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 

Plus de benjguin

Le Bulletin Azure, épisode 15
Le Bulletin Azure, épisode 15Le Bulletin Azure, épisode 15
Le Bulletin Azure, épisode 15benjguin
 
Le Bulletin Azure, témoignage, Capsule Technologie
Le Bulletin Azure, témoignage, Capsule TechnologieLe Bulletin Azure, témoignage, Capsule Technologie
Le Bulletin Azure, témoignage, Capsule Technologiebenjguin
 
Le bulletin Azure épisode 14: MetricsHub et HDInsight
Le bulletin Azure épisode 14: MetricsHub et HDInsightLe bulletin Azure épisode 14: MetricsHub et HDInsight
Le bulletin Azure épisode 14: MetricsHub et HDInsightbenjguin
 
Le Bulletin Azure épisode 13
Le Bulletin Azure épisode 13Le Bulletin Azure épisode 13
Le Bulletin Azure épisode 13benjguin
 
Le Bulletin Azure, épisode 10
Le Bulletin Azure, épisode 10Le Bulletin Azure, épisode 10
Le Bulletin Azure, épisode 10benjguin
 
Le bulletin Azure épisode 8
Le bulletin Azure épisode 8Le bulletin Azure épisode 8
Le bulletin Azure épisode 8benjguin
 
2012 06-15-la fermeduweb-microsoft
2012 06-15-la fermeduweb-microsoft2012 06-15-la fermeduweb-microsoft
2012 06-15-la fermeduweb-microsoftbenjguin
 
Le Bulletin Azure Mobiles Republic
Le Bulletin Azure Mobiles RepublicLe Bulletin Azure Mobiles Republic
Le Bulletin Azure Mobiles Republicbenjguin
 
Le Bulletin Azure - Témoignage avec ZeCloud
Le Bulletin Azure - Témoignage avec ZeCloudLe Bulletin Azure - Témoignage avec ZeCloud
Le Bulletin Azure - Témoignage avec ZeCloudbenjguin
 
Le Bulletin Azure - Témoignage avec Ysance et SpecialChem
Le Bulletin Azure - Témoignage avec Ysance et SpecialChemLe Bulletin Azure - Témoignage avec Ysance et SpecialChem
Le Bulletin Azure - Témoignage avec Ysance et SpecialChembenjguin
 
Le Bulletin Azure Episode 5
Le Bulletin Azure Episode 5Le Bulletin Azure Episode 5
Le Bulletin Azure Episode 5benjguin
 
2012-01-10-data tuesday
2012-01-10-data tuesday2012-01-10-data tuesday
2012-01-10-data tuesdaybenjguin
 
Le Bulletin Azure, témoignage de V-Trafic et Inifinite Square
Le Bulletin Azure, témoignage de V-Trafic et Inifinite SquareLe Bulletin Azure, témoignage de V-Trafic et Inifinite Square
Le Bulletin Azure, témoignage de V-Trafic et Inifinite Squarebenjguin
 
Le bulletin Azure épisode 3
Le bulletin Azure épisode 3Le bulletin Azure épisode 3
Le bulletin Azure épisode 3benjguin
 
Créez votre application sur Windows Azure avec visual studio 2010
Créez votre application sur Windows Azure avec visual studio 2010Créez votre application sur Windows Azure avec visual studio 2010
Créez votre application sur Windows Azure avec visual studio 2010benjguin
 
AppFabric : le middleware disponible aussi en nuage
AppFabric : le middleware disponible aussi en nuageAppFabric : le middleware disponible aussi en nuage
AppFabric : le middleware disponible aussi en nuagebenjguin
 
Développer un site Web fonctionnel et élastique sur Azure
Développer un site Web fonctionnel et élastique sur AzureDévelopper un site Web fonctionnel et élastique sur Azure
Développer un site Web fonctionnel et élastique sur Azurebenjguin
 
Le bulletin Azure épisode 2
Le bulletin Azure épisode 2Le bulletin Azure épisode 2
Le bulletin Azure épisode 2benjguin
 
Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1benjguin
 
ArchiTech archims web
ArchiTech archims webArchiTech archims web
ArchiTech archims webbenjguin
 

Plus de benjguin (20)

Le Bulletin Azure, épisode 15
Le Bulletin Azure, épisode 15Le Bulletin Azure, épisode 15
Le Bulletin Azure, épisode 15
 
Le Bulletin Azure, témoignage, Capsule Technologie
Le Bulletin Azure, témoignage, Capsule TechnologieLe Bulletin Azure, témoignage, Capsule Technologie
Le Bulletin Azure, témoignage, Capsule Technologie
 
Le bulletin Azure épisode 14: MetricsHub et HDInsight
Le bulletin Azure épisode 14: MetricsHub et HDInsightLe bulletin Azure épisode 14: MetricsHub et HDInsight
Le bulletin Azure épisode 14: MetricsHub et HDInsight
 
Le Bulletin Azure épisode 13
Le Bulletin Azure épisode 13Le Bulletin Azure épisode 13
Le Bulletin Azure épisode 13
 
Le Bulletin Azure, épisode 10
Le Bulletin Azure, épisode 10Le Bulletin Azure, épisode 10
Le Bulletin Azure, épisode 10
 
Le bulletin Azure épisode 8
Le bulletin Azure épisode 8Le bulletin Azure épisode 8
Le bulletin Azure épisode 8
 
2012 06-15-la fermeduweb-microsoft
2012 06-15-la fermeduweb-microsoft2012 06-15-la fermeduweb-microsoft
2012 06-15-la fermeduweb-microsoft
 
Le Bulletin Azure Mobiles Republic
Le Bulletin Azure Mobiles RepublicLe Bulletin Azure Mobiles Republic
Le Bulletin Azure Mobiles Republic
 
Le Bulletin Azure - Témoignage avec ZeCloud
Le Bulletin Azure - Témoignage avec ZeCloudLe Bulletin Azure - Témoignage avec ZeCloud
Le Bulletin Azure - Témoignage avec ZeCloud
 
Le Bulletin Azure - Témoignage avec Ysance et SpecialChem
Le Bulletin Azure - Témoignage avec Ysance et SpecialChemLe Bulletin Azure - Témoignage avec Ysance et SpecialChem
Le Bulletin Azure - Témoignage avec Ysance et SpecialChem
 
Le Bulletin Azure Episode 5
Le Bulletin Azure Episode 5Le Bulletin Azure Episode 5
Le Bulletin Azure Episode 5
 
2012-01-10-data tuesday
2012-01-10-data tuesday2012-01-10-data tuesday
2012-01-10-data tuesday
 
Le Bulletin Azure, témoignage de V-Trafic et Inifinite Square
Le Bulletin Azure, témoignage de V-Trafic et Inifinite SquareLe Bulletin Azure, témoignage de V-Trafic et Inifinite Square
Le Bulletin Azure, témoignage de V-Trafic et Inifinite Square
 
Le bulletin Azure épisode 3
Le bulletin Azure épisode 3Le bulletin Azure épisode 3
Le bulletin Azure épisode 3
 
Créez votre application sur Windows Azure avec visual studio 2010
Créez votre application sur Windows Azure avec visual studio 2010Créez votre application sur Windows Azure avec visual studio 2010
Créez votre application sur Windows Azure avec visual studio 2010
 
AppFabric : le middleware disponible aussi en nuage
AppFabric : le middleware disponible aussi en nuageAppFabric : le middleware disponible aussi en nuage
AppFabric : le middleware disponible aussi en nuage
 
Développer un site Web fonctionnel et élastique sur Azure
Développer un site Web fonctionnel et élastique sur AzureDévelopper un site Web fonctionnel et élastique sur Azure
Développer un site Web fonctionnel et élastique sur Azure
 
Le bulletin Azure épisode 2
Le bulletin Azure épisode 2Le bulletin Azure épisode 2
Le bulletin Azure épisode 2
 
Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1
 
ArchiTech archims web
ArchiTech archims webArchiTech archims web
ArchiTech archims web
 

JavaScript aussi sur le serveur et jusque dans le cloud?

  • 1. palais des congrès Paris 7, 8 et 9 février 2012
  • 2. JavaScript aussi sur le serveur et jusque dans le cloud ? 7 février 2012 Benjamin Guinebertière Stéphane Rios www.benjguin.com @stefounet relation technique CEO / CTO Founder architectes Fasterize (fasterize.com) Microsoft France
  • 3. Fasterize Startup créée mi-2011, en phase de beta privée Accélérateur de site Web en mode SaaS  Optimise les pages HTML à la volée  Réduit le temps de chargement des pages HTML  Améliore le trafic, taux de transfo, SEO, etc …  Ultra-simple à intégrer Node.js  Utilisateurs depuis mi-2010  Au cœur de notre architecture Cloud  Rackspace / Openstack  DevOps / Chef
  • 4. Plan Contexte JavaScript côté serveur Comment Microsoft met cela en œuvre  Node.JS sur Windows Azure  Installation de serveurs open source sur Windows Azure  Hadoop On Azure et Hadoop sur Windows Server Conclusion
  • 5. 15 ans de JavaScript Historique rapide JavaScript  Création en 1995 par Brendan Eich  Standardisé ensuite via ECMAScript  Rien à voir avec Java JavaScript s’impose partout  De plus en plus de code client  HTML statique  HTML généré côté serveur  HTML généré côté serveur et côté client (Ajax)  HTML généré uniquement côté client (SPA)  HTML5 / Web Services REST  Browser, RIA, Database, Application Server JSON gagne du terrain sur XML  Stockage côté serveur (ex: bases NoSQL orientées documents)  Exécuter du JavaScript côté serveur
  • 6. Les moteurs JS Différents moteurs  Chakra (IE)  {Spider|Jaeger|Trace}.Monkey (Mozilla)  V8 (Chrome)  Rhino (JVM)  Nitro (Apple)  Carakan (Opera) Evolution des moteurs  Course à la performance lancée par Chrome  JIT, dernières versions de JS (1.8.5)
  • 7. Le langage JavaScript Quelques spécificités de ce langage orienté objets  Dynamique (runtime vs compilation)  Pas de typage fort  Quelques pièges dûs aux transtypage automatique  Types primitifs restreints : Number, String, Boolean, undefined, null  Types natifs : Array, Date, Objects, Regexp  Prototypes  Pas de classes mais possibilité d’avoir des constructeurs  Fonctions  Objets comme les autres  Peuvent être passées en paramètre, assignées à des variables, des propriétés d’objet, modifiées, etc …  Callback !  Scope, this & closures
  • 8. Un même langage côté client et serveur? Fondamentaux du langage sont les mêmes …  Syntaxe, portée des variables, opérateurs, non typé  … … Mais  Côté client on manipule principalement le DOM  Côté serveur, plutôt pas (fs, net)  D’où des frameworks différents (ou pas de framework) Début de réutilisation de code (socket.io, commonJS, underscoreJS) Réutilisation des compétences
  • 9. JavaScript côté serveur Premier essai en 1996 avec Netscape (Livewire) De nombreuses plateformes  Node.js, Rhino, CouchDB, Jaxer, APE Les moteurs JS côté serveur sont-ils adaptés ?  V8  roadmaps Node.JS vs Google  Limite mémoire V8 à 1,5 Go  Mais peu besoin de mémoire  Rhino tourne dans la JVM => adapté  Chakra est orienté client uniquement
  • 10. Et Microsoft ? Microsoft accompagne ce mouvement important  Sur Windows Azure  Egalement sur Windows Server Exemples dont nous allons parler:  Node.JS  MongoDB  Hadoop
  • 12. Node.JS Node.JS a été créé par Ryan Dahl chez Joyent en 2009 C’est un « framework » permettant de développer des services haute performances sur un modèle asynchrone Modèle asynchrone plus performant et plus efficace que le classique modèle multithread quand on a beaucoup I/O  Pas nouveau ! JavaScript choisi car adapté au développement asynchrone grâce à ses forts aspects fonctionnels Intègre les protocoles réseaux en standard (ex: HTTP) Librairie système entièrement asynchrone Version 0.6.9 stable / 0.7.2 unstable
  • 13. Hello Node var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end('Hello Node !'); }).listen(8124, '127.0.0.1'); console.log('Server running at http://127.0.0.1:8124/');
  • 14. Hello Node++ var http = require('http'),mysql = require('mysql'), client = mysql.createClient({user: 'root'})); client.query('use castle;'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/json'}); client.query('select * from dragons',function (err,data){ if (err) { res.end('ERROR'); } else { res.end(JSON.stringify(data)); } }); }).listen(8124, '127.0.0.1'); console.log('Server running at http://127.0.0.1:8124/');
  • 15. Windows Azure Training Kit Plusieurs tutoriaux existent et décrivent comment écrire sa première application avec Node.JS et Windows Azure  Windows Azure Training Kit (PowerShell, documentation)  Cloud9  IDE en ligne  Suppport de Node.JS  Support de Windows Azure  Fonctionnalités intégrées : édition, versionning, debug, deploy
  • 16. Node.JS dans Windows Azure Microsoft aide officiellement Ryan Dahl à porter Node.JS sur Windows depuis juin 2011 Utilise IOCP Node est constitué d’un seul exécutable, node.exe, donc très simple à inclure dans un Worker Role Supporte Windows Azure et Windows Server 2003+
  • 17. Node.JS sur Windows Azure proxy avec modifications de données
  • 18. Modèle monothreadé ! Ne jamais bloquer !!! Créer plusieurs process pour monter en charge  Donc clusteriser pour avoir plusieurs instances  Avec des proxys  Entre Internet et Node.JS  IIS (avec module HTTP iisnode)  Entre Node.JS et les données (par exemple)  connection pooling Complémentarité Node.JS et son frontal  Nginx classiquement  IIS dans le cas d’Azure  Certains cas d’utilisation à déléguer au frontal:  Ressources statiques  Authentification
  • 19. Ecosystème Communauté très active  IRC, mailing list, wiki, github Npm : Node Package Manager (inclus en v0.6) Beaucoup de modules (~6800 sur npm)  Express (Sinatra-like)  Request  Socket.io  Dnode  Optimist Version 0.8 se focalise sur cet écosystème
  • 20. Les pièges à éviter Asynchrone  Race conditions  Soupe de callbacks, lisibilité du code  Librairies « flow control » : async.js, step.js, flow.js, … Monothreadé => plusieurs process  Clustering natif en 0.6 Encodage  ASCII/UTF-8 only Les API changent TRÈS vite  Les modules aussi  Culture Devops : déployer souvent
  • 21. Node.JS sur Windows Azure serveur de chat
  • 22. Mongo DB Une des bases noSql importantes du moment Base orientée documents  Stocke du JSON  Procédures stockées en JavaScript
  • 23. MongoDB et Windows Azure http://www.mongodb.org/display/DOCS/MongoDB+on+Azur e https://github.com/mongodb/mongo-azure http://www.interoperabilitybridges.com/Azure/Getting_Starte d_Guide_Node_with_MongoDB.asp Comparaison avec les services fournis par Windows Azure  Tables et Blobs Windows Azure  SQL Azure Federations
  • 24. Node.JS accédant à des tables MongoDB sur Windows Azure
  • 25. Hadoop: implémentation de Map/Reduce Extrait de « Hadoop Tutorial from Yahoo!" (Yahoo! Inc.) / CC BY 3.0 »
  • 26. Exemple: comptage de mots Map:  Pour chaque mot trouvé  Émettre <<le mot>>, 1 Shuffle (magiquement géré par le Framework) Reduce  Pour toutes les occurrences reçues clef, valeur (même clef)  Comptage += valeur  Émettre clef, comptage
  • 30. Hadoop – vue d’ensemble
  • 31. En JavaScript, c’est plus lent ? En l’occurrence non, car  Le moteur Hadoop est écrit en Java  Le JavaScript tourne dans Rhino (JVM)  Pas de « streaming » Sur un jeu de test de 50 Go de texte  En streaming (communication via stdin / stdout) : 130% de plus que Java  JavaScript : 15% de plus que Java
  • 32. Maintenant, analysons des logs IIS Scénario Web Role Azure (grosse ferme Web) Accumulation de logs IIS (Windows Azure Blobs) Sélection, formattage, tri, aggrégat s dans un cluster Hadoop
  • 33. Création d’un cluster à la demande
  • 34. Création d’un cluster à la demande
  • 35. Connexion aux Blobs Windows Azure
  • 36. Analyse de logs IIS HD H D
  • 37. Hadoop On Azure en JavaScript
  • 38. Conclusion JavaScript prend de plus en plus d’importance  Y compris sur le serveur Adoption forte par Microsoft  Node.JS sur Windows Azure  Autres moteurs tels que MongoDB  Hadoop sur Windows Azure et Windows
  • 39. Des ressources Windows Azure gratuites Testez Windows Azure Abonnés MSDN, vous gratuitement pendant bénéficiez de 90 jours Windows Azure  http://aka.ms/  http://aka.ms/ tester-azure-90j activer-azure-msdn
  • 40. Pour aller plus loin Prochaines sessions des Dev Camps Chaque semaine, les 10 Live Open Data - Développer des applications riches avec le DevCamps février 2012 Meeting protocole Open Data ALM, Azure, Windows Phone, HTML5, OpenData 16 Live Azure series - Développer des applications sociales sur février http://msdn.microsoft.com/fr-fr/devcamp 2012 Meeting la plateforme Windows Azure 17 Live Comprendre le canvas avec Galactic et la librairie février Téléchargement, ressources 2012 Meeting three.js 21 et toolkits : RdV sur MSDN février 2012 Live Meeting La production automatisée de code avec CodeFluent Entities http://msdn.microsoft.com/fr-fr/ 2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour 2012 Meeting Windows Phone 7, iOS et Android Les offres à connaître 6 mars 2012 Live Meeting Nuget et ALM 90 jours d’essai gratuit de Windows 9 mars 2012 Live Meeting Kinect - Bien gérer la vie de son capteur Azure 13 mars Live Sharepoint series - Automatisation des tests www.windowsazure.fr 2012 Meeting 14 mars Live TFS Health Check - vérifier la bonne santé de votre 2012 Meeting plateforme de développement Jusqu’à 35% de réduction sur Visual Studio Pro, avec l’abonnement MSDN 15 mars Live Azure series - Développer pour les téléphones, les 2012 Meeting tablettes et le cloud avec Visual Studio 2010 www.visualstudio.fr 16 mars Live Applications METRO design - Désossage en règle d'un 2012 Meeting template METRO javascript 20 mars Live Retour d'expérience LightSwitch, Optimisation de 2012 Meeting l'accès aux données, Intégration Silverlight 23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans 2012 Meeting votre application

Notes de l'éditeur

  1. V120127a
  2. http://www.microsoft.com/france/mstechdays/programmes/parcours.aspx#DomID=a1b85459-4eaa-471a-8927-1be7c76fdbb2&amp;SessionID=965a01d5-bd2f-4b60-847f-6d28900fe1e5JavaScript aussi sur le serveur et jusque dans le cloud ?JavaScript prend de plus en plus d&apos;importance et Microsoft rend son exécution très efficace. Nous verrons dans cette session les cas d&apos;utilisation de ce langage sur la plateforme Microsoft au niveau du serveur que ce soit par exemple avec Node.js ou Map/Reduce sur Windows Server et Windows Azure.
  3. L&apos;auteur de Node.JS a vu dans le langage une plateforme idéale pour mettre en oeuvre un serveur dédiée aux entrées-sorties hautes performances asynchrones.Quels cas d&apos;usage? Le Web bien sûr, même si l&apos;architecture de Node.JS paraisse un peu extrême par rapport au trafic typiquement servi par un serveur HTTP classique. Mais surtout tous les échanges de messages effectués dans un cadre &quot;temps réel&quot; : serveurs de discussions (&quot;tchat&apos;&quot;), jeux en réseaux, jeux sociaux, traitement de flux de données, diagnostics temps réel, tableaux de bord, etc.generallyanything about DMA, interrupts, mouse/keyboard/joystick drivers programming, gameprogramming, soundprogramming, multiprocessing.For decades, asynchronous and eventdrivenprogramming has been the domain of hardware leveldevelopers &amp; gamedevelopers.Lib entièrement asynchrone : pas comme twisted, eventmachine
  4. Node.JS est né dans le monde Linux, mais est activement en cours de portage vers Windows, avec le soutien de Microsoft. Il se trouve que Windows dispose en effet d&apos;un mécanisme d&apos;I/O asynchrone natif nommé XXXXX, bien différent des API POSIX, mais qui permettra un portage natif de qualité.L&apos;un des objectifs est bien entendu de pouvoir faire tourner Node.JS facilement sur Windows Azure, afin de bénéficier des apports de l&apos;approche Platform As A Service, étendus au monde Node.JS.
  5. hadoopdistcp asv://logs/iis demoiislogs0#ls iislogs0#dus iislogs0runJs(&quot;bin/iisLogsAnalysis.js&quot;, &quot;iislogs0&quot;, &quot;demoiislogs0HD&quot;)runJs(&quot;bin/iisLogsAnalysisToH.js&quot;, &quot;iislogs0HD&quot;, &quot;demoiislogs0H&quot;)runJs(&quot;bin/iisLogsAnalysisToD.js&quot;, &quot;iislogs0HD&quot;, &quot;demoiislogs0D&quot;)pig.from(&quot;iislogs0H&quot;, &quot;dummy, sessionID, username, startDateTime, endDateTime, nbHits:long&quot;).select(&quot;username, sessionID, nbHits&quot;).orderBy(&quot;nbHits DESC&quot;).take(10).to(&quot;iislogs0Htop10&quot;)#cat iislogs0Htop10/part-r-00000file = fs.read(&quot;iislogs0Htop10&quot;)data = parse(file.data, &quot;username, sessionID, nbHits:long&quot;)graph.pie(data)graph.bar(data, { x: &quot;username&quot;, y: &quot;nbHits&quot;, orientation: &quot;90&quot; })