GAETK2 - Concepts¶
gaetk is for deploying and developing appengine. We do not use local development servers very much. It also does all development and deploying to production in a single Google App Engine application. This means development and testing happens on live data. We are fine with that (see Error Handling Guide for details) but you may not.
We use very little of the backends/modules/services features of App Engine. See :Services.
App Engine Building Blocks¶
- application
- A pice of software deployed under a specific Application ID on Google App Engine. The
application
field in yourapp.yaml
. - version
- a deployment target within your application. There are specific versions for specific purposes. production version, staging version, a tagged version is for deployment and user traffic. A development version is for developer interaction.
- production version
- is where version your users visit. Should be deployed with care and never without testing. Usually all the traffic of your external domain name like
application.example.com
goes here. Note that other App Engine Applications should prefer access under theapplication.appspot.com
name to get Googles Inter-App Authentication. Code can check viagaetk2.config.is_production()
if running on the production version. - staging version
- is the version for showcase A/B tests and internal training of upcoming stuff. Available under
staging-dot-application.appspot.com
. - tagged version
like
v180228-cg89bd1-production
. A specific tagged version deployed for production testing. The usual approach is to deploy the production branch to a tagged version, run the test suite against it and then deploy the production version. This allows easy switching back to the second to last tagged version if there come up issues in the new production version. Available under names likev180228-cg89bd1-production-dot-application.appspot.com
.The name follows the pattern
v
, date,-
, git hash,-
, branchname.- development version
like
dev-md
. Postfixed by the developers username. Meant for development and testing. Usually deployed with the local copy of a master or feature branch. Available under names likedev-md-dot-application.appspot.com
. Also versions staring withtest
will be considered development. Code can check viagaetk2.config.is_development()
if running on a development version.Prior to pushing to master tests should be run against the deployed development version.
- services
- modules
- Generally where we are using App Engine Modules/Services we try to run the same codebase on all Modules/Services to keep deployment and versioning in under control. We mostly use them to fine tune latency and instance size. When the production version is deployed all services should be redeployed.
- release number
- The string used for the tagged version. Also found in
gaetk2-release.txt
and available viagaetk2.config.get_release()