SlideShare une entreprise Scribd logo
1  sur  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.

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Dernier

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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Dernier (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

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.