Open-Sourcing Moonshot

March 15, 2016
Moonshot diagram

Last week the entirety of Acquia Engineering, which spans the globe, was in Boston for Build Week.

It is a time for people to interact internally among their teams, and externally with other teams. It's an important part of our engineering culture, and it always ends with a Hackathon.

One of the projects in this year's Hackathon was focused on open sourcing a tool several teams have been using internally. The result: we are happy to announce Moonshot!

With Moonshot you can:

  • Manage deployment lifecycle of your CloudFormation stack.
  • Use your existing artifact repository, build system, and deployment mechanisms with Moonshot's pluggable components for supporting services, like GitHub.
  • See a single pane-of-glass view of your environment with the status command

Moonshot started as a couple Ruby files on Kyle's laptop. Those scripts enabled the team to launch their infrastructure in AWS using CloudFormation, and deploy the application using CodeDeploy. My team stumbled upon this script and began to bug Kyle with questions. Very soon those couple of files became Moonshot. A few more teams rallied to the simplicity and usefulness of the tool.

Staying true to it's beginnings, Moonshot remains a Ruby gem for provisioning environments in AWS using a CLI. Moonshot is extensible, providing plugins for how builds are created, stored, and deployed, using AWS tools like CloudFormation, S3, and CodeDeploy.

You can get started with Moonshot today by adding gem moonshot to your application's Gemfile. Take a look at the example included in the repository to get a sense of how Moonshot works. Don't use Ruby? You can use Moonshot with any type of service. The sample application deploys PHP!

We hope you enjoy Moonshot and look forward to your PRs.

Also, a big thanks to Team Apollo as well as those who have helped Moonshot get where it is today.

Sign-up for our Developer Blog Newsletter


Add comment

By submitting this form, you accept the Mollom privacy policy.