Git Product home page Git Product logo

moonshot's Introduction

Moonshot Documentation StatusBuild StatusTest CoverageCode ClimateGem Version

Because releasing services shouldn't be a moonshot.

Overview

We also have pretty docs, lots more to find there.

Moonshot is a Ruby gem for provisioning environments in AWS using a CLI. The environments are centered around a single CloudFormation stack and supported by pluggable systems:

  • A DeploymentMechanism controls releasing code.
  • A BuildMechanism creates a release artifact.
  • A ArtifactRepository stores the release artifacts.

General Flow

Design Goals

These are core ideas to the creation of this project. Not all are met to the level we'd like (e.g. CloudFormation isn't much of a Choice currently), but we should aspire to meet them with each iteration.

  • Simplicity: It shouldn't take more than a few hours to understand what your release tooling does.
  • Choice: As much as possible, each component should be pluggable and omittable, so teams are free to use what works best for them.
  • Verbosity: The output of core Moonshot code should explain in detail what changes are being made, so knowledge is shared and not abstracted.

Existing limitations

  • Moonshot does not support detailed error logging from Cloudformation substacks.
  • Moonshot does not support a non-local cloudformation file.

Installation

Add this line to your application's Gemfile:

gem 'moonshot'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install moonshot

After installation, there is still some work required. Follow the example documentation as described below to dig in!

Getting started

The Moonshot tool has been designed to be an extensible library for your specific use-case. Interested in how it can be used? See our example documentation. The example doc uses the files shown in the sample directory so you can figure out how to modify this for your own deployment strategy.

We also want to help you contribute and answer all your questions on how Moonshot is maintained.

Requirements

  • Ruby 2.1 or higher

Attributions

Thanks to Acquia Inc. for sponsoring the time to work on this tool. Thanks to Ted for the funky logo.

moonshot's People

Contributors

askreet avatar glennpratt avatar jamesiarmes avatar kaushik avatar nickveenhof avatar unn avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.