Please explain project VS application - service - version - instance

29 views
Skip to first unread message

Karoly Kantor

unread,
Jun 19, 2017, 8:26:17 AM6/19/17
to Google App Engine
I am somewhat confused about the nomenclature. Can someone maybe explain?

there is a description of the hierarchy of what application - service - version - instance mean.

But everything i have is in a "project". How is a "project" related to the application - service - version - instance structure?
Is one project = one application?

I see no option to create an "application", what I can create is a "project".

Thanks.

Yannick (Cloud Platform Support)

unread,
Jun 19, 2017, 11:04:38 AM6/19/17
to Google App Engine
Your Google Cloud Platform project is a basic unit of organization to which every Google Cloud Platform service is attached to.

Each project can choose to enable any of the platform's features, including App Engine. This lets a project have up to one application. To enable App Engine on your project, simply visit https://console.cloud.google.com/appengine. Your application can consist of up to 20 services. 

Each service is accessed through a different URL and while services can share many of App Engine's features at the application level, they are entirely independent from one another. Note that by default App Engine will use the "default" service for everything, so you don't have to care about services until you want to. Each service can have up to 120 versions.

Versions are versions of a specific service. They hold the actual code with which the application functions. Versions of the same service can be in any language you want and even perform entirely different functions. You get to choose which version(s) you want to be used for serving traffic to your application. 

Finally instances are the actual servers answering requests made to your application. They are created using the code of the currently active version(s). Versions can have as many active instances as is required to serve their traffic. How many instances you have can have active can be configured in app.yaml.

This is a fairly basic explanation of course, tell us if there's parts of it you have a problem with.

Karoly Kantor

unread,
Jun 19, 2017, 11:17:47 AM6/19/17
to Google App Engine
Thank you. "This lets a project have up to one application" was the key message to me.

Some more questions for total clarity:

1. So when I upload my application, the "application: xxxx" part of app.yaml should be the project name, is that right? if not, what is the application name in app.yaml used for?

2. Do services always share a datastore name space, i.e. do entities of the same name referenced in different services always refer to the same data?

Yannick (Cloud Platform Support)

unread,
Jun 19, 2017, 11:34:38 AM6/19/17
to Google App Engine
I'm glad I was able to clear that up for you, here's the answer to your follow-up questions:

1. That is correct, though that particular parameter might not be necessary depending on the way you are deploying your application. The app.yaml reference has a pretty good explanation of each element that can go into it.

2. All services of your application use the default Datastore namespace unless you tell them otherwise.
Reply all
Reply to author
Forward
0 new messages