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

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
 
Azure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App PlatformAzure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App Platform
giventocode
 
Clouds clouds everywhere
Clouds clouds everywhereClouds clouds everywhere
Clouds clouds everywhere
Matt Deacon
 

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

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.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.