Server in the sky: Getting started with Google App Engine
Getting development resources from IT departments takes time. It can take months, even for a priority project. Then there’s the tussle for resources and software, for tools and for expertise. With IT teams setting priorities that might not be aligned with your business needs, the app you need may be too late or, as is often the case, never built.
That’s where the cloud and Bring Your Own Development (BYODev) come in -- you find the tools that are needed when you need them. It’s no wonder then that Platform as a Service environments like Google’s App Engine are becoming increasingly popular. Sure, you have to pay for the resources you use, but with a corporate credit card and a cooperative manager, you can build and run the app you need when you need it, for as long as required. $25 – or even $250 – for a month of running an app in the cloud is a fraction of the cost of servers, software, and developer time.
Google designed App Engine for web applications. That means it’s quick and easy build HTML apps that just need a browser (though you can easily take advantage of REST endpoints in your code to link it to desktop and mobile apps). It’s built around the old familiar CGI features that have driven web apps since the 90s, but uses modern tooling to give you the speed and performance you expect. Apps are driven by request handlers, which are accessed via URLs, using the webapp framework to simplify your code and handle the underlying complexity of HTTP for you. Webapp also gives you tooling to support HTML forms, managing input and output.
That’s much the same as most other PaaS services, whether it’s Azure or Heroku. But App Engine differs in that it gives you access to key elements of Google’s infrastructure. So you can use Google’s user tooling to add authentication to your apps, either using Google accounts or OpenID for single sign on services (there’s also OAuth support for app-to-app authentication). It’s also possible to work with Google’s storage tools, both to manage large amounts of data, and using parallel programing techniques to quickly process and explore data. Google is also providing experimental endpoints for mobile devices, but these can change – so keep them for apps that aren't going to become business essential.
The documentation for App Engine’s Datastore has been written by a master of ironic understatement:“Storing data in a scalable web application can be tricky”.
Luckily for us, we can take advantage of Google’s cloud scale experienc. Google App Engine’s High Replication Datastore distributes data across Google’s datacenters, making it extremely resilient. The HDR is a hierarchical entity store, so you can’t treat it like a traditional database. You’ll need to structure data differently, thinking about working with entity groups in a store that only guarantees eventual consistency. The App Engine data store works well for semi-structured information, where you're collecting and collating information. More structured data can use a cloud hosted version of MySQL, or can be stored in Google Sheets via the Google Docs web APIs.
This week, a National Transportation Safety Board judge dismissed a $10,000 fine that the U.S. Federal Aviation Administration had lodged against a photographer who had used a drone to take aerial photos for the University of Virginia. The judge found that the FAA hadn't actually issued any enforceable rules regarding the use of commercial drones.
If you've got a Windows XP machine -- either at home or in the office -- consider yourself lucky. In the past, you'd upgrade to a more recent Windows operating system without a thought. Today, you have many options.
It's designed for the 3.5 billion people who have feature phones today. It solves technical problems Google is not interested in and is a better fit for the pre-paid phones popular in developing countries. The only trick is getting developers on board.
The cloud has overcome a lot of its technical challenges, especially when it comes to security. But the biggest problems in cloud computing now are cultural.