Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

English subtitles

← Using App Engine at Scale - Web Development

Get Embed Code
4 Languages

Showing Revision 6 created 05/25/2016 by Udacity Robot.

  1. So we just spent our last unit, unit 6, talking about scaling
  2. and basically 101 uses of memcache.
  3. Now, a lot of the things that we talked about in scaling, you know,
  4. adding new app servers and adding more memcaches and scaling the DB horizontally and through sharding
  5. App Engine does for you.
  6. And have you guys been taking advantages of those features? Has that worked out for you in production?
  7. Absolutely. The auto-scaling is probably the best feature of it.
  8. It works really smoothly. It's very transparent.
  9. And, our traffic definitely has peaks and valleys.
  10. You know, there's been a lot of press, and that brings a lot of traffic,
  11. and with course launches there's a lot of traffic.
  12. There's a lot of traffic as, you know, homework deadlines come up, things like that.
  13. And we can handle that without thinking about it.
  14. Some of the--I wasn't there, but I've heard some stories
  15. from the early classes and the early AI prototype from the fall,
  16. and Mike pretty much was spinning up servers nonstop.
  17. You know, he didn't sleep for a couple of weeks. He was doing nothing but spinning up new virtuals.
  18. And we don't have to do that. We don't have to think about it.
  19. And we just, you know, check each day to see how many instances we have running.
  20. There was a time where we accidentally DDoS'd ourselves with a bug
  21. that was sending way too many requests back to the server, some Ajax requests,
  22. and when we spun up to a couple hundred instances, you know, everything was fine.
  23. Our users were still able to continue, and every site that's learning how to scale has made that mistake.
  24. But most of those other sites took themselves down for the day while they figured out what was going on,
  25. and we were able to figure out what was going on without going down.
  26. So, I think that was just an instance of, you know, kind of proof where it really does work well.
  27. Cool. It's funny to me that you mention on App Engine, you know,
  28. checking how many app servers you have in the morning
  29. because on reddit and Hipmunk that's a number we are really familiar with.
  30. You know, adding a new app server is something we do deliberately
  31. and especially, I know it is with reddit, something with a lot of deliberation beforehand.
  32. You know, how is this going to fit in the architecture?
  33. How is this going to change things, you know, with regards to caching and what not?
  34. And on App Engine, you know, you're working in a different--
  35. You have to kind of develop things in a different style as a result of this nature,
  36. And I wonder if you can comment on kind of how App Engine was designed
  37. and how it kind of fits the way you've done things in the past?
  38. It's really become clear to me in my time that I've been working with it
  39. that it was designed by people that had been through that several times
  40. with different kinds of apps
  41. because the solutions and the things that they provide you kind of has those characteristics
  42. of if you were building something over again just the way you'd do it.
  43. Like if, for example, the queing can get really complex,
  44. and their queing system, you know, well, you create a task; you give it some properties.
  45. The properties that they give you that you can kind of tune are exactly the ones that you'd want to tune.
  46. And then the trigger is just a simple, like, a web hook callback.
  47. And so your worker logic is just like any other request handler,
  48. and it's just very simple, you know, kind of like the least common denominator sort of mentality.
  49. So trying to just simplify things is definitely something that really comes to mind.
  50. Cool.