As with other PaaS offerings, the Google App Engine manages many of the implementation details about maintaining virtual servers, operating systems and development tools.
To view all of our recommendations for cloud computing services, visit our best picks page.
Some PaaS options, such as RedHat OpenShift, offer IaaS-like features that allow users to customize their environment to a greater degree. This is not the case with Google App Engine. With Google's PaaS, you get managed infrastructure and runtime environments that are guaranteed to scale as long as your applications follow the Google App Engine playbook.
Google App Engine is a development stack that includes support for multiple languages, caching, persistent data storage and basic access controls. If you can design your application within the restrictions imposed by the PaaS, you can leverage key components of highly scalable applications. It's a good option for developers wanting to focus on coding their applications while not worrying about system administration.
Google App Engine services are billed based on usage. Google offers free services for up to 28 instance hours, 1GB of datastore storage as well as 1GB of inbound and outbound traffic per application per day.
After you exceed your free quotas, you will be billed $0.05 per hour, per instance. The Datastore is billed at $0.18 per GB, per month for storage more than 1GB and outgoing bandwidth is $0.12 per GB. Other services, such as object storage, email API, and dedicated memcache incur per-usage charges as well. You can view App Engine's full pricing catalog here.
- Languages: The first step in assessing Google App Engine for your application is to review the list of supported programming languages: Java, Python, PHP and GO. The Java environment supports other languages that make use of the JRE, e.g. Ruby through the JRuby on Google App Engine project. There is a SDK for each of the four main supported languages as well as a plug-in for Eclipse. Fortunately, for computer-intensive operations, developers can turn to the NumPy library. Web developers can use the Django framework for their applications. A list of third-party-supported libraries is available here. Google App Engine limitations are not solely linked to languages.
- Back-end support: Programs running in Google App Engine run within a sandbox that is logically isolated from other applications, the operating system and underlying hardware. Google App Engine includes a transactional, schema-less data store based on key-value pairs. Known as the Datastore, this service handles the complex management of data that must be accessible to multiple machine instances. Entities are organized hierarchically into entity groups. Queries within an entity group are always up to date and consistent but queries over multiple entity groups may return stale data since these queries depend on replicated data that is only eventually consistent. Developers and application administrators can query entities in the Datastore using GQL, a SQL-like query language that runs in the administrator console and in the Python runtime.
- Database integration: Google App Engine developers also have access to relational database services in Google Cloud SQL, which is based on MySQL. If you need to store files or large objects, you can use Google Cloud Storage. Developers manage their applications and storage through the Google App Engine Dashboard. Developers have access to details about their instances, logs, cron jobs and task queues. The dashboard also presents details about the Datastore, including details on indexes, text searches, memcache and Datastore statistics.
- Support: Google provides a variety of free support resources, including a help center, support documentation, community support and product guides. Google also offers three support plans, ranging from $150 to more than $400 per month. The plans come with features like phone support, architecture support and break/fix cases.
We didn't find a lot of issues in Google's service offering.