App Engine Flashcards
What is App Engine?
Platform as a Service that provides a managed platform for running applications
What are the 4 components of App Engine?
- Application
- Service
- Version
- Instance
What is an App Engine application?
A high level resource created in a project. Each project can have one App Engine Application.
What is an App Engine service
The service is the code executed in the app. It is typically structured to perform a single function. Services are defined by their source code and their configuration.
What is an App Engine version?
The source code and configuration of a service constitutes a version of the app. A service can have multiple versions.
What is an App Engine instance?
When a version executes, it creates an instance of the app.
What environments can you run in App Engine?
- Standard Environment
2. Flexible Environment
What are some key points of the Standard Environment?
- runs application in a pre-configured language specific sandbox
- fastest spin up time and less expensive
- suited for apps written in one of the supported languages and you don’t need OS packages or other compiled software external to the app
- Two types: 1st generation and 2nd generation
What are key points about 1st generation Standard Environment implementations?
- Supports Python 2.7, PHP 5.5 or Go 1.9
- only a select set of white-listed extensions and libraries are allowed
- restricted network access
What are key points about 2nd generation Standard Environment implementations?
- java 8, Python 3.7, Php 7.2, Node.js 8 and Go 1.11
- any language extenstion
- full network access
- can scale down to 0 instances if there is no load
What are some key points about a Flexible Environment implementation?
- based on Docker Containers
- users can customize runtime environments by configuring container
- native support for Java 8, Eclipse Jetty 9, Python 2.7, Python 3.6, Node.js, Ruby, PHP, .Net and Go
- good option when you can package applications and services into a small set of containers
- works well when you have 3rd party software or libraries that need to run along side application
- slower spin up time and more expensive.
- will scale down but will always have at least one instance running
- the health is monitored by Google
- can work with OS background processes and write to local disk
How can you delegate workload in App Engine?
Through push queues, pull queues or cron jobs
How do you deploy an App Engine with a .yaml file?
- gcloud app deploy [.yaml CONFIG FILE NAME]
- app.yaml is default, so no need to specify if that is the config file name
- must be run in directory containing .yaml file
- once deployed, output will provide url to view result of deployed service ([project name].appspot.com)
How do you stop an app engine instance via the shell?
gcloud app versions stop [v1 v2…]
pass in list of versions to stop
What type of instances can be running in App Engine?
- dynamic instances - based on load
2. resident instances - running all the time