SlideShare a Scribd company logo
1 of 17
MY CLOUD +
WINDOWS PHONE    @jeffwilcox
                 Developer, 4th & Mayor

    EXPERIENCE
JEFF’S TOPICS
My cloud environment
$$$
The cloud APIs I expose
Staging and Production Environments
Connecting to the cloud from my client application
Logging and Statistics
Migration challenges
Scale
Push Notifications for Node.js / Azure open source
MY CLOUD ENVIRONMENT
Amazon Web Services                           Windows Azure
   DNS (Route 53)                             Web Sites
   Compute (EC2)                               API Web Services (Node.js)
                                                Web Site www.4thandmayor.com
   Load Balancing (ELB)
                                                Staging Environment for APIs & main Web Site
   Storage (S3) & CDN
                                                Live Tile Generation*
   Text and Email Notifications (SNS)         Cloud Service Worker Role: Mail
   Intra-region data transfer to 3rd party     Processing
    services                                   Cloud Service Web Role: SSL Load
                                                Balancer
MongoLab
                                               Table Storage Service
 Hosted MongoDB in US-EAST-1AWS
     User Data, Push Processing Queues        Virtual Machines
                                                Linux: Statsd statistics & time/data store
 Hosted MongoDB in West US / Azure Store
     Web Site Sessions                        Windows Azure Store
MY CLOUD ENVIRONMENT
Amazon Web Services                           Windows Azure
   DNS (Route 53)                             Web Sites                    $50-$100*
   Compute (EC2)         $25-$150              API Web Services (Node.js)              *trial/partially free compute
                                                Web Site www.4thandmayor.com
   Load Balancing (ELB)
                                                Staging Environment for APIs & main Web Site
   Storage (S3) & CDN
                                                Live Tile Generation*
   Text and Email Notifications (SNS)         Cloud Service Worker Role: Mail
   Intra-region data transfer to 3rd party     Processing
    services                                   Cloud Service Web Role: SSL Load
                                                Balancer
MongoLab                     $40
 Hosted MongoDB in US-EAST-1AWS
                                               Table Storage Service
     User Data, Push Processing Queues        Virtual Machines
                                                Linux: Statsd statistics & time/data store
 Hosted MongoDB in West US / Azure Store
     Web Site Sessions       FREE             Windows Azure Store
BILLS
AZURE PORTAL ROCKS!
CLOUD APIS
My Services                                                  Storage-hosted services
 Push notification connections, disconnects,                   What’s new content
  push URI changes                                              Known current version number
 Automated Crash Reports                                       Version-specific kill bits, global kill bit
 Email crash reports & mail parsing                            Standard tiles
 Custom live tile generation
                                                            3rd Party Services
 App settings & preferences                                  Foursquare
 Continuous processing queue                                 Google Analytics
   Live tiles, toasts, new users, upgrade logic, special
    tasks                                                    3rd Party Tools
                                                              UserVoice ($0)
   Platform/version-specific tasks & services
                                                              Tumblr ($0)
                                                              GitHub ($12)
STAGING & PRODUCTION
Debug builds target my staging environment
Staging uses modified JSON values (keys, certificates, etc.)
Git deployment with Azure Web Sites makes it quick & easy


Production challenges
Version-specific endpoints
Migration between providers
Database and cloud downtime
AUTHENTICATION, KEYS,
CERTS…
Environment variable MODE assign staging/production value
Environment variable APP assigns service: e-mail processing, worker, web,
API host
JSON-based configuration loaded through configuration.js
CONNECTING FROM THE
CLIENT APP
HttpClient NuGet/PCL
Retry policies, handling HTTP status
GZip Compression


RestSharp
JSON.NET
Caching technology & strategies; AgFx
LOGGING & STATISTICS
Logs                                     Stats
   Detailed                                Statsd, Graphite, Carbon
   Table storage                           Time scale storage
   Per-user                                UDP
   Winston (Node.js logger) extension      Fire and forget
                                            Linux VM on Azure or EC2 Instance
                                              DNS
MIGRATION CHALLENGES
> 150,000 users in active processing   Foursquare is in US-EAST-1 (AWS)


DNS hosting helps w/transitions        Statsd helps show trends during
                                       tests

Free time
SCALE
Smart per-user resource allocation


Web Sites Reserved Instances: Size & Count


Mongo-based consistency enables multiple workers


DNS Load Balancing
PUSH NOTIFICATIONS FOR
NODE.JS
MPNS module
 Windows Phone 7-8
 Dev: Jeff
 Source: https://github.com/jeffwilcox/mpns


WNS module
 Windows 8
 Dev: Tomek
 Source: https://github.com/WindowsAzure/wns
OPEN SOURCE AZURE
Consider Windows Azure
Mobile Services for your next app!


Resources at:
http://windowsazure.com/

Check the OSS team out online:
http://windowsazure.github.com/
NOTES
4th & Mayor is a trademark of Wilcox Digital, LLC
This presentation was created for a “Windows Phone Garage” event on
3/14/2013
Opinions are Jeff Wilcox’s alone.

More Related Content

Similar to My cloud + Windows Phone app experience

Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarborCloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarborSvetlin Nakov
 
Windows Azure For Architects
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For ArchitectsAnko Duizer
 
Alex Wade, Digital Library Interoperability
Alex Wade, Digital Library InteroperabilityAlex Wade, Digital Library Interoperability
Alex Wade, Digital Library Interoperabilityparker01
 
Azure: Lessons From The Field
Azure: Lessons From The FieldAzure: Lessons From The Field
Azure: Lessons From The FieldRob Gillen
 
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...GeeksLab Odessa
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DayTechMaster Vietnam
 
C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to CloudStuart Lodge
 
AWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacksAWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacksEmmanuel Quentin
 
Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaRyan Cuprak
 
Public Cloud Platforms for .NET Developers
Public Cloud Platforms for .NET DevelopersPublic Cloud Platforms for .NET Developers
Public Cloud Platforms for .NET DevelopersSvetlin Nakov
 
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...Amazon Web Services
 
Azure - Irish Developer Community Talk - May 2010
Azure - Irish Developer Community Talk  - May 2010Azure - Irish Developer Community Talk  - May 2010
Azure - Irish Developer Community Talk - May 2010paulfallon
 
Azure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App PlatformAzure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App Platformgiventocode
 
Clouds clouds everywhere
Clouds clouds everywhereClouds clouds everywhere
Clouds clouds everywhereMatt Deacon
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform   March 2010Understanding The Azure Platform   March 2010
Understanding The Azure Platform March 2010DavidGristwood
 
Windows Azure for .NET Developers
Windows Azure for .NET DevelopersWindows Azure for .NET Developers
Windows Azure for .NET Developersllangit
 
Serverless Data Platform
Serverless Data PlatformServerless Data Platform
Serverless Data PlatformShu-Jeng Hsieh
 

Similar to My cloud + Windows Phone app experience (20)

Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarborCloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
 
Windows Azure For Architects
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For Architects
 
Alex Wade, Digital Library Interoperability
Alex Wade, Digital Library InteroperabilityAlex Wade, Digital Library Interoperability
Alex Wade, Digital Library Interoperability
 
Azure: Lessons From The Field
Azure: Lessons From The FieldAzure: Lessons From The Field
Azure: Lessons From The Field
 
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
 
Migrating Apps To Azure
Migrating Apps To AzureMigrating Apps To Azure
Migrating Apps To Azure
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech Day
 
C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to Cloud
 
AWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacksAWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacks
 
Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS Lambda
 
Public Cloud Platforms for .NET Developers
Public Cloud Platforms for .NET DevelopersPublic Cloud Platforms for .NET Developers
Public Cloud Platforms for .NET Developers
 
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
 
A Lap Around Azure
A Lap Around AzureA Lap Around Azure
A Lap Around Azure
 
Windows Azure
Windows AzureWindows Azure
Windows Azure
 
Azure - Irish Developer Community Talk - May 2010
Azure - Irish Developer Community Talk  - May 2010Azure - Irish Developer Community Talk  - May 2010
Azure - Irish Developer Community Talk - May 2010
 
Azure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App PlatformAzure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App Platform
 
Clouds clouds everywhere
Clouds clouds everywhereClouds clouds everywhere
Clouds clouds everywhere
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform   March 2010Understanding The Azure Platform   March 2010
Understanding The Azure Platform March 2010
 
Windows Azure for .NET Developers
Windows Azure for .NET DevelopersWindows Azure for .NET Developers
Windows Azure for .NET Developers
 
Serverless Data Platform
Serverless Data PlatformServerless Data Platform
Serverless Data Platform
 

Recently uploaded

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

My cloud + Windows Phone app experience

  • 1. MY CLOUD + WINDOWS PHONE @jeffwilcox Developer, 4th & Mayor EXPERIENCE
  • 2. JEFF’S TOPICS My cloud environment $$$ The cloud APIs I expose Staging and Production Environments Connecting to the cloud from my client application Logging and Statistics Migration challenges Scale Push Notifications for Node.js / Azure open source
  • 3. MY CLOUD ENVIRONMENT Amazon Web Services Windows Azure  DNS (Route 53)  Web Sites  Compute (EC2)  API Web Services (Node.js)  Web Site www.4thandmayor.com  Load Balancing (ELB)  Staging Environment for APIs & main Web Site  Storage (S3) & CDN  Live Tile Generation*  Text and Email Notifications (SNS)  Cloud Service Worker Role: Mail  Intra-region data transfer to 3rd party Processing services  Cloud Service Web Role: SSL Load Balancer MongoLab  Table Storage Service  Hosted MongoDB in US-EAST-1AWS  User Data, Push Processing Queues  Virtual Machines  Linux: Statsd statistics & time/data store  Hosted MongoDB in West US / Azure Store  Web Site Sessions  Windows Azure Store
  • 4. MY CLOUD ENVIRONMENT Amazon Web Services Windows Azure  DNS (Route 53)  Web Sites $50-$100*  Compute (EC2) $25-$150  API Web Services (Node.js) *trial/partially free compute  Web Site www.4thandmayor.com  Load Balancing (ELB)  Staging Environment for APIs & main Web Site  Storage (S3) & CDN  Live Tile Generation*  Text and Email Notifications (SNS)  Cloud Service Worker Role: Mail  Intra-region data transfer to 3rd party Processing services  Cloud Service Web Role: SSL Load Balancer MongoLab $40  Hosted MongoDB in US-EAST-1AWS  Table Storage Service  User Data, Push Processing Queues  Virtual Machines  Linux: Statsd statistics & time/data store  Hosted MongoDB in West US / Azure Store  Web Site Sessions FREE  Windows Azure Store
  • 7. CLOUD APIS My Services Storage-hosted services  Push notification connections, disconnects,  What’s new content push URI changes  Known current version number  Automated Crash Reports  Version-specific kill bits, global kill bit  Email crash reports & mail parsing  Standard tiles  Custom live tile generation 3rd Party Services  App settings & preferences  Foursquare  Continuous processing queue  Google Analytics  Live tiles, toasts, new users, upgrade logic, special tasks 3rd Party Tools  UserVoice ($0)  Platform/version-specific tasks & services  Tumblr ($0)  GitHub ($12)
  • 8. STAGING & PRODUCTION Debug builds target my staging environment Staging uses modified JSON values (keys, certificates, etc.) Git deployment with Azure Web Sites makes it quick & easy Production challenges Version-specific endpoints Migration between providers Database and cloud downtime
  • 9. AUTHENTICATION, KEYS, CERTS… Environment variable MODE assign staging/production value Environment variable APP assigns service: e-mail processing, worker, web, API host JSON-based configuration loaded through configuration.js
  • 10. CONNECTING FROM THE CLIENT APP HttpClient NuGet/PCL Retry policies, handling HTTP status GZip Compression RestSharp JSON.NET Caching technology & strategies; AgFx
  • 11. LOGGING & STATISTICS Logs Stats  Detailed  Statsd, Graphite, Carbon  Table storage  Time scale storage  Per-user  UDP  Winston (Node.js logger) extension  Fire and forget  Linux VM on Azure or EC2 Instance  DNS
  • 12. MIGRATION CHALLENGES > 150,000 users in active processing Foursquare is in US-EAST-1 (AWS) DNS hosting helps w/transitions Statsd helps show trends during tests Free time
  • 13. SCALE Smart per-user resource allocation Web Sites Reserved Instances: Size & Count Mongo-based consistency enables multiple workers DNS Load Balancing
  • 14. PUSH NOTIFICATIONS FOR NODE.JS MPNS module  Windows Phone 7-8  Dev: Jeff  Source: https://github.com/jeffwilcox/mpns WNS module  Windows 8  Dev: Tomek  Source: https://github.com/WindowsAzure/wns
  • 15. OPEN SOURCE AZURE Consider Windows Azure Mobile Services for your next app! Resources at: http://windowsazure.com/ Check the OSS team out online: http://windowsazure.github.com/
  • 16.
  • 17. NOTES 4th & Mayor is a trademark of Wilcox Digital, LLC This presentation was created for a “Windows Phone Garage” event on 3/14/2013 Opinions are Jeff Wilcox’s alone.