Project Description

Presto is an automated deployment tool. It allows users to create deployment steps and then have app servers update themselves when new versions of an app are ready. This allows for automated deployments to dev, QA, and production environments. C# 4.0 and RavenDB.


Deploying applications can be time-consuming and error-prone. The whole point of Presto is to have a central location to configure applications and servers. The servers will update applications when new versions are available.

The general process flow looks like this:

1. Configure applications
2. Configure servers
3. Configure custom variables
4. Copy an application's binaries to a production release location
5. Have the application servers automatically update the application using the new binaries

Steps 4 and 5 get repeated for as many deployments necessary to complete a dev or QA cycle.

There are three main pieces to Presto:

Presto Dashboard: The C# 4.0/WPF/MVVM UI. The Presto Dashboard allows users to create application servers, applications with tasks, and custom variable groups. The Presto Dashboard also has tabs for viewing installation summaries and logging.

Presto Database Server: The database (RavenDB).

Presto Task Runner: This application runs on every application server. It polls the Presto DB for updates to applications. If an application needs to be installed, the Presto Task Runner will run the tasks (previously set up using the Presto Dashboard) necessary to install the application. The Presto Task Runner runs within the self-updating service host; so when there are new updates to the Presto Task Runner, it updates itself automatically.

Last edited Dec 9, 2012 at 9:09 PM by rhornjr, version 15