App Engine: Google's deepest secrets as a service
The software scales. But will the Google rulebook?
The price of the platform
The question is a familiar one: will the rest of the world buy into Google belief system? Many developers already have. "I've been wanting a platform-as-a service for a while, with an eye towards not doing any more IT work, not installing servers and disk drives and all that. For me, those days are over," says developer Matt Cooper. He now builds web applications in Python atop App Engine – even though he's a former Microsoft system engineer with a history coding of in .NET, which serves as the basis for Microsoft' platform cloud: Windows Azure. Before using App Engine, Cooper had never coded in Python.
Robert Kluin also had no Python experience, and had spent years working with Microsoft SQL Server and MySQL. But he too moved to Python on App Engine. "The thing that caught my attention was the distributed nature. I've done consulting work for oil and gas companies, managing clusters of SQL servers and things like that, and it's always a pain in the butt. App Engine is handling those kinds of features for us," he says.
"It truly is a platform as a service. There is no low-level messing around setting up databases, configuring your application servers or memcaching or anything of that nature. You can simply use their SDK, their API, and you have all those types of things at your disposal."
Six months ago, Kluin says, he had a long list of complaints about the service. But since then, Google has addressed most all of them. The company recently introduced a high-replication version of its Datastore, he points out, and it's now the default. This adds latency for data writes, and it doesn't quite offer the same consistency. But it increases the number of Google data centers that keep real-time replicas of your data, providing additional fallbacks in the event of Datastore issues, including latency spikes.
Kluin acknowledges the restrictions that App Engine places on developers, but he doesn't see them as a big issue. "It takes some extra effort, but you can find solutions," he says. "And the restrictions are necessary."
But others argue that because of the restrictions, mainstream developers are unlikely to take to the service. "It works well for Python people for certain use cases," says PHP Fog's Lucas Carlson. "These are generally the type of people who don't mind working around things and really enjoy tinkering. People who use Python are by nature tinkerers, and while Python is a popular language, the overall number of Python people out there is smaller than other major languages."
And Carlson believes that Google's proprietary APIs can be a significant burden as well. "Lock-in can become a real issue, and I believe most enterprises will not make this gamble," he says. "When you program to Google's APIs, you can't run that anywhere else. It's not like you can change your mind and choose another provider down the road." Of course, that doesn't take into account independent projects like App Scale.
Many of those proprietary APIs are merely a means of hooking into other parts of Google's platform. There's an API, for instance, for authenticating Google accounts. Google is now offering App Engine as a means of building applications that dovetail with its own Google Apps suite, and for those exploring such applications, App Engine makes perfect sense. But this too is a limited audience.
Google acknowledges that some businesses have been reluctant to invest in the platform, but the company indicates this is mainly because the service is still in "preview" mode. Later this year, App Engine will officially graduate to "shipping" status, providing all paid users a 99.95 per cent uptime service level agreement, operational and developer support, billing via invoice, and terms of service designed specifically for businesses.
As part of this, Google is also changing the App Engine pricing structure. The company will still offer a free version of the service for those willing to stay under certain quotas, but for larger users it will charge for instance use rather than CPU use as it does now. In announcing the new pricing, Google said it was "easier to understand" and "in line with the value App Engine provides".
The service's new business suit will no doubt attract more companies to App Engine. The new pricing model is likely to raise prices in many cases – Google has said that the previous model would not allow it to sustain a business – but it's reasonable compared to other services out there. The trouble with the new model is that so many people have already built their applications for the old model – and now it's changing beneath them. Many have vehemently complained.
Developer Jeff Schnitzer takes a philosophical stance on the matter. "They've changed the whole pricing model, and there's a bunch of uncertainties in there," he says. "Basically, what they announced was: 'Pricing is going to change, but we really have no idea how much it's going to change'. I'm trying to withhold judgment until they get everything nailed down." But whatever the end result of the new model, Google's change highlights the unique nature of a platform cloud. If you code to Google's cloud, your application will automatically scale, and you'll automatically benefit from any improvements Google's makes to its own infrastructure. But, at least on some level, you're also beholden to Google.
The good news is that Google clearly realizes that it needs to better accomodate developers. The company has already made a few changes to its new pricing model, trying to appease unhappy devs, just as – with new enhancements like Backends and concurrent Java requests – it's easing the restrictions developers have complained about. Google won't open source its infrastructure. But it certainly wants you to use it. ®