dashy an automatic deployment system

home why? how does it work? example implementations getting started complete install guide notes special variables download contact

dashy // how does it work?

how does dashy work?

Below is an image covering the basic flow of a deployment, using dashy.

dashy - basic workflow of how it works Figure 1. Basic dashy flow

The steps are:

1. Write code(manual)

This is just you, writing the relevant code for your project on your desktop machine, against your projects repository.

2. Commit(manual)

The real "first" step of a dashy release; you need to commit your code to source control.

3. Build initiated by CI server (automatic)

After commit, your Continuous Integration (CI) server will begin preparing a naked build.

4. Wait for the build (manual)

You now wait patiently for the build to complete.

5. Visit the dashy client website (manual)

The dashy client website is installed on your build server, and consist of a website and a windows service. The service lets you configure: project groups, releases, instances and variables. These are all explained in more detail in the full tutorial. Once configured, a typical configuration may look like this:

Dashy client website Figure 2. Dashy client website

6. Click deploy (manual)

As you can see from the above image, there are a few 'instances' available for clicking. When you click one, it will look like this:

Dashy client - deployment screen Figure 3. Dashy client - deployment screen

The background image is set as a property of the release (hence the reason it says "latest" (latest is the name of the release)). So here you may click 'yes - do it!' to begin the deployment of this particular instance ("dashy server website").

7. The build is published (automatic)

At this point, dashy will take the build that was producted by step 5, and "convert" it to a build that is ready for the release that you've configured (in the prior case, the release was "latest"). This will involve the replacement of some configuration variables (you saw the variables defined in figure 2. This set of files will then be committed, in entirity, to the specified SVN repository.

8. Dashy server retrieves the build and performs optional actions(automatic)

dashy server is installed on your web server: the server you deploy to. It will, periodically (on a basis you set) check for new commits to the SVN repo. When it finds them, it will execute an update, and download them. Because of the nature of SVN, it will also only download the files that have changed, so it will be significantly faster than downloading the entire contents of your release, every time. The server looks like this:

Dashy server website Figure 4. Dashy server website

It will generally require no interaction. It will update on its own, but you can force the update if you wish. You can see the results of the actions that you've configured dashy server to do on this screen:

Dashy server tasks Figure 5. Dashy server tasks

9. Deployment complete

That's it. After dashy server has completed it's update, that particular instance of your application has been deployed automatically. Beautiful, isn't it?

© noon silk, 2009 (deployed at revision 1283 which was built on the 13-oct-2009 03:50am)