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.
With news this week that Google Compute Engine cloud is now generally available, the battle in the Infrastructure-as-a-Service market has hit a new level. The biggest question is: Can Google give the kingpin of the public IaaS market, Amazon Web Services (AWS), a run for its money?
KitKat, the latest version (4.4) of Android, has been downloaded to only 1.1% of active Android smartphones and tablets since its debut on Halloween nearly five weeks ago. What's the hold-up?
A new app makes it quick and easy for users to project content from an Android phone or tablet to a wide range of smart TVs and set-top boxes like the Apple TV, Roku devices, Xbox 360, and Xbox One. While still in beta, it offers a lot of flexibility and has the potential to be a presentation Swiss Army knife for mobile professionals.