Join Patrick Royal for an in-depth discussion in this video What is Google App Engine?, part of Programming the Google App Engine with Java.
- What is Google App Engine? Google App Engine is not a specific programming environment or tool set. Rather, it's an infrastructure that makes it easier to design, release, and maintain applications. All of the storage takes place in the Cloud, so you don't have to worry about setting up and running servers on your own. You can also easily expand or contract the amount of server space your application is using. Basically, this allows you to focus on the functionality of the application without spending a lot of time maintaining the environment in which it will run. Currently, Google App Engine supports four different programming languages; Java, Python, PHP, and Go.
Although PHP and Go are experimental as of the making of this video. This course will focus specifically on development in Java, but many of the basic principles that we discuss will also apply to other programming languages. For each of the languages it supports, Google App Engine has the following tools available. There is a storage system for data that allows you to reference it in your code. It supports several different types of rewrite requests, along with data organization functions like sorting. The app engine provides one gigabyte of data storage for free and then additional data costs money based on the resources used.
It's possible to limit the resources used on a daily basis by our app so you have some control over how much you get charged. There are also per minute quotas, which are designed to prevent an application from consuming all of its resources instantly and slowing down the server. When these limits are reached, your server will simply deny all requests until a minute has elapsed. You shouldn't have to worry too much about managing threads with Google App Engine, as it will automatically balance programming load across multiple servers. I'll go into more detail about the programming techniques you can use to optimize load balancing later on in this course.
Similarly, it's easy to set up asynchronous queues and triggers which means that a request can trigger an event even after the request completes. This allows for scheduled or periodic events as well as queues. For testing purposes, you can download and use a software development kit to simulate how your application will function once it's on the server. Most of this course will focus on understanding and exploiting these tools to make it as easy as possible to develop Java applications within this framework. In the remainder of this chapter, we will be setting up an account with Google App Engine and developing a simple project.
- Setting up Google App Engine accounts on Windows and Mac
- Creating a Google App Engine project
- Building the back-end code
- Creating the user interface
- Storing data
- Creating modules
- Testing and debugging
- Enabling security and encryption
- Working with extensions