MBL203 Building a Mobile Application Platform on AWS - AWS re: Invent 2012

1,347 views

Published on

Get under the hood with Parse.com’s founder to see how they used AWS to build their mobile Platform as a Service. In this session, you learn how Parse is using a variety of AWS services including Amazon EC2, S3, ELB, EBS and Route53 to build data storage, push, and easy upload services for mobile developers.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,347
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

MBL203 Building a Mobile Application Platform on AWS - AWS re: Invent 2012

  1. 1. Building Parse on AWSCloud Services for Mobile Developers
  2. 2. Agenda• Why did we start?• What did we build?• How does it work?• What challenges did we face?
  3. 3. What is Parse? A better way to build mobile applications.
  4. 4. Why?• Mobile development is painful• Mobile development is repetitive• Mobile development is expensive
  5. 5. Why?• Many devices• Many gatekeepers• Front end matters, backend - not as much.
  6. 6. PFObject *score = [PFObject objectWithClassName:@"Score"];[score setObject:@1337 forKey:@"points"];[score setObject:@"Ilya" forKey:@"playerName"];[score saveInBackground];
  7. 7. ParsePush push = new ParsePush();push.setMessage("The new Galaxy Nexus is out!");push.sendInBackground();
  8. 8. PFUser *user = [PFUser user];user.username = @"mario";user.password = @"mushroomkingdom";[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {if (!error) { // Hooray! Let them use the app now.}}];
  9. 9. Parse.Cloud.define("averageStars", function(request, response) { var query = new Parse.Query("Review"); query.equalTo("movie", request.params.movie); query.find({ success: function(results) { var sum = 0; for (var i = 0; i < results.length; ++i) { sum += results[i].get("stars"); } response.success(sum / results.length); }, error: function() { response.error("movie lookup failed"); } });});
  10. 10. var twilio = require("twilio");twilio.initialize("twilioAccountSid", "twilioAuthToken");Parse.Cloud.define("myTwilioFunction", function(request, response) { twilio.sendSMS({ From: "+14151231234", To: "+14151234321", Body: "Hello from Cloud Code!" }, { success: function(httpResponse) { response.success("SMS sent!"); }, error: function(httpResponse) { response.error("Uh oh, something went wrong"); } });});
  11. 11. Who’s using it?• 40,000+ apps• Billions of API requests per month• Hundreds of millions of pushes per month
  12. 12. Who’s using it?• Home Depot• Tom’s Shoes• Food Network• Travel Channel• Green Bay Packers• Armani• many more mobile games, utilities, enterprises, etc.
  13. 13. How does Parse Data work?PFObject *score = [PFObject objectWithClassName:@"Score"];[score setObject:@1337 forKey:@"points"];[score setObject:@"Ilya" forKey:@"playerName"];[score saveInBackground];
  14. 14. How does Parse Push work? ParsePush push = new ParsePush(); push.setMessage("The new Galaxy Nexus is out!"); push.sendInBackground();
  15. 15. How does Cloud Code work? Parse.Cloud.define("averageStars", function(request, response) { var query = new Parse.Query("Review"); query.equalTo("movie", request.params.movie); query.find({ success: function(results) { var sum = 0; for (var i = 0; i < results.length; ++i) { sum += results[i].get("stars"); } response.success(sum / results.length); }, error: function() { response.error("movie lookup failed"); } }); });
  16. 16. AWS Challenges• Resiliency to zone failures• EBS performance• Visibility• Chef’ing everything
  17. 17. Resiliency• Multi-zone everything• ELB everything• Moving to RDS for MySQL
  18. 18. EBS Performance
  19. 19. EBS Performance
  20. 20. Visibility
  21. 21. Visibility
  22. 22. Chef’ing everything• Stamping images with every deploy.• Push button for increasing Mongo capacity.• Route53 API to auto-register DNS for every new node.
  23. 23. Future Challenges More responsive autoscaling.
  24. 24. Future ChallengesBalancing cost control vs. slack capacity.
  25. 25. Future Challenges Going multi-region.
  26. 26. Questions? ilya@parse.com

×