Google App Engine has been out of beta for almost a year now, and developers have been mucking about with the PaaS service since 2008. But only recently has Google so craftily made it central to its Google Cloud Platform, which aside from the App Engine, also includes Google’s Compute Engine for hosted Linux VMs, its Cloud Storage (see my post on this service here) data storage infrastructure, and its big data solution called BigQuery (see my other post on this service here). And with all these bundled products tied in under a single, well-integrated platform, on-demand development has never looked so good!
For those unfamiliar with the Google App Engine, put simply, it is a hosted environment for cloud-deployed applications that requires no server configuration or load balancing. Furthermore, application resources can be scaled automatically according to demand, without limit. In terms of cost, Google offers a free, yet restricted, daily quota. If an application needs to scale beyond resources allocated under the free quota limit, one is charged based upon each instance of code that is run, the duration of time it takes to run these instances, outgoing bandwidth, and for any add-ons, such as when opting for a high replication data store or when employing the use of certain APIs. The only thing a developer needs to get started is the App Engine SDK (download here), which one can not only use to deploy applications to the App Engine platform, but also to sandbox programs locally on his/her own computer.
App Engine supports Python (versions 2.5 or 2.7), Java (versions 5 or 6), and Google Go programming languages, as well as Java Virtual Machine (JVM) for JRuby and Rhino. One can also take advantage of App Engine’s growing list of APIs that include anything from adding SNI or VIP SSL support to your application, to augmenting application I/O by making use of memory cache-amongst other APIs for optimizing application speed and performance (e.g., PageSpeed Service API). In fact, there are even APIs for scheduling cron jobs and for creating and querying indexes from application data (i.e., when providing search capabilities in an application). Essentially, with the programming languages available, coupled with App Engine’s APIs, you have everything a self-hosted stack can offer-minus App Engine’s dynamic scalability, of course!
In regard to integration with other Google Cloud Platform services, developers would most obviously want to use Google Cloud Storage for their blobs or files (especially large ones). This service is available by way of the Google Cloud Storage API, a RESTful interface, and/or through the Google Cloud Storage Python API and/or Google Cloud Storage Java API. For developers looking to tap into their big data hosted under a BigQuery instance, imaginably for analytics type purposes, one can assimilate data into Google App Engine derived dashboards (see this resource). Lastly, if the App Engine, Cloud Storage, and BigQuery services are still not enough, Google’s Infrastructure-as-a-Service product for running Linux virtual machines can add another layer of flexibility to round-out a solution stack that can rival the best of any application architecture that boasts scalability, reliability, availability, and manageability. If this is the case, one can then use the Channel API to stream events to the VM, as one would normally do with any Linux box.
If you are newbie, or just need to simply sign up for the App Engine service, you can reference App Engine’s Quick Start Guide, which is part of its underlying developer documentation site (good resource for both programming and application management tips). If cost is a major concern for you, get a complete breakdown of how Google charges for application usage, as well as instructions on how to set a budget to prevent App Engine from using more resources than you’re willing to pay for, here.