I am pleased to announce the release of our second tool: Delta.
Delta is a tool for deploying your application following the current AWS best practices. Instead of launching EC2 instances manually, Delta creates an Auto Scaling Group (ASG) which is responsible for launching instances.
ASGs are famous for allowing your application to scale with demand, but perhaps less so for the fault tolerance. You see, an ASG does everything it can to maintain a minimum number of servers running and serving your application. If you were to go in an terminate one of those servers, the ASG will notice, and bring up a new server to replace it. That's right, a person sitting in a NOC with a playbook that says "reboot a server if something goes wrong" is being replaced with an ASG. No alarms, no pagers - this is just something AWS will handle for you, and Delta makes it easy.
Now applications aren't static. Users want new features, and developers fix bugs. Those changes need to get to production. Each version of your application is a version in Delta. A new set of servers running version 2 of your code is brought up, and you click the button to switch traffic between version 1 and version 2.
If all goes well with version 2, you can terminate version 1 at your leisure. However, if version 2 was worse than version 1, or didn't work at all, you can roll back to version 1 in seconds. This is the blue/green deployment model model Netflix have been using for years (though they like to call it red/black deployment to match their logo).
At Netflix, they have been using Asgard as their internal tool, and have 100s of deployments going through it each day. Asgard is an open sourced project, and as a NetflixOSS Cloud Prize winner, I don't want to pick on them too much, but Asgard has it's short comings:
- No user security, which means you need to hide the service from the internet
- Custom user-data requires writing Groovy code
- No support for IAM roles, which means hard coding user credentials into the config
- It has 5 years of legacy features that aren't necessary any more
- Requires your VPC to be set up in a specific way
Delta takes just the deployment model of Asgard, and makes it available as a hosted SaaS. You still use your own AWS account to host your application - Delta is just making the AWS API calls for you, and maintaining version history.
Of course these are early days. We want, no no, need your feedback. Sign in, give it a try, and let us know what you think.