Skip to content
Meni Vaitsi edited this page Jul 21, 2014 · 2 revisions

Executive Summary: Configures and deploys applications on a given node.

Why do we need it?

Google App Engine applications need to be started in a way that is fault tolerant and monitored for resource consumption.

What does it do, and how does it do it?

It is a REST based service that receives requests from the AppController. Requests are sent in JSON format. The primary requests are to start and stop applications on the node that the AppManager is running on. The AppManager will create a start and stop command and use Monit to run it. It runs Python, Java, Go, and PHP applications.

When does it do it?

When the application is first uploaded, and on subsequent uploads when you want to re-upload the application.

Where does it do it?

AppManager runs on all nodes.

Developer stuff

AppManager code is written in Python, although the start scripts for the REST server (app_manager_server.py) and starting the Monit daemon are in Ruby. The code can be found in appscale/AppManager. The high level web service is app_manager_server.py and runs on port 49934. Processes that are started by the AppManager will have logs in /var/log/appscale/ and start with "app___". And the log for the AppManager itself is in this directory as well.

Tests are written with test/unit and flexmock. They can be found in appscale/AppManager/test/unit. You can go into this directory and run "nosetests" to run just the tests for this component.

Clone this wiki locally