GithubHelp home page GithubHelp logo

petsy / gcdt Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 2.1 MB

glomex cloud deployment tools to use infrastructure as code (IaC) on AWS

License: MIT License

Makefile 0.17% Python 94.91% Groovy 2.16% Shell 2.57% JavaScript 0.12% Smarty 0.08%

gcdt's Introduction

Documentation License GitHub issues

glomex-cloud-deployment-tools (gcdt)

gcdt is a CLI tool to code and deploy your AWS infrastructure.

The gcdt command line tools have emerged from our experiences at glomex while working extensively with AWS services like Cloudformation, CodeDeploy, AWS Lambda, and API Gateway. gcdt is based on the same technology AWS uses to build AWS-CLI and Boto3 tools.

In 2017 glomex won the Gartner award "Best Data Management and Infrastructure". Key to our success are the gcdt automation tools we use to successfully complete >100 deployments per day to AWS. Over the course of the last 12 months we built gcdt ourselves using Python.

Gartner Award

Features include:

  • Infrastructure-as-code
  • Classic infrastructure (kumo & tenkai)
  • Serverless infrastructure (ramuda & yugen)
  • Scaffolding
  • Powerful plugin mechanism
  • Service integration (Slack, Datadog, ...)
  • Codify infrastructure best practices
  • Multi-Env support (dev, stage, prod, ...)

Why gcdt?

At glomex we love continuous-integration-as-code and infrastructure-as-code. This enables us to move fast while providing services of high quality and resilience to our partners.

We added a plugin mechanism to gcdt so we can specialize gcdt to highly optimized and opinionated environments that resonate with our usecases.

We hope gcdt will be helpful to you, too. At glomex we believe that only open source software can become truly great software.

Useful gcdt information

Installing gcdt

The easiest way to install gcdt is via pip and virtualenv.

Defining which gcdt-plugins to use

gcdt needs at least some gcdt-glugins so you should want to install these together. The easiest way is to put the dependencies into a requirements_dev.txt file:

gcdt
gcdt-say-hello
gcdt-config-reader
gcdt-slack-integration
gcdt-datadog-integration
gcdt-gen-serverless

This is also a best practice to use the requirements_dev.txt file on your build server.

Prepare virtualenv

I am sure every Python dev uses virtualenv on a day to day basis. But we also use gcdt to deploy PHP, Ruby, and NodeJs projects. So I like to cover the basics:

Prepare the venv:

$ virtualenv venv

Activate the venv for use:

$ source ./venv/bin/activate

Installing all dev dependencies in one go

Install the dependencies into venv:

$ pip install -r requirements_dev.txt

Now you can start using gcdt:

$ gcdt version

Contributing

At glomex we welcome feedback, bug reports, and pull requests!

For pull requests, please stick to the following guidelines:

  • Add tests for any new features and bug fixes. Ideally, each PR should increase the test coverage.
  • Follow the existing code style (e.g., indents). UseA PEP8 code linting.
  • Put a reasonable amount of comments into the code.
  • Separate unrelated changes into multiple pull requests.

License

Copyright (c) 2017 glomex and others. gcdt is released under the MIT License (see LICENSE).

gcdt's People

Contributors

arfua-zz avatar clamm avatar henriknaknese avatar jbrandstetter avatar lony avatar ludwigm avatar markfink avatar saksham avatar schmidb avatar webratz avatar

Stargazers

 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.