Giter Site home page Giter Site logo

josh-paul / yolo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from larsbutler/yolo

0.0 1.0 0.0 132 KB

Deployment tool for managing infrastructure and services on AWS for multiple accounts/stages.

License: Apache License 2.0

Makefile 0.34% Python 99.66%

yolo's Introduction

yolo

Manage infrastructure and services on AWS for multiple accounts/stages.

(Or, "yolo everything into prod.")

Documentation Status

Terminology

  • Project: a collection of services, the code repository represents a project.
  • Service: typically a microservice, could be an API Gateway/Lambda powered API, or a CloudFront-based web UI. A project may contain multiple services.
  • Account: an AWS account, in some contexts it also means a baseline [infrastructure].
  • Stage: an instance of the project deployed to an account. There may be multiple stages within an account. Examples of stages are "dev", "test", "QA", "production", etc.

Docker build container for Lambda Functions

The Dockerfile contained in this repo is published to https://hub.docker.com/r/larsbutler/yolo/. It is built directly from GitHub, so if this file is updated the patch needs to merged downstream into the master branch of https://github.com/larsbutler/yolo.

Workflow

  1. Authenticate with "Fanatical Support for AWS" (using Rackspace Cloud credentials), so that AWS account credentials can be fetched when needed, without having to re-authenticate:
yolo login
  1. Create a Yolo file, you can find an example in the code repository.
  2. Define AWS account-level resources using a CloudFormation template.
  3. Deploy the baseline infrastructure:
yolo deploy-infra --account testaccount
  1. Define stage-level resources using a different CloudFormation template. There can be multiple stages within a single account (they will be deployed as separate CloudFormation stacks), and a stage represents an instance of your project (collection of services).
  2. Deploy the stage-level infrastructure:
yolo deploy-infra --stage dev
  1. Depending on the type of application you're developing, you can finally build and/or deploy it:
yolo build-lambda --stage dev
yolo deploy-lambda --stage dev

All supported commands

Usage: yolo [OPTIONS] COMMAND [ARGS]...

  Manage infrastructure and services on AWS for multiple accounts/stages.

  (Or, "yolo everything into prod".)

Options:
  -h, --help  Show this message and exit.

Commands:
  build-lambda           Build Lambda function packages.
  clear-config           Clear cached configuration for `yolo`.
  deploy-baseline-infra  DEPRECATED: Use `yolo deploy-infra` instead.
  deploy-infra           Deploy infrastructure from templates.
  deploy-lambda          Deploy Lambda functions for services.
  deploy-s3              Deploy a built S3 application.
  list-accounts          List AWS accounts.
  list-builds            List the pushed builds for a service/stage.
  list-lambda-builds     DEPRECATED: Use `yolo list-builds` instead.
  list-s3-builds         DEPRECATED: Use `yolo list-builds` instead.
  login                  Login with and cache Rackspace credentials.
  push                   Push a local build, ready it for deployment.
  push-lambda            DEPRECATED: Use `yolo push` instead.
  put-parameters         Securely store service/stage parameters.
  run                    Run a script with AWS account credentials.
  shell                  Launch a Python shell with AWS credentials.
  show-config            Show currently cached configuration.
  show-outputs           Show infrastructure stack outputs.
  show-parameters        Show centralized config for a service/stage.
  show-service           Show service configuration for a given stage.
  status                 Show infrastructure deployments status.
  upload-s3              DEPRECATED: Use `yolo push` instead.
  use-profile            Make Yolo use an AWS CLI named profile.

yolo's People

Contributors

burib avatar jmvrbanac avatar larsbutler avatar ryandub avatar szilveszter avatar

Watchers

 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.