Code Monkey home page Code Monkey logo

infrastructure-deployment-spec's Introduction

Description

This project aims to define a tool- and cloud-independent specification to automate infrastructure provisioning, which, together with a Configuration Managment System like Chef or Puppet should for the first time fully deliver on the promise of "Infrastructure as code".

Amazon's Web Services recent outage has paradoxically highlighted the need for a tool like AWS CouldFormation that is vendor independent.

There are already Open Source cloud-agnostic libraries for cloud APIs (Fog, libcloud...), and several tools that make use of it (Chef's knife, Spiceweasel) but a tool-independent infrastructure specification is still missing.

Deployments are defined in JSON, following the same syntax as Chef's nodes, roles and cookbooks.

An example of the specification draft (from example.json):

{
    "name": "Web App",
    "version": "1.0",
    "description": "A full Web application, master DB and master slave deployment",
    "environment": "production",
    "nodes": [
        {
            "name": "Master DB",
            "description": "This node will host the Master DB",
            "provider": "Rackspace",
            "image": "49",
            "size": "2",
            "zone": "1",
            "roles": [
                "role[master_db]"
            ]
        },
        {
            "name": "Slave DB",
            "description": "This node will host the Slave DB",
            "provider": "Rackspace",
            "image": "49",
            "size": "2",
            "zone": "1",
            "roles": [
                "role[slave_db]"
            ]
        },
        {
            "name": "WebApp",
            "description": "The Apache web server and our App",
            "provider": "EC2",
            "image": "ami-014da868",
            "size": "c1.xlarge",
            "zone": "us-east-1",
            "roles": [
                "role[frontend]"
            ],
            "attributes" {
                "php": {
                    "memory_limit": "256M"
                }
            }
        }
    ]
}

Go to the Wiki and help in defining this specification!

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License

infrastructure-deployment-spec's People

Contributors

tobami avatar

Stargazers

Chas avatar

Watchers

James Cloos avatar Chas 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.