Building Google Cloud Platform Solutions
上QQ阅读APP看书,第一时间看更新

Standard environment

App Engine's standard environment was the original implementation of App Engine. While the platform has undergone many changes since the original implementation, many of the core design principles and features remain the same. App Engine standard is what many would consider a more traditional implementation of PaaS. App Engine controls the environment at a very high level. Applications are developed more or less specifically to run on App Engine. Flexibility is, at times, sacrificed in the name of convenience.

The App Engine standard environment is very aware of the language and implementation details of your service. Application architecture will need to conform to standards. Long-running tasks are best broken out into separate worker services called task queues, and task queues are invoked in a platform-specific manner. Integrations with services like Cloud Storage and Datastore are extremely simple, but they are achieved in ways that are specific to the App Engine standard environment.

The result of these restrictions is that applications can become very platform-specific. This introduces vendor lock-in, and can be somewhat limiting when requirements don't align with App Engine standard environment ideals. In return, it is very easy to write applications that are performant and scale very well.

With the App Engine standard environment, developers had the choice between running applications in a fully managed environment, or assuming ownership over the infrastructure and running applications on Compute Engine VMs. With App Engine standard, developers sacrifice flexibility and gain productivity and convenience. With VMs, developers are burdened with operations, but are freed from the limitations imposed by platforms. The gap between these two options gave rise to the need for a middle ground—somewhere that maintained much of the flexibility of VMs and much of the convenience of the standard environment.