Skip to content

Commit

Permalink
Removed out-of-date technical details
Browse files Browse the repository at this point in the history
  • Loading branch information
snoyberg committed Dec 27, 2012
1 parent 02a8541 commit 54dbe11
Showing 1 changed file with 0 additions and 41 deletions.
41 changes: 0 additions & 41 deletions README.md
Expand Up @@ -117,44 +117,3 @@ In order to deploy, you simply copy the keter bundle to `/opt/keter/incoming`.
To update an app, copy in the new version. The old process will only be
terminated after the new process has started answering requests. To stop an
application, delete the file from incoming.

## Technical Details

Components:

* Logger: provides a file descriptor to redirect output to. Takes the name of
the app.

* Process: Give it all the information (executable, working directory,
environment, args) for a process, and it will start the process and monitor
it. If the process dies, it will restart. Binds the output to the logger.
Allows you to terminate the process.

* Postgres: Ask it for database information for an app. If no information is
available, it will create a database/user.

* TempFolder: Wipes out a folder on startup, then assigns random, unique
folders inside it on request.

* App: Started with a path to an app bundle. Unpacks into a random folder
inside the temp folder, gets a random port, starts a Process, updates Nginx,
and waits for commands. Accepts two commands: reload and terminate.

* Terminate kills the existing process, removes from Nginx, and deletes the
folder.

* Reload gets a new random port, unpacks to a new folder in the temp
folder, starts a Process, waits till the process is "ready" (checks with
an HTTP request)- canceling after a certain timeout.

* If process is not ready within timeout, terminate the new process and
delete the new folder.

* If a process *is* ready, tell Nginx to use the new port, wait some
amount of time (20 seconds?), send a TERM to the old process, wait
some more (1 minute?) and delete the old folder.

* Keter: Delete temp folder, start the Nginx, logger, and port assigner. Start
a new App for each app in the incoming folder. Monitor for file changes in
the incoming folder, and appropriately start a new app, reload an existing app,
or delete an existing app. Also provide a web interface based on logger.

0 comments on commit 54dbe11

Please sign in to comment.