Autoscaling App Engine Resources
Start course
1h 9m

*** PLEASE NOTE: This content is outdated, and the course should be retired ***


Google Cloud Platform has become one of the premier cloud providers on the market. It offers the same rich catalog of services and massive global hardware scale as AWS, as well as a number of Google-specific features and integrations. Mastering the GCP toolset can seem daunting given its complexity. This course is designed to help people familiar with GCP strengthen their understanding of GCP’s compute services, specifically App Engine and Kubernetes Engine.

The Managing Google Kubernetes Engine and App Engine course is designed to help students become confident at configuring, deploying, and maintaining these services. The course will also be helpful to people seeking to obtain Google Cloud certification. The combination of lessons and video demonstrations is optimized for concision and practicality to ensure students come away with an immediately useful skillset.

Learning Objectives

  • Learn how to manage and configure GCP Kubernetes Engine resources
  • Learn how to manage and configure GCP App Engine resources

Intended Audience

  • Individuals looking to build applications using Google Cloud Platform
  • People interested in obtaining GCP certification


  • Some familiarity with Google Kubernetes Engine, App Engine, and Compute Engine
  • Experience working with command-line tools

Autoscaling App Engine resources. To understand how scaling works in App Engine, it's important to first remember that even though we think of App Engine as serverless, in reality, all of our code must run on virtual instances somewhere within GCP. So when we talk about scaling, we're talking about scaling that underlying hardware, the virtual instances of GCP.

Now, first and foremost, we have to be aware of instance types. From App Engine's perspective, there are two types of instances: dynamic and resident. Dynamic instances automatically shut down based on usage, while resident instances will run all the time, no matter what. The former is better for cost optimization, while the latter can improve app performance since you won't have to wait for instances to restart.

Next, we should talk about scaling types. There are actually three types of scaling in App Engine: Automatic, Basic, and Manual. Automatic scaling is the most common type. It will create dynamic instances based on specific metrics, such as response latencies or request rate, and you can also specify a minimum number of idle instances that will run as resident instances to maintain a baseline.

So next, there's manual scaling. As you can guess, this is done manually. This uses resident instances only. When set, App Engine will continuously run these instances irrespective of load. You can use manual scaling for temporary load spikes or performance tests.

And then, finally, there is what is known as basic scaling. When your application receives requests, dynamic instances come up. When the app becomes idle, all dynamic instances shut down, so, obviously, this is not suitable for latency-sensitive continuously running services. It is great, however, for intermittent work that is not latency-sensitive, such as the occasional user-initiated script or batch job or service. Basic scaling is not available in the flexible App Engine environment, so do keep that in mind.

And congratulations, that's it, you've made it through all three of our rigorous lessons on App Engine. You have enough theory to launch a billion-dollar startup. Now, let's go and put that theory into practice. Let's have some fun. We're gonna do a video demonstration where we will take our Hello World app to the next level. See you there.



Introduction - Section One Introduction - Kubernetes Concepts - Cluster and Container Configuration - Working with Pods, Services, and Controllers - Kubernetes Demo - Section Two Introduction - Creating a Basic App Engine App - Configuring Application Traffic - Autoscaling App Engine Resources - App Engine Demo - Conclusion

About the Author

Jonathan Bethune is a senior technical consultant working with several companies including TopTal, BCG, and Instaclustr. He is an experienced devops specialist, data engineer, and software developer. Jonathan has spent years mastering the art of system automation with a variety of different cloud providers and tools. Before he became an engineer, Jonathan was a musician and teacher in New York City. Jonathan is based in Tokyo where he continues to work in technology and write for various publications in his free time.