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.
-
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.
-
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.
-
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:
- Dahlia only manages servers that it has created (by default).
- Dahlia interacts with resources that allow creation of servers via an
api.
That is basically it.