AppScale Deployment Types
AppScale can be deployed to fit your application needs, from a single node Dev/Test environment, to a fully redundant, multi-node deployment for large scale applications. Even though AppScale can grow its resources while running, properly sizing the initial deployment, in particular for dataset size and replicas, offers better overall performance. Below you will find some of the most common setups employed by our users. AppScale deployments are configured using the AppScalefile.
Using a fully deployed system facilitates testing changes before rolling them out in production. For dev/test, a single node installation is the simplest and most flexible way to get your application deployed. Vagrant and Docker offer a very lightweight and replicable environment with a single command. To get AppScale set up in your favorite infrastructure, follow the fast-start instructions on the Get Started page, and an AppScalefile will be created for you.
When applications go production resilience is key; multi-node AppScale deployments are the answer. Datastore redundancy is the first requirement to ensure that any single failure of a datastore node won't incur downtime. Similarly, multiple AppEngine nodes guarantee that the application will grow quickly in order to sustain increased loads. Typical production deployments for small applications use 6 machines: 3 database nodes (3x data replication), 2 AppEngine nodes (better response time and tolerance to single machine failures), and the login node.
For high load applications, or very specific use cases, a custom deployment may be needed. Customizations can be done to tune the number of zookeepers nodes, the level of redundancy and the number of datastore nodes, the layout for TaskQueue servers, etc. Tuning an AppScale deployment is possible while the system is running, but getting the proper setup from at start, provides better user experience. Profiling the application and understanding its computation needs are essential in determining the AppScale deployment layout.