App Engine Backends have been introduced during the Google I/O 2011 and were designed for applications that needed faster performance, large amounts of addressable memory, and continuous or long-running background processes.
First quarter of this year Google has announced the generally available of modules on App Engine and the deprecation of Backend API introducing then a new way to think & manage GAE instances. Today Backend api are still available to developers but Google is strongly recommending that all new applications should be developed with the Modules API .
GDG Basel has summarized the changes brought by modules to clarify and figure out how GAE instances have now to be approached & managed.
Divide & Conquer
The main and most import feature brought by modules is that developers are now able to split their application into different logical components with their own set of settings, deployments and versions.
This partitioning concept can be a real asset during your initial design & budgeting phases. Identifying & estimating resources required by your solution’s services will help you to adjust GAE instances performances and therefore to optimize your cost.
It is about scaling
Another really interesting feature provided by module is the capacity to choose how your instances are created. Developers have the choice among three different scaling type:
1. Manual scaling
A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
2. Basic scaling
A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle.
3. Automatic scaling
Automatic scaling is the scaling policy that App Engine has used since its inception. It is based on request rate, response latencies, and other application metrics.
Each of this scaling method have different behavior regarding deadlines, CPU/Memory, residence, startup & shutdown, instance addressability, scaling & Free Daily Usage Quota. More details can be found on the official Google page.
And also about instances
Modules are also allowing developers to define their instance Class based on their scaling strategy. Therefore automatic scaling will allow F1, F2, F4, or F4_1G instances and manual & basic B1, B2, B4, B4_1G, B8.
Modules provides a new flexible way to build and scale your applications. Investing time to analyze your system requirement can help you to efficiently reduce your costs & improve your design. This new concept is also offering new ways for solutions architect to split more efficiently their application in order to perform targeted updates.
Finally modules are adding a new Enterprise flavor to App Engine by offering an higher granularity in design, pricing strategy, updates & version control.