Node.js dans Azure

814 views
625 views

Published on

Coupler les mécanismes évènementiels nativement asynchrones du framework opensource node.hjs avec un hébergement dans IIS permet aujourd'hui d'implémenter des solutions extrêmement « scalables » sur la plateforme Windows. Si l'on ajoute à cette recette l'ingrédient Cloud, les gains n'en sont que plus nombreux : self-provisioning, élasticité, facturation à l'utilisation.... L'objectif de cette session est de présenter différents contextes d’utilisation du framework node.js dans Azure : Cloud Services PaaS, Web Site, Azure Mobiles Services

Speaker : Stéphane Goudeau (Microsoft)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
814
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Node.js dans Azure

  1. 1. node.js et Windows Azure Stéphane Goudeau Microsoft stephgou@microsoft.com Architecture/Azure/Cloud
  2. 2. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Architecture/Azure/Cloud
  3. 3. NODE.JS : INTRODUCTION #mstechdays Architecture/Azure/Cloud
  4. 4. node.js • node.js est un framework opensource événementiel permettant de développer des applications réseau en JavaScript – Tous les requêtes sont asynchrones et s’exécutent sur un seul thread – Utilise le moteur JavaScript V8 de Google et un wrapper C++ optimisé pour gérer les I/O • Construction de services en ligne scalables – Gestion de la concurrence assurée directement par l'OS – Exemples de solution utilisant node.js : Yammer, Yahoo!, WalMart, LinkedIn, eBay,… • http://nodejs.org • http://www.nodebeginner.org/ #mstechdays Architecture/Azure/Cloud
  5. 5. Modules node.js • Environnement extrêmement modulaire • Exemples de modules : – – – – – "fs" : système de fichier "net" : réseau, TCP "crypto" : cryptographie "http" : serveur web "socket.io" : web sockets et long polling = require('http'); var http http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello Worldn'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); #mstechdays Architecture/Azure/Cloud
  6. 6. node.js package manager • L’outil npm est inclus dans le livrable node.js • Catalogue de modules : connect Standard middleware Sinatra like web framework: routing + templates Real time communication over WebSockets/polling – http://npmjs.org – 58 468 packages (2/09/2014)… Full-stack MVC (wants to be like Rails) NoSQL data storage In-memory cache jsdom #mstechdays Parse/generate HTML on the server Architecture/Azure/Cloud
  7. 7. NODE.JS ET WINDOWS AZURE #mstechdays Architecture/Azure/Cloud
  8. 8. node.js et Windows Azure #mstechdays Architecture/Azure/Cloud
  9. 9. node.js et IaaS Azure #mstechdays Architecture/Azure/Cloud
  10. 10. Configuration d’une VM Azure Linux sudo apt-get -y update sudo apt-get install -y g++ libssl-dev apache2-utils curl git-core git clone git://github.com/joyent/node.git cd node git checkout v0.8.18 ./configure make sudo make install node -v http://www.redbitdev.com/monitoring-social-media-with-social-cloud #mstechdays Architecture/Azure/Cloud
  11. 11. Configuration d’une VM Azure Windows MSI node.js #mstechdays Microsoft Web PI Architecture/Azure/Cloud
  12. 12. Module IISNode : node.js hébergé dans IIS • Gestion des processus • Scalabilité sur des serveurs multicœurs • Auto-update • Access aux logs via HTTP • Intégration avec d’autres types de contenu • Très peu d’impact sur le code node.js • Supervision dans IIS • https://github.com/WindowsAzure/ii snode • benefits of iisnode #mstechdays Architecture/Azure/Cloud
  13. 13. Optimisation de node.js + IIS sur des serveurs multi-coeurs déployés dans Azure if "%EMULATED%"=="true" exit /b 0 REM Count the total number of available processors on this system powershell -c "exit [System.Environment]::ProcessorCount" REM set the default number of processes for our app pools in IIS equal to the number of available processors %windir%system32inetsrvappcmd set config section:applicationPools applicationPoolDefaults.processModel.maxProce sses:%ErrorLevel% #mstechdays Architecture/Azure/Cloud
  14. 14. node.js et PaaS Azure #mstechdays Architecture/Azure/Cloud
  15. 15. Web Role ou Worker Role node.js • • Un web role node.js utilise le module IISNode en le chargeant comme un module additionnel ASP.NET dans IIS. Le package de déploiement crée une startup task pour installer IISNode dans la ou les instances du web role #mstechdays • Un worker role hébergeant une application node.js est implémenté avec la fonction ProgramEntryPoint exposée dans le fichier ServiceDefinition.csdef qui permet de spécifier un programme comme étant le point d’entrée du worker role : node.exe .server.js Architecture/Azure/Cloud
  16. 16. Optimisation de node.js + IIS sur des serveurs multi-coeurs déployés dans Azure PaaS <Startup> <!-- Included by default; installs everything you need to run Node on Azure --> <Task commandLine="setup_web.cmd" executionContext="elevated"> <Environment> <Variable name="EMULATED"> <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" /> </Variable> </Environment> </Task> <Task commandLine="setMaxProcessesToAvailableProcessors.cmd" executionContext="elevated"> <Environment> <Variable name="EMULATED"> <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" /> </Variable> </Environment> </Task> </Startup> #mstechdays Architecture/Azure/Cloud
  17. 17. Montée de version node.js dans Azure • L’installation du Windows Azure SDK for node.js inclut une version ancienne de node.js (v0.6.20) que l’on peut modifier à condition qu’elle soit supportée : – • Set-AzureServiceProjectRole "HelloWebRole" node 0.10.21 Les versions de node.js accessibles via cette commande se limitent à celles disponibles dans la liste résultant de l’appel par la commande – Get-AzureServiceProjectRoleRuntime Runtime : Node Version : 0.10.21 PackageUri : http://az413943.vo.msecnd.net/node/0.10.21.exe IsDefault : False http://blogs.msdn.com/b/stephgou/archive/2014/01/10/gestion-des-montees-de-versionnodejs-dans-windows-azure.aspx #mstechdays Architecture/Azure/Cloud
  18. 18. PROVISIONNING PAAS D’APPLICATION NODE.JS #mstechdays Architecture/Azure/Cloud
  19. 19. node.js et Azure Web Sites #mstechdays Architecture/Azure/Cloud
  20. 20. node.js hébergé dans Windows Azure Web Sites • Simplicité de mise en œuvre • Les applications node.js hébergées dans Windows Azure Web Sites s’exécutent dans un iisnode • Azure Web Site propose nativement un mécanisme de sélection de version de node.js #mstechdays Architecture/Azure/Cloud
  21. 21. DÉVELOPPEMENT D’UNE APPLICATION NODE.JS ET PUBLICATION SUR UN AZURE WEB SITE #mstechdays Architecture/Azure/Cloud
  22. 22. node.js et Azure Mobile Services #mstechdays Architecture/Azure/Cloud
  23. 23. Windows Azure Mobile Services • « Back-end as a Service » pour vos apps mobiles • Étendre les apps web internes à des périphériques mobiles • Construire et déployer rapidement des applications grand public • Un unique back-end pour toutes vos apps • Sur tous les périphériques #mstechdays Architecture/Azure/Cloud
  24. 24. Support de custom API node.js • Création et exposition de Custom APIs – Implémentées avec node.js • Support des packages NPM: – Installation dans le référentiel Git local – Synchronisation des #mstechdays services mobiles Architecture/Azure/Cloud
  25. 25. NODE.JS ET AZURE MOBILE SERVICES #mstechdays Architecture/Azure/Cloud
  26. 26. CONCLUSION #mstechdays Architecture/Azure/Cloud
  27. 27. Hébergement d’une application node.js dans Windows Azure : les critères de choix + : Choix de l’OS (Windows, Linux), contrôle de la VM - : Gestion de la VM (mise à jour, préprovisionning…) + : Simplicité d’utilisation - : Difficile d’aller au delà du modèle proposé #mstechdays Windows Azure Virtual Machines (IaaS) Windows Azure Web Sites (PaaS) Cloud Services (PaaS) + : Gestion simplifiée - : Réinstallation de node.js à chaque redémarrage de VM Windows Azure Mobile Services Utilisation de Services pour les applications mobiles Windows Azure Architecture/Azure/Cloud
  28. 28. node.js : Outils et technologies Microsoft • Extension Visual Studio – https://nodejstools.codeple x.com • Visual Studio Online • Web Matrix • CmdLets PowerShell – https://github.com/Windows Azure/azure-sdk-tools #mstechdays Architecture/Azure/Cloud
  29. 29. node.js : Outils et technologies Microsoft • Nodejs Developper Center – http://www.windowsazure.com/ en-us/develop/nodejs • Libraries for Azure services – https://github.com/WindowsAzu re/azure-sdk-for-node • Windows Azure Client Library for node – https://npmjs.org/package/azur #mstechdays Architecture/Azure/Cloud e
  30. 30. Digital is business

×