Overall Satisfaction with Google App Engine
We use Google App Engine for content distribution of digital publishing assets as well as analytics and authentication services for a wide array of platforms. The whole organization uses Google App Engine in some capacity or another. The business problems it addresses are virtualizing services and abstracting away server configuration, load balancing, software updates and everything else we would have to do to set up the same infrastructure on a classic web server stack. Google App Engine has expedited our development and deployment processes tremendously so we can continue innovating with new services, getting them up and running quickly, while trusting that our existing services are running on a rock solid cloud platform backend.
- Quick to develop, quick to deploy. You can be up and running on Google App Engine in no time.
- Flexible. We use Java for some services and Node.js for others.
- Great security features. We have been consistently impressed with the security and authentication features of Google App Engine.
- Documentation does not always keep up with the latest changes to the service. Google App Engine has undergone a lot of changes these past couple of years. At times, we were surprised to find out that something we didn't think was possible was, or, conversely, something that was supposed to work fine which had been deprecated. We also ended up using some undocumented features and weren't sure whether they would keep working or not.
- Price. Google App Engine isn't cheap. But, you get what you pay for. Rock solid service, great tools, at a hefty price.
- Difficult to tell how to optimize costs. We racked up the expenses and it is still a mystery where all the costs are being incurred.
- Some intimidating or arcane aspects of configuration. Most of it was a breeze but every now and then something would be pretty far out and require a few of us developers putting our heads together to figure it out.
- Sometimes required reading source code to figure out how to do something. Not a ton of examples of how to do various things, nor Stack Overflow posts, at least in the beginning. I imagine this will change as the community grows. But sometimes it felt like we were all alone trying to figure out how to do things.
- Positive impact: Google App Engine let us rapidly build and deploy web services which support an array of applications across mobile and web platforms. We have found the services to be highly reliable and have been overall very satisfied with the level of stability, security and functionality we've achieved.
- Negative impact: We are dissatisfied with the seemingly-unnecessary level of complexity in some areas which has made code hand-off difficult. It has taken developers many months to learn the ins and outs of Google App Engine and understand the complex infrastructure of our services and so when someone has never worked on these services before, there can be a sizable ramp up time. So while it was very quick to build, it is not always obvious or apparent how to make modifications or how everything works together. There is a bit of "magic" involved where you have to really understand the system to see why, counter-intuitively, certain things happen the way they do.
- Positive impact: We've had the flexibility to implement certain features which we thought would be unsupported or too difficult to achieve with Google App Engine. So it has allowed us to do some very cool things that we were surprised were possible.
- Negative impact: It's very expensive, and combined with the extra time spent in development trying to figure out some of the more arcane aspects of Google App Engine, it is hard to know whether we could have saved money by choosing a different platform provider, but it seems likely.
AWS and Heroku are both great, and I use them both extensively for different projects. Google App Engine was chosen because it is much more innovative than AWS, and because Heroku specializes in Ruby on Rails. Even though Heroku supports Java and other services, we feel Google App Engine is much more robust than Heroku, and simply more technologically advanced (modern, using contemporary/cutting edge technology) than AWS.
Documentation is excellent and it is also possible to engage with the Google App Engine team if you are chosen by them, but I dock two points because if you are not chosen as a "test case" then they may be difficult to get ahold of, and because the documentation continues to change.
Google App Engine is great if you want to rapidly build and deploy web services and you have the money to spend. It's also great if you have a team of developers, or at least 2 or 3, so if you get stuck then you have multiple people looking into it and trying to figure out how to proceed. It is less well-suited to a small startup looking to save cash, or to an individual developer who may get stuck on something and be totally blocked for days or weeks.
Google App Engine Feature Ratings
Using Google App Engine
3 - Our software development team uses Google App Engine for web services that we provide to customers, such as analytics, cloud conversion for digital publishing, and secure file storage. We use Google App Engine because it allows us to rapidly develop and deploy web services without a lot of configuration, and because we are able to test the services locally, then deploy them knowing that they will operate in exactly the same way as our local environments.
3 - Our software team keeps up to date with Google App Engine and is ready to go to fix problems as they arise. The skills involved in supporting Google App Engine are essentially being able to keep up to date with the documentation and be familiar with the best practices and design concepts employed by Google for this service.
- Authenticated, secure file storage and distribution
- Rapid deployment of web services
- Computational power for batch file conversion
- We were able to use the Google App Engine file storage to perform many security functions without having to add new features on another layer.
- We hope to continue using Google App Engine for future web services and computational workload tasks.
We pay a little more for Google App Engine than some of the competing services like Amazon Web Services or Microsoft Azure, but it fits our workflow very well and we like the development lifecycle and workflow. At this point it makes sense to continue using Google App Engine for web services for our clients because of the ease of deployment and how familiar we are with the workflow.
Using Google App Engine
Google App Engine continues to change the API (while typically retaining backwards compatibility) so you have to keep up to date, slightly decreasing the usability of the service. Once you know how to do something, the usability is generally great, and there are a lot of resources. However, the fact it is changing so much means that the service is not as straightforward as it would be with an older and more time-tested system. There are times when I've found a guide for doing something in Google App Engine only to find out that it is not the preferred way of doing it any more.