SlideShare a Scribd company logo
1 of 18
Building Node.js
         applications on
         Windows Azure

Aidan Casey
About me
• solutions architect at MYOB
• born in Dublin Ireland, living in Australia since 2006
• 16 years development experience working with Microsoft
  technologies
• currently working on a cloud platform for the next generation
  of MYOB’s accounting products – (C#.NET ,WCF, REST, SQL
  Server, .NET 4.0)


               aidancasey@gmail.com

               @AIDANJCASEY

               git@github.com:aidancasey
Agenda

• Introduction to node.js
• Review tooling, Azure SDK and development experience
• Build and deploy a chat room application using Windows Azure
  SDK for Node.js
• When should I use it?
What is node.js?

• Server side technology for building scalable network
  programs.
• Executes server side JavaScript code using Google's V8
  JavaScript engine
• Asynchronous non-blocking programming model.
• Highly scalable
Timeline
                                                    July 2011              Nov 2011
                                                                           Windows Azure
                                        Nov 2010    LinkedIn adopts        support
                                        Cloud9IDE   node for mobile
                                        launches    platform               EBay releases API
                                                                           built on node
                                                    port to Windows
Jan 2009              April 2010                                                               Feb 2012
Created Ryan Dahl                                                          Cloud9IDE azure
                      Heroku launches               IISNode                                    App Harbour
                                                                           support
                      node support                                                             support




               2009         2010                                2011                                  2012



                                                                       Oct 2011 node.js
                               July 2010                              overtakes Ruby as
                               Yammer adopts                          most popular
                               node.js                                repo on gitHub

                                                                      Walmart
                                                                      Launch mobile
                                                                      site on node.js
Event Loop Processing Explained
Traditional Web server synchronous I/O model

Request 1001          Request 1             Web Server (with 1000 threads)

Request 1002                                      thread 1 processes the request
                                                  and blocks till completion
Request 1003                       Response 1


                      Request 1000
                                                  thread 1000 processes the request
 Requests queue up
                                                  and blocks till completion
 as blocked threads               Response 1000
   wait on server
Single threaded event loop model

                                             Web Server
                             Request 1

                             Request 99999     Single threaded
                                               event Loop


                                Response 5     • Listen for requests
                                Response 1     • starts any I/O operations by
                                                 specifying a call back to execute
                                Response 99999    on completion
                                               • Continue to listen for requests
“With node.js everything runs in parallel
Except your code ! ”
Don’t Block!

 Since the event loop runs on a single thread you must avoid blocking calls at all times.
 Blocking code blocks everything!

Blocking code….




Non-blocking code…
Demo : build a http webserver in 6
lines of code!
Debugging Node Apps

console.log(“my debug message”)
Node Inspector (Chrome/Safari/FireFox)
Demo : Cloud9IDE




 http://c9.io/
Node Package Manager

• NPM registry contains over 8000 open source packages
• Packages are easily installed from command line tool (node
  package manger)
• Not all packages are cross platform (some target O/S specific
  features)
• Beware of dependency hell !


Popular packages include…
Express (web dev framework), Socket.IO (real-time
comms), Jade (templating engine), OAuth, Node-Static (serves
static content)
Windows Azure SDK for Node.js

                                        NPM for
     Node.js              IISNode
                                        WIndows


                                  Azure
                Azure
                                PowerShell
               Emulator
                                 cmdlets
Windows Azure SDK for Node.js

• Really easy to deploy (locally / cloud) using PowerShell cmdlets
• Azure package gives access to
  – blob service, table service, queue service, service bus …
• Currently you can’t deploy multiple node apps to the same
  instance 
• You need to push up the source code for all packages you use
• Debugging supported via IISNode & node Inspector
Deep dive: Building a real-time Chat
Room with Node.js , Sockets.io and
Knockout.js


 http://saugnodechatapp.cloudapp.net/
When should I use it?

chat / messaging type apps
real time apps ( stocks / ticker tape)
highly concurrent
single page apps with lots of asynchronous calls (Gmail etc.)
good for serving lots of dynamic content
Suits small development teams
applications that have a lot of concurrent connections and
 each request only needs very few CPU cycles
Building node.js applications on windows azure

More Related Content

What's hot

iOS5 开发新特性
iOS5 开发新特性iOS5 开发新特性
iOS5 开发新特性yangdj
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKPaul Withers
 
Private cloud 201 how to build a private cloud
Private cloud 201 how to build a private cloud Private cloud 201 how to build a private cloud
Private cloud 201 how to build a private cloud Harold Wong
 
Games + Amazon = Love - Presentation quo vadis 2011
Games + Amazon = Love - Presentation quo vadis 2011Games + Amazon = Love - Presentation quo vadis 2011
Games + Amazon = Love - Presentation quo vadis 2011Thomas Lobinger
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureMarco Parenzan
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)Simon Haslam
 
User Transparent Service Migration to the Cloud
User Transparent Service Migration to the CloudUser Transparent Service Migration to the Cloud
User Transparent Service Migration to the CloudTim Mackey
 
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...Microsoft
 
Citrix with Microsoft EMS
Citrix with Microsoft EMSCitrix with Microsoft EMS
Citrix with Microsoft EMSMarius Sandbu
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practiceOpenCity Community
 
Using Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStackUsing Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStackTim Mackey
 

What's hot (14)

iOS5 开发新特性
iOS5 开发新特性iOS5 开发新特性
iOS5 开发新特性
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDK
 
Private cloud 201 how to build a private cloud
Private cloud 201 how to build a private cloud Private cloud 201 how to build a private cloud
Private cloud 201 how to build a private cloud
 
Games + Amazon = Love - Presentation quo vadis 2011
Games + Amazon = Love - Presentation quo vadis 2011Games + Amazon = Love - Presentation quo vadis 2011
Games + Amazon = Love - Presentation quo vadis 2011
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with Azure
 
Mini-Training: Node.js
Mini-Training: Node.jsMini-Training: Node.js
Mini-Training: Node.js
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)
 
User Transparent Service Migration to the Cloud
User Transparent Service Migration to the CloudUser Transparent Service Migration to the Cloud
User Transparent Service Migration to the Cloud
 
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
 
Citrix with Microsoft EMS
Citrix with Microsoft EMSCitrix with Microsoft EMS
Citrix with Microsoft EMS
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practice
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Using Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStackUsing Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStack
 
IaaS azure_vs_amazon
IaaS azure_vs_amazonIaaS azure_vs_amazon
IaaS azure_vs_amazon
 

Viewers also liked

Intro to Node.js (for .NET Developers)
Intro to Node.js (for .NET Developers)Intro to Node.js (for .NET Developers)
Intro to Node.js (for .NET Developers)David Neal
 
Strace debug
Strace debugStrace debug
Strace debugluo jing
 
Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...
Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...
Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...DigitalBinx
 
#citizencurators presented at #gagldn October Event
#citizencurators presented at #gagldn October Event#citizencurators presented at #gagldn October Event
#citizencurators presented at #gagldn October EventDigitalBinx
 
Cloud computing
Cloud computingCloud computing
Cloud computinganumidha
 

Viewers also liked (8)

Intro to Node.js (for .NET Developers)
Intro to Node.js (for .NET Developers)Intro to Node.js (for .NET Developers)
Intro to Node.js (for .NET Developers)
 
Anupreksha Jain
Anupreksha JainAnupreksha Jain
Anupreksha Jain
 
Cloud revolution
Cloud revolutionCloud revolution
Cloud revolution
 
Strace debug
Strace debugStrace debug
Strace debug
 
Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...
Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...
Nick Bain from Morgan Group Hotels Presents Hashtag Marketing at #gagldn Octo...
 
Arinjay
ArinjayArinjay
Arinjay
 
#citizencurators presented at #gagldn October Event
#citizencurators presented at #gagldn October Event#citizencurators presented at #gagldn October Event
#citizencurators presented at #gagldn October Event
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 

Similar to Building node.js applications on windows azure

A Journey Begin with Node.js
A Journey Begin with Node.jsA Journey Begin with Node.js
A Journey Begin with Node.jsKhalid Farhan
 
An Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows AzureAn Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows AzureTroy Miles
 
Building businesspost.ie using Node.js
Building businesspost.ie using Node.jsBuilding businesspost.ie using Node.js
Building businesspost.ie using Node.jsRichard Rodger
 
Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]Mihail Mateev
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS drupalcampest
 
Quick introduction to nodeJs
Quick introduction to nodeJsQuick introduction to nodeJs
Quick introduction to nodeJsAram Rafeq
 
Node.js and Enterprise Web Apps: Know all About it
Node.js and Enterprise Web Apps: Know all About itNode.js and Enterprise Web Apps: Know all About it
Node.js and Enterprise Web Apps: Know all About itFibonalabs
 
Net core vs. node.js what to choose when
Net core vs. node.js  what to choose when Net core vs. node.js  what to choose when
Net core vs. node.js what to choose when Katy Slemon
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVadym Lotar
 
Node.js and .NET Core.pdf
Node.js and .NET Core.pdfNode.js and .NET Core.pdf
Node.js and .NET Core.pdfAppdeveloper10
 
Node.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNode.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNaveen S.R
 
Node.js: A Guided Tour
Node.js: A Guided TourNode.js: A Guided Tour
Node.js: A Guided Tourcacois
 
Webconf nodejs-production-architecture
Webconf nodejs-production-architectureWebconf nodejs-production-architecture
Webconf nodejs-production-architectureBen Lin
 
Offience's Node showcase
Offience's Node showcaseOffience's Node showcase
Offience's Node showcasecloud4le
 

Similar to Building node.js applications on windows azure (20)

A Journey Begin with Node.js
A Journey Begin with Node.jsA Journey Begin with Node.js
A Journey Begin with Node.js
 
An Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows AzureAn Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows Azure
 
Building businesspost.ie using Node.js
Building businesspost.ie using Node.jsBuilding businesspost.ie using Node.js
Building businesspost.ie using Node.js
 
Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
 
Quick introduction to nodeJs
Quick introduction to nodeJsQuick introduction to nodeJs
Quick introduction to nodeJs
 
Node.js and Enterprise Web Apps: Know all About it
Node.js and Enterprise Web Apps: Know all About itNode.js and Enterprise Web Apps: Know all About it
Node.js and Enterprise Web Apps: Know all About it
 
Net core vs. node.js what to choose when
Net core vs. node.js  what to choose when Net core vs. node.js  what to choose when
Net core vs. node.js what to choose when
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Node.js and .NET Core.pdf
Node.js and .NET Core.pdfNode.js and .NET Core.pdf
Node.js and .NET Core.pdf
 
02 Node introduction
02 Node introduction02 Node introduction
02 Node introduction
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Node.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNode.js In The Enterprise - A Primer
Node.js In The Enterprise - A Primer
 
Node.js: A Guided Tour
Node.js: A Guided TourNode.js: A Guided Tour
Node.js: A Guided Tour
 
Webconf nodejs-production-architecture
Webconf nodejs-production-architectureWebconf nodejs-production-architecture
Webconf nodejs-production-architecture
 
Offience's Node showcase
Offience's Node showcaseOffience's Node showcase
Offience's Node showcase
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Node js
Node jsNode js
Node js
 
Node.js
Node.jsNode.js
Node.js
 

More from Aidan Casey

The Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is NotThe Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is NotAidan Casey
 
Rise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile WorldRise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile WorldAidan Casey
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve successOrganisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve successAidan Casey
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success Aidan Casey
 
Agile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teamsAgile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teamsAidan Casey
 
Creating a sense of purpose in agile teams
Creating a sense of purpose in agile teamsCreating a sense of purpose in agile teams
Creating a sense of purpose in agile teamsAidan Casey
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro servicesAidan Casey
 
Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshareAidan Casey
 
Evolutionary architecture guiding principles
Evolutionary architecture guiding principlesEvolutionary architecture guiding principles
Evolutionary architecture guiding principlesAidan Casey
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro servicesAidan Casey
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developersAidan Casey
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesAidan Casey
 
Cloud arena accelerate your mobile development
Cloud arena   accelerate your mobile developmentCloud arena   accelerate your mobile development
Cloud arena accelerate your mobile developmentAidan Casey
 
Windows azure mobile services from start to rest
Windows azure mobile services from start to restWindows azure mobile services from start to rest
Windows azure mobile services from start to restAidan Casey
 
A lap around AWS
A lap around AWS A lap around AWS
A lap around AWS Aidan Casey
 
Myob beyond patents, practical ways to protect your software ip
Myob    beyond patents, practical ways to protect your software ipMyob    beyond patents, practical ways to protect your software ip
Myob beyond patents, practical ways to protect your software ipAidan Casey
 

More from Aidan Casey (16)

The Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is NotThe Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is Not
 
Rise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile WorldRise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile World
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve successOrganisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success
 
Agile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teamsAgile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teams
 
Creating a sense of purpose in agile teams
Creating a sense of purpose in agile teamsCreating a sense of purpose in agile teams
Creating a sense of purpose in agile teams
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
 
Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshare
 
Evolutionary architecture guiding principles
Evolutionary architecture guiding principlesEvolutionary architecture guiding principles
Evolutionary architecture guiding principles
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developers
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile services
 
Cloud arena accelerate your mobile development
Cloud arena   accelerate your mobile developmentCloud arena   accelerate your mobile development
Cloud arena accelerate your mobile development
 
Windows azure mobile services from start to rest
Windows azure mobile services from start to restWindows azure mobile services from start to rest
Windows azure mobile services from start to rest
 
A lap around AWS
A lap around AWS A lap around AWS
A lap around AWS
 
Myob beyond patents, practical ways to protect your software ip
Myob    beyond patents, practical ways to protect your software ipMyob    beyond patents, practical ways to protect your software ip
Myob beyond patents, practical ways to protect your software ip
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Building node.js applications on windows azure

  • 1. Building Node.js applications on Windows Azure Aidan Casey
  • 2. About me • solutions architect at MYOB • born in Dublin Ireland, living in Australia since 2006 • 16 years development experience working with Microsoft technologies • currently working on a cloud platform for the next generation of MYOB’s accounting products – (C#.NET ,WCF, REST, SQL Server, .NET 4.0) aidancasey@gmail.com @AIDANJCASEY git@github.com:aidancasey
  • 3. Agenda • Introduction to node.js • Review tooling, Azure SDK and development experience • Build and deploy a chat room application using Windows Azure SDK for Node.js • When should I use it?
  • 4. What is node.js? • Server side technology for building scalable network programs. • Executes server side JavaScript code using Google's V8 JavaScript engine • Asynchronous non-blocking programming model. • Highly scalable
  • 5. Timeline July 2011 Nov 2011 Windows Azure Nov 2010 LinkedIn adopts support Cloud9IDE node for mobile launches platform EBay releases API built on node port to Windows Jan 2009 April 2010 Feb 2012 Created Ryan Dahl Cloud9IDE azure Heroku launches IISNode App Harbour support node support support 2009 2010 2011 2012 Oct 2011 node.js July 2010 overtakes Ruby as Yammer adopts most popular node.js repo on gitHub Walmart Launch mobile site on node.js
  • 7. Traditional Web server synchronous I/O model Request 1001 Request 1 Web Server (with 1000 threads) Request 1002 thread 1 processes the request and blocks till completion Request 1003 Response 1 Request 1000 thread 1000 processes the request Requests queue up and blocks till completion as blocked threads Response 1000 wait on server
  • 8. Single threaded event loop model Web Server Request 1 Request 99999 Single threaded event Loop Response 5 • Listen for requests Response 1 • starts any I/O operations by specifying a call back to execute Response 99999 on completion • Continue to listen for requests “With node.js everything runs in parallel Except your code ! ”
  • 9. Don’t Block! Since the event loop runs on a single thread you must avoid blocking calls at all times. Blocking code blocks everything! Blocking code…. Non-blocking code…
  • 10. Demo : build a http webserver in 6 lines of code!
  • 11. Debugging Node Apps console.log(“my debug message”) Node Inspector (Chrome/Safari/FireFox)
  • 12. Demo : Cloud9IDE http://c9.io/
  • 13. Node Package Manager • NPM registry contains over 8000 open source packages • Packages are easily installed from command line tool (node package manger) • Not all packages are cross platform (some target O/S specific features) • Beware of dependency hell ! Popular packages include… Express (web dev framework), Socket.IO (real-time comms), Jade (templating engine), OAuth, Node-Static (serves static content)
  • 14. Windows Azure SDK for Node.js NPM for Node.js IISNode WIndows Azure Azure PowerShell Emulator cmdlets
  • 15. Windows Azure SDK for Node.js • Really easy to deploy (locally / cloud) using PowerShell cmdlets • Azure package gives access to – blob service, table service, queue service, service bus … • Currently you can’t deploy multiple node apps to the same instance  • You need to push up the source code for all packages you use • Debugging supported via IISNode & node Inspector
  • 16. Deep dive: Building a real-time Chat Room with Node.js , Sockets.io and Knockout.js http://saugnodechatapp.cloudapp.net/
  • 17. When should I use it? chat / messaging type apps real time apps ( stocks / ticker tape) highly concurrent single page apps with lots of asynchronous calls (Gmail etc.) good for serving lots of dynamic content Suits small development teams applications that have a lot of concurrent connections and each request only needs very few CPU cycles

Editor's Notes

  1. cd C:\\SAUG New-AzureServiceDebugDemoAdd-AzureNodeWebRole-- edit the fileStart-AzureEmulator -launch-- add breakpointhttp://127.0.0.1:81/server.js/debug/http://127.0.0.1:81http://127.0.0.1:81/server.js/kill