Your SlideShare is downloading. ×
Harnessing the cloud to create social mobile apps that scale
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Harnessing the cloud to create social mobile apps that scale

803

Published on

This is a discussion at the 2011 Web 2.0 Expo SF event, with Jim Zimmerman, CTO of Thuzi. We shared lessons on how to use the cloud for social apps that inevitably need dramatic scale to be a …

This is a discussion at the 2011 Web 2.0 Expo SF event, with Jim Zimmerman, CTO of Thuzi. We shared lessons on how to use the cloud for social apps that inevitably need dramatic scale to be a success.

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

  • Be the first to like this

No Downloads
Views
Total Views
803
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Resources:Whitepapers You May LikeSQL Azure: http://www.microsoft.com/en-us/sqlazure/whitepapers.aspxWindows Azure: http://www.microsoft.com/windowsazure/whitepapers/default.aspxInteroperability assets: http://www.interoperabilitybridges.com/Discussion:Azure Platform TenetsWeb scaleHaving enough resources for your app, when you need itAs a company we understand scale given such cloud solutions as Windows Update, MSN, XBox liveUtility billing model - pay for what you useAn Open platformAny comment that we are a closed platform is simply incorrectBased on open RESTful standards to engage any device using HTTP servicesResurces for Eclipse, PHP, Java and othersVisit http://www.interoperabilitybridges.com/PaaSThis is “Platform as a Service” – building a new app or re-architecting an existing one to evolve it in some manner. The Platform enables you to transform your current solutions to take advantage of the cloud, yet harness on-prem servicesWhy PaaS?Focus your precious headcount on the app and customer dataYour on-prem datacenters have inconsistent infrastructures while Azure is a standardized environmentYou don’t spend time / effort to take care of OS patches and security upgrades, because Azure is maintained for you. Additional IT capacity does not mean you are swamping your team with more maintenanceYou don’t need to plan for peak load, you just use the on-demand scaleYou don’t worry about how to avoid and recover from failures, you use something built to expect and withstand failureMicrosoft’s PaaS is about the developer harnessing a whole range of possibilities And about non-MSFT technologies like Java, PHP, Ruby, etc.We are unique in the ability to federate and have single identity across our platformsAvailable in 41 countries (as of April 2011)AustraliaAustriaBelgiumBrazilCanadaChileColombiaCosta RicaCyprusCzech RepublicDenmarkFinlandFranceGermanyGreeceHong KongHungaryIndiaIrelandIsraelItalyJapanLuxemburgMalaysiaMexicoNetherlandsNew ZealandNorwayPeruPhilippinesPolandPortugalPuerto RicoRomaniaSingaporeSpainSwedenSwitzerlandTrinidad and TobagoUKUnited States
  • Transcript

    • 1. Harnessing the Cloud to Create Social Mobile Apps That Scale
      Jim Zimmerman
      CTO, Thuzi (Facebook Preferred Partner)@jimzim
      Abe Pachikara
      US Cloud Computing Developer Adoption Lead, Microsoft
      Twitter: @abepachikara
    • 2. Agenda – Using the Cloud to…
      The Grand Intersection: Mobile, Social, Success 
      The Challenges
      How to, Lessons, Tips and Tricks
      Examples
      1
    • 3. Mobile Usage of Smartphones Simply Exploding
      Smartphones up 75% in 2010 worldwide from 310 million in 2010 to 390 million in 2013 - IDC
      Source: IDC
      Source: The Nielsen Company
      2
    • 4. 900
      Million
      90
      Social is Getting Bigger Too, Particularly on Mobile
      200
      Million
      2x
      # Objects that people interact with (pages, groups, events and community pages)
      Average user creates 90 content pieces each month
      # Active users currently accessing Facebook through their mobile devices
      Use of Facebook from a mobile device vs. non-mobile device
      Source: Facebook
      3
    • 5. Social Promotions running on Facebook spike easy
      Fans
      Week 1
      Week 2
      Outback Steakhouse
      350,000 people sign up - - in 12 days
      670,000 in 5 weeks, (but that is only .17% of Facebook at time of the promotion!)
      Day 1 Signups for Thuzi’s clients
      4
    • 6. But Social Apps, Well That’s Another Story:They Need Amazing Scale
      The Backend Need:
      Run 1 million updates, daily
      (that’s right,
      daily !)
      …. And Each User Has 50 Friends
      … Let’s say only 20k users buy the app, run it on…
      Mobile phones
      & Tablets
      The App:
      Friend Related Status or Data
      5
    • 7. So Let’s Talk About Relevant Design Patterns
      The Backend Need:
      Run 1 million updates, daily
      (that’s right,
      daily !)
      The App:
      Friend Related Status or Data
    • 8. Multiple Devices All Talking to the Cloud
      If the app you are creating is successful, how will you scale?
      How quick do you want to get to market?
      Database, document storage, async coding practices
      Nearly unlimited access to more compute power when needed
      Do you want to spend more money on IT staff to manage servers or spend more on developers
      7
    • 9. So…. What is the Windows Azure Platform?
      Web Scale
      App Fabric
      Compute
      Management
      Storage
      (“No-SQL “)
      CDN
      Data Sync
      Marketplace
      Relational database
      Web Services APIs (for interoperability and portability)
      Utility Billing Model
      Developer Experience - Use existing skills and tools.
      Open Platform based on RESTful standards
      Housekeeping: See “Speaker Notes” sections for useful resources
      8
    • 10. Data Strategies for Cloud Scale Apps
      Partitioning data key to cloud scale apps
      Horizontally partition for scale out
      Vertically partition for cost/performance
      Choose appropriate partition keys
      Table storage requires different approach to data modeling.
      Don’t be afraid to aggressively de-normalize and duplicate data
    • 11. Scaling to millions in the Cloud
      The Device:
      Mobile phone
      Tablet
      NoSQL
      Storage
      Web Server Instances
      (Web Roles)
      Background Processes
      (WorkerRoles)
      Get Newsfeed
      Message Queues
      Post Message
      Relational Database
      External APIs
      10
    • 12. Client side Javascript and HTML 5 Features
      $.post("./Service/AddMessage", personMsg, function (result) {
      $.ajax(“./Service/GetFeed”, function (r) {
      saveToLocalStorage(“data”, r.data);
      });
      });
      function saveToLocalStorage(key, value) {
      if (typeof (localStorage) == 'undefined') {
      // alert('Your browser does not support HTML5 localStorage. Try upgrading.');
      } else {
      try {
      var serialized = JSON.stringify(value);
      localStorage.setItem(key, serialized); //saves to the database, "key", "value"
      } catch (e) {
      alert(e);
      }
      }
      }
      11
    • 13. Using the Windows Azure Toolkit for scheduling
      CloudEngineengine = new CloudEngine();
      Action<MessageHandlerSettings> configSettings = c =>
      {
      c.BatchSize = 32;
      c.MaxThreads = 1;
      c.MaxRetries = 1;
      c.IntervalBetweenRuns = TimeSpan.FromMinutes(1);
      };
      engine.WithMessageHandler<PersonMessage, CallPersonCommand>(configSettings);
      // Azure C# Side
      varblob = new EntitiesBlobContainer<PersonMessageView>();
      vardata = blob.Get(“personMessages");
      varmsgs= data.AllMessages;
      return msgs;
    • 14. Examples – Ruby Tuesday Bracket challenge
      Leaderboard
      How do you figure out who is winning among your friends
      Bracket points
      Show points so far on individual brackets
      20 points win round 1, 40 round 2, 80 round 3, etc
      13
    • 15. Ruby Tuesday Facebook Leaderboard
      14
    • 16. Ruby Tuesday Bracket – Viewable from Devices also
      15
    • 17. TownHall
      A social engagement platform hosted on Windows Azure and available for organizations to customize and monetize
      16
    • 18. Building Blocks
      TownHall
      Also:
      • Native code
      • 19. iPhone, iPad, WP7, Blackberry, Android – April 30th
      • 20. Titanium has “Accelerator” that is cross platform
      • 21. Scales very well
      • 22. Can handle 8 million per hour
      • 23. To deploy…
      • 24. Create Azure account
      • 25. Run scripts to deploy the database
      • 26. Use VS Express 2010 or the trial
      • 27. Moderated forums
      • 28. Community forums
      • 29. Themes available out of the box
      • 30. Points + Badges for engagement
      • 31. Events functionality
      • 32. Polling
      • 33. Ideas site
      • 34. Scalable (cloud hosted)
      • 35. Customizable
      17
    • 36. Examples of Townhall in Actual Use
      NASA JPL
      “BE A MARTIAN”
      UNITED WAY WORLDWIDE “CAMPAIGN FOR COMMON GOOD”
      COLOMBIAN PRESIDENTIAL
      CANDIDATE
      CEOs FOR CITIES
      “OF, BY AND FOR YOU”
      NEBNY EGYPTIAN CROWDSOURCING
      US HOUSE REPUBLICANS
      “AMERICA SPEAKING OUT”
      O’REILLY MEDIA
      GOV 2.0 FORUM
      WHITE HOUSE/US DEPT OF EDUCATION “ASK ARNE”b
    • 37. Resources you can use today
      General Bits and Runtimes
      Facebook related assets:
      • C# SDK – http://facebooksdk.codeplex.com/
      • 38. Azure Toolkit – http://azuretoolkit.codeplex.com/
      • 39. Technical walkthru - http://www.devx.com/MS_Azure/Article/46308
      Mobile Assets: Tapping the cloud for Windows Phone apps
      • Cloud cover session
      • 40. Team blog posting
      Try Azure for yourself:
      http://bit.ly/jimonazure,
      Promocodejimonazure
      Apps To Repurpose
      TownHall App can be found here –
      Next major rev will be delivered by April 30
      Here’s a useful datasheet
      19
    • 41. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
      The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
    • 42. Appendix – Other resources you may like
    • 43. “Growing Fast“
      “On and Off “
      Inactivity
      Period
      Compute
      Compute
      Average Usage
      Usage
      Average
      Time
      Time
      On and off workloads (e.g. HPC or batch job)
      Over provisioned capacity is wasted
      Time to market can be cumbersome
      Successful services needs to grow/scale
      Remove upfront CAPEX investment barrier
      Complex lead time for deployment
      “(Un)predictable Bursting“
      “Business Critical LOB“
      Compute
      Compute
      Average Usage
      Average Usage
      Time
      Time
      Unexpected/unplanned peak in demand
      Services with seasonality trends
      Can’t over provision for extreme cases
      Business/divisional opportunities
      Time to market – agile support of business
      Development and deployment backlog
      Cloud Scenarios
    • 44. Extra Credit: Windows Azure Resources
      Learn
      “What is the Windows Azure Platform?” 4 min video
      Windows Azure Case Studies
      Deploying a large scale app, Virtual Lab
      Azure developer center
      Using your MSDN Premium Benefits
      Microsoft’s Datacenters
      Security Talk Series
      Watch Professional Developers Conference sessions
      Get
      Windows Azure Tools for Microsoft Visual Studio
      Windows Azure Platform Training Kit
      Interoperability tools
      Join
      BizSpark, for startups
      The vibrant online community – https://channel9.msdn.com/Shows/Cloud+Cover
      Also on Facebook – www.facebook.com/windowsazure

    ×