Dahlia

A tool for deploying[2] applications[1] to the cloud[3].

Application Centric

All sets of servers that you interact with are nested under an application. The application is named, but the unique key is the git repository for the application. You can deploy one application in multiple environments, but the tooling does not support deplying multiple applications to the same environment out of the box.

Deployment

This tool has three seperate but related uses.

  1. Server creation and destruction and the record keeping required therein.

dahlia create spins up new servers as outlines in the config files.

You can also scale up and down the different tiers of instances depending on how they are configured.

  1. Application deployment.

This takes your application and puts it on all of the servers that are setup to need it, and then configures them to be run (mostly setting environment variables for the external configuration). It then runs whatever command you have set to boot the app. There are more steps here as well including migrations and maintenance pages.

  1. Server management

Dahlia also manages the configuration of your servers. This can be adding a server and notifying a load balancer, reconfiguring mysql with new updates, etc.

"The Cloud"

This tool is one of the class of tool that claims to manage "The Cloud". My definition of what this means in the context of dahlia is that:

  1. Dahlia only manages servers that it has created (by default).
  2. Dahlia interacts with resources that allow creation of servers via an api.

That is basically it.