Tuesday, April 24, 2012

App Engine 1.6.5 Released

April showers -- and a bit more than showers -- have kept us happily inside working away on our fourth release of this year (we are really looking forward to those flowers). Today’s release includes some updates to the Datastore and the runtimes, new features for the Images API, and more!

Datastore

We’ve introduced an experimental type of query, projection queries, in the Datastore. For the SQL fans amongst us, this is similar to queries of the form:


SELECT Property1, Property2 FROM MyEntity ORDER BY Property3

Projection queries have the same cost and performance characteristics as keys-only queries but return entity objects populated only with the requested properties.
We are also adding several other Datastore features in this release:

  • Each entity group now has a numeric version property that strictly increases on every entity group change. You can use this counter, for example, to easily and consistently cache the results of an ancestor query, such as the count of all entities in an entity group (Java®, Python examples).
  • The Datastore Admin now allows you to restore individual Kinds from an existing backup, abort in-progress backups, and view more detailed backup and restore information.
  • For Python users, the @db.transactional decorator now supports concurrent transactions. We’ve also expanded the options available for the db.run_in_transtion_options() function.

Images API

  • The Images API can now access image objects stored in Google Cloud Storage.
  • The URLs generated by get_serving_url()/getServingUrl() that make use of our high-speed image serving infrastructure can now be generated to serve over HTTPS.

Task Queue

We are looking for Trusted Testers for Task Queue Statistics. Task Queue Statistics allows you to fetch statistics and information about your task queue from within your application. Apply now to be a Trusted Tester.

Request Headers

In this release, we are including additional request headers to provide more detailed information about the origin of a request. We’ve added Region, City and LatLng headers to each request where this information can be inferred from the IP address.

Java

Finally, an important piece of news for our Java developers: the <threadsafe> element is now required in appengine-web.xml file; omitting it will cause an error in the dev appserver.

As always, send us feedback in our Google Group, send us technical questions on Stack Overflow, and read the complete release notes for all the new features and fixes in this release for Java, Python, and Go.




Friday, April 20, 2012

App Engine and Google’s new Deprecation Policy

As you may have seen on the Google Developer’s Blog today, Google is changing the Deprecation Policy for all Developer products as a matter of corporate policy. We would like to clarify how this impacts App Engine and you, our customers.

Once the new deprecation policy takes effect, App Engine’s new Deprecation Period will be one year, the longest deprecation period Google offers across APIs and developer products. Practically, this means that Production Features deprecated after the new policy takes effect will continue to be supported at least until 2015 or for one year, whichever period is longer. In our four year history, we have only deprecated one Production Feature, the Master/Slave Datastore, and in that case it was in favor of a more reliable alternative.  We take considerable care that once a feature has graduated from Experimental status it will stand the test of time, and we do not anticipate frequent deprecations in the future.  

Although the official deprecation period is one year, at a minimum, if it does become necessary to deprecate a feature of App Engine we will give our customers enough advance notice to adjust their applications accordingly. Some very large customers might require more than one year; please contact us and we’d be happy to work with you to understand your specific needs.

We want to reiterate that Google strongly supports App Engine and is excited about its steady growth.  You can see the change in our upcoming new Terms of Service (which will take effect July 20, 2012) and as always if you have any questions or comments, please let us know in our Group.

- Posted by Greg D’Alesandre, Senior Product Manager, App Engine Team

Wednesday, April 4, 2012

Master/Slave Datastore, thanks for all your hard work


Almost 4 years after launch, we’ve seen fantastic growth both in Google App Engine and the apps that run on it. And although the Master/Slave Datastore was a big part of our early success, it's time to announce the deprecation of the Master/Slave Datastore in favor of the High-Replication Datastore (HRD). HRD has provided us with higher availability and better, more predictable performance. Many upcoming features will be HRD-only and we strongly encourage you to migrate all your applications as soon as possible using the migration tools found in the Application Settings tab of the Administration Console. The deprecation period will follow the guidelines set in our terms of service. If you have any questions or concerns, please contact us at ms-datastore-deprecation@googlegroups.com.


- Posted by Max Ross, on behalf of the App Engine Datastore Team

Sunday, April 1, 2012

Happy April Fools! The Google Cloud API: cloud coverage anywhere, anytime


We are thrilled to announce a project the App Engine team has been working on for a long time: the Cloud API. The Cloud API allows developers unprecedented control over cloud deployments in their area.
We think the Cloud API is a huge step forward for developers. For the first time, developers can simply and easily gain cloud coverage in locations around the globe within minutes. With the Cloud API developers can drive increased cloud awareness for a wide range of new users and enterprises. This will not only allow totally new applications in the agricultural and metrology sectors to flourish but also provide a welcome addition to mobile, social and gaming. The Cloud API provides the scalability you would expect from App Engine with clouds seeded on demand and dispersed when they are no longer needed. Clouds are created using cloud engines which are specially designed jet engines with three fins. 



A Cloud Deployed Using the Cloud API. Imagery ©2012 GeoEye, DigitalGlobe, Cnes/Spot Image, TerraMetrics



The Cloud API is supported in Python, Java and Go, check out the Getting Started Guide to find out how simple it is to integrate clouds into your applications.





As with other parts of App Engine, the Cloud API is backed by an SLA of 99.95% uptime along with an accuracy of ±5m. Clouds come in configurable sizes ranging up to 5m3 for free customers with paid and premier customers able to extend clouds to 10km3.

Pricing for the Cloud API are based on the likelihood of cloud in the location the cloud is requested. A cloud pricing calculator will be released in the coming days, however example pricing is provided below:

Example LocationLikelihood of CloudPrice/Cloud Hour/10m3
Seattle, WA, US55%Free*
Brisbane, AU20%$0.10
Yuma, AZ, US10%$0.20

*Removal of cloud from high cloud areas such as Seattle has a cost of $0.10 per Cloud Hour per 10m3.

If you have any questions or comments send them to the App Engine group. We'd love to hear from you.

- Posted by the App Engine team