Google App Engine
- What is Google App Engine, exactly? and
- Are there implications or applications for education?
After spending the past two days immersed in the Google I/O conference, I want to try to answer both of these. First, what it is:
- Free hosting for Python-based web applications (up to 5M pageviews/month)
- A Google-specific data model based on their BigTable non-relational data storage system
- An API to access Google’s user authentication, image manipulation, mail, memcache, and URL fetching services
- Plus a simple, optional Open Source framework for building webapps that uses Django-style templates
- A local development environment designed to simulate the deployment environment as accurately as possible (via a localhost web server)
Offered by an entity as powerful (both financially and technically) as Google this has the potential to really accelerate web application development and deployment. They claim it will make scaling much simpler as well. Of course, App Engine isn’t going to be a miracle solution to all problems. But it really does seem to abstract away a lot of the fiddly sysadmin details (buying hosting accounts, setting up databases, configuring web servers, etc.) and let you focus on the programming task. So, to address the second main question, what does this mean for education?
1. There is a huge opportunity to teach students how to build real live web applications, since you no longer have to set up or buy hosting and the deployment environment or figure out logins and permissions. All it takes is for each student to have a Google Account, and for the teacher to build some curriculum around App Engine. I’m not saying this is easy (you’d need to cover everything from HTTP to Python to HTML for them to really understand) but it now seems possible. And it didn’t seem possible to me before. Context: I’m a computer scientist and I run both FreeBSD and Linux servers at home with Apache/MySQL/PHP, run nameservers for my own DNS, and host a bunch of domains. But was I really going to build out a web app deployment environment for students to hack on? Answer: no.
2. For district and school IT departments, web applications are now easier and cheaper to build and deploy. Because you don’t have to spec the server cost, connectivity costs, or the sysadmin cost as an ongoing expense, it’s much easier to define and limit the scope of a project. In short, you can build apps to solve problems without incurring more problems. This didn’t seem to previously be the case.
3. Coupled with the Google Apps Education Edition, this opens up the potential for schools and districts to provide their faculty, staff, and students with not only email but private web applications completely free. (You can specify that users must login with their in-domain email address to use your app, if you want.) Compare this to the enormous expense that tends to be associated with Microsoft Exchange and Windows Server-based applications, and it starts to make sense to give your IT staff paid time to learn Python. Or did you really like buying those SQL Server 2008 enterprise licenses? How about the Exchange Server 2007 licenses? Imagine using all that money to pay people to do useful work, instead of using it to buy software that creates more work.
4. This means that there is a huge opportunity for Open Source development of Google App Engine applications that can be used to run school districts and schools. So far, adoption of Open Source by districts has been slow (with notable exceptions) because people that work in those IT departments tend not to know how to administer any non-Windows server. Now, they don’t have to know how.
5. The idea of building software for schools could, perhaps, be tied back into the first point. What if students were involved in building web applications needed by their schools? Obviously you don’t turn over responsibility for writing the gradebook or the attendance application, but what about applications to help the Student Council or various clubs keep track of membership or other projects? You can do a lot with a Google Spreadsheet and Forms, but when you outgrow that, the App Engine is waiting.