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.
10. ParsePush push = new ParsePush();
push.setMessage("The new Galaxy Nexus is out!");
push.sendInBackground();
14. 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.
}
}];
17. 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");
}
});
});
19. 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"); }
});
});
20. Who’s using it?
• 40,000+ apps
• Billions of API requests per month
• Hundreds of millions of pushes per month
21. Who’s using it?
• Home Depot
• Tom’s Shoes
• Food Network
• Travel Channel
• Green Bay Packers
• Armani
• many more mobile games, utilities, enterprises, etc.
22. How does Parse Data work?
PFObject *score = [PFObject objectWithClassName:@"Score"];
[score setObject:@1337 forKey:@"points"];
[score setObject:@"Ilya" forKey:@"playerName"];
[score saveInBackground];
24. How does Parse Push work?
ParsePush push = new ParsePush();
push.setMessage("The new Galaxy Nexus is out!");
push.sendInBackground();
26. 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");
}
});
});
34. Chef’ing everything
• Stamping images with every deploy.
• Push button for increasing Mongo capacity.
• Route53 API to auto-register DNS for every new node.