The Khan Academy Scales and Simplifies with Google App Engine
Based in Mountain View, California, the Khan Academy is a not-for-profit that produces and posts a vast collection of free educational online videos about math and science topics ranging from algebra and trigonometry to biology and economics. Millions of students, educators and self-learners around the world watch the videos, both on the Khan Academy’s YouTube™ channel and on its hugely popular website (www.khanacademy.org), where students answer some 1.5 million practice questions per school day. The Khan Academy’s development team continually tweaks the site based on how visitors choose to learn.
The Khan Academy’s beginnings date back to 2004, when Sal Khan’s cousin asked him to remotely tutor her daughter in math. Khan was happy to help and more than qualified, given his three MIT degrees and his Harvard MBA. As more relatives and friends asked Khan for tutoring assistance, he began videotaping short lessons and posting them to YouTube. His knack for distilling complex concepts into easy-to-follow tutorials helped the videos go viral.
Khan maintained a website for his growing video library for several years, but the platform experienced limitations as traffic increased. At the same time, media attention was growing and technology industry leaders, including Microsoft® founder Bill Gates and Silicon Valley venture capitalist John Doerr, began lending their support and evangelizing Khan’s mission and work. It was at this point that Khan quit his job as a hedge fund analyst to devote his full-time attention to the site’s growing potential.
“With Google App Engine, we don’t need a system administrator or anyone dedicated to deploying our app, so 99 percent of our time is spent working on our application.”
Ben Kamens lead developer, Khan Academy
“Sal knew he needed to offload the technical and maintenance concerns so he could work on what was important, which was to make more videos for the Khan Academy library,” explains Ben Kamens, lead developer for the Khan Academy. “To grow, it was important for him to be able to stop worrying about things like deployment issues and running his own server.”
The Khan Academy chose Google App Engine as its hosting and application development platform because Google App Engine could easily house its growing collection of 2,000-plus videos, resolving the organization’s overall server and maintenance issues with a single solution.
Using Google App Engine freed the team to focus on the user experience and the array of content that makes the academy such a powerhouse.
“A lot of what the Khan Academy is about is collecting data on student behavior so we can teach them better,” Kamens says. “Did they use a hint? Have they watched the video before? That data is being stored on Google App Engine so we can figure out what the most effective videos are, or where students struggle the most.”
The Khan Academy provides individual profiles to students so they can analyze their learning progress, which means the organization needs systems running in the background to collect and track of all this data. Because Google App Engine takes care of server support, the Khan Academy’s five developers can spend almost all of their time improving site functionality.
“If we didn’t have Google App Engine, we’d be spending a lot more time figuring out server setup and working on routers,” he says. “Our ability to focus on the actual product is the benefit of Google App Engine.”
With the Google App Engine dashboard, which provides information like response time, uptime and error rates, the development team also has an easy way to watch over site performance. “It lets us see what the average response time is, so we can keep it really low,” Kamens explains.
During the U.S. school year, the Khan Academy receives more than 3.8 million unique visits a month – all served through Google App Engine. To support this much traffic, a typical company would need an internal system administration staff.
“With Google App Engine, we don’t need a system administrator or anyone dedicated to deploying our app, so 99 percent of our time is spent working on our application,” explains Kamens. “Our application lives on Google App Engine, and we bank all of our scalability and traffic concerns on Google App Engine. Even huge traffic spikes from Sal’s media appearances don’t worry us since we know that Google App Engine will handle the spike.”
Kamens also likes the fact that he and his team can turn to the Google App Engine support team for assistance when they need it. He also finds helpful tips on the Google App Engine blog.
The Khan Academy staff has come to completely rely on Google App Engine. “We are constantly using more of Google App Engine’s capabilities and have been happy with the performance,” Kamens says. “It’s nice to have an easy deployment process since we deploy the site on average at least once a day, [and] sometimes up to nine or 10 times [a day].”