App Engine resources and integrations

As mentioned previously in this chapter, App Engine provides several service integrations spanning the Google Cloud product and service catalog. A large set of these integrations is provided through client libraries that are only available to services running in the standard environment, but developers can achieve similar results in the flexible environment by leveraging Google's provided common libraries, shown as follows:

Many resources are shared between services in the standard environment

As depicted in the preceding diagram, many resources provided by the App Engine service integrations are shared across services rather than being provided on a per-service or per-instance basis. For example, data stored in Memcache or Datastore will be available to all services within a Google Cloud project. This sharing of resources should be considered when designing App Engine services as it can be a double-edged sword. On one hand, shared resources can simplify the process of sharing state between services, opening up new communication channels and potentially reducing data duplication. On the other hand, this means it's up to developers to develop strategies for segregating data when needed.

Google provides service integrations for many common tasks that developers encounter when building web services, including data persistence, caching, email, identity management, and image manipulation. The full list of integrations is available at https://cloud.google.com/appengine/docs/standard/#index_of_features. When looking to build new functionality into an App Engine application, it's worth checking if one of these integrations can be leveraged.

For teams focusing on building services for the flexible environment, it may still be worth building services in the standard environment that leverage these service integrations and expose their functionality to flexible services as APIs.

Google provides excellent samples for many of these service integrations in their language-specific documentation. To view these, go to https://cloud.google.com/appengine/docs and select the desired language and environment. Samples are available under How to Guides and Tutorials. Additionally, we will cover App Engine integrations with many of these services in their dedicated chapters.

In addition to service integrations built on top of other Google services, App Engine provides two special types of services aimed at workload management and orchestration—task queues and scheduled tasks.