-
Notifications
You must be signed in to change notification settings - Fork 0
Component List
Kristoffer Walker edited this page Dec 27, 2012
·
6 revisions
Webapps (application packages) ¶
- The actual user facing web applications running on Platform.X
- Run the application code and business logic.
- Interface with database systems over TCP.
- Provide static resources like CSS and JavaScript.
- All application and config files are pushed via rsync from the application repository on local workstations.
- The AppController (aka Meastro) will restart the app after the rsync update when it is contacted by the workstation that deployed the app.
Enginemill version is set in configs, and a copy of Enginemill is installed on the webserver alongside the webapp. This local 'app specific' install of Enginemill is used by the AppRunner. See the Webserver docs for more.
Maestro starts or restarts each Webapp by invoking a restart script (called an AppRunner) for each one, passing it the port number it should be running on.
- AppRunner script.
- Enginemill Server
- Enginemill SDK for development and deployment
AppController AKA "Maestro" (service) ¶
- Start and restart Webapps (AppRunner processes)
- Proxy HTTP requests to Webapps
- Log requests, and events from Webapps
- Send heartbeats from WebApps to AppMonitor
- Listens to stdout and stderr of Webapps
- Logs locally to disk
- Sends heartbeats to AppMonitor over TCP (Dnode)
- Receives commands from AppMonitor over TCP (Dnode)
- Queries AppMonitor for Webapps that should be running
See the Webserver docs for more.
- Provided by npm from a tarball hosted on GitHub
- Deployed by Cloudmill
- AppMonitor
- GitHub (hosts AppController npm tarball)
- Cloudmill
AppMonitor AKA "Beacon" (service) ¶
TODO: Unimplemented.
- Listen for application updates and notify AppController
- Listen for events from AppController and notify sys admins
- Listen for Webapp change notifications from the AppRepository
- Notify AppController of Webapp changes
- Listens on HTTP port for application updates
- Uses HTTP to answer queries for Webapp configs
- Uses TCP (telegram) to send events to AppController
- Uses TCP (telegram) to listen to events from AppController
- Cloudmill runs it as a service (upstart?)
See the SAK Server docs for more.
- Provided by npm from public npmjs.org repo
- Cloudmill
- AppRepository
- GitHub (hosts AppMonitor npm tarball)
- Cloudmill
AppRepository ¶
TODO: Unimplemented.
- Endpoint for Webapp uploads from Enginemill
- Storage of Webapp files
- Notifies AppMonitor of Webapp changes
- Stores configs for Webapps
- Answers queries for running Webapp configs
- Serves Webapp files from storage
- Backed by Amazon S3
- Webapps are uploaded and retrieved via HTTP
- Notifies AppMonitor via TCP (Dnode)
See the SAK Server docs for more.
- Provided by npm from a tarball hosted on GitHub
- Cloudmill
- GitHub (hosts AppRepository npm tarball)
- Cloudmill
Enginemill SDK (development kit) ¶
- Run local dev server for Webapps
- Create Webapp harness instances for a running server
- Deploy Webapps to hosted PaaS
- Deploys applications with HTTP to AppRepository
- Provided by npm from npmjs.org public repo
- Installed globally on local systems
- AppRepository