Automated, Robust Image Creation for Fast-Moving AWS Platforms
Switch branches/tags
Nothing to show
Latest commit 4878be6 Jan 13, 2013 @gillisda gillisda dg Updates to readme
Failed to load latest commit information.


Robust Application Development, and Distribution

BinaryFusion fuses application with virtual machine images to create isolated, robust, and reliable machine images that can be used both in development and production.

Binary Fusion Overview

Product Vision

Problems in traditional physical (or p2v) application deployment

  • in-place applications updates are risky
  • os updates are difficult without disrupting a running application
  • application rollbacks are difficult

Problems with Platform as a Services

  • Paas frameworks will always lag behind Iaas innovations.
  • Iaas providers will likely evolve and make many generic Paas a paasing fad.
  • prohibitive (availablibity, expense) to create private clouds
  • applications updates can still break a working deployment
  • limited regions per provider [dg: is this AWS vs PAAS argument?]

Construct Hierarchy

  • Deployment script (e.g. CloudFront)
  • Stack script (e.g. Elastic Beanstalk)
  • Instance script (e.g. BinFusion)
  • Instance preparation script (e.g. Puppet, Chef)

Opportunities with cloud computing

  • cloud computing makes deploying a brand-new application fast, easy, and cheap
  • virtual machine images can be re-created each update
    • os is always up to date
  • can replace the entire working stack each update, no risky deployments
    • the new stack can be tested before live deployment
    • live migration step only involves re-pointing a load balancer
    • rollback is easy

Testing Considerations

  • How is a/b testing done
  • Staging and Test use different AWS credentials
  • high scale of continuous deployment (10 to 50 per day)

We need good tools that take this approach!

  1. a good tool should provision and create an AMI with one command
  2. a good tool should provide good default builds
  3. a good tool should make deployment fun


BinaryFusion is a Ruby application that can be installed via Ruby gems.

$ gem install binfuse
$ cd my/project
$ binfuse init

The init command will ask you for your AWS credentials, and what kind of project you are running.


  1. Create a project that contains a Procfile
  2. Build an image with binfuse create
  3. Done!

After an new image has been fused it is ready to be attached and run in AWS.

Inspirations and References