Skip to main content

A tool for describing AWS infrastructure.

Project description

[![Documentation Status](https://readthedocs.org/projects/flying-circus/badge/?version=latest)](http://flying-circus.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/flying-circus.svg)](https://badge.fury.io/py/flying-circus)

# flying-circus

Flying Circus is a tool for describing AWS infrastructure.
It uses the same data structures as the AWS Cloud Formation service,
wrapped up as Python code instead of the usual YAML. The Python program
can then generate a YAML template, which is passed across to Cloud
Formation in the usual manner.

It may seem unusual to use a programming language to create descriptions of
infrastructure, instead of a configuration file like many of us are used to
(whether or not we also utilise a templating tool).
We hope that the Flying Circus library can empower DevOps folk by
unlocking some of the techniques that are available
for software code, like named variables and techniques to structure code
independently of the output format, libraries to allow code re-use with versioning,
automated refactoring and so on.

You can learn how to use Flying Circus yourself by reading the
[documentation](http://flying-circus.readthedocs.io/)

# Is/Is Not

There's a lot of tools for managing Infrastructure as Code, often with subtle
differences and passionate advocates. A quick discussion of our scope may
help you understand where Flying Circus fits into this ecosystem, and whether it can
help you. This is presented in the simple "Is/Is Not" format.

## Flying Circus Is...

* ...a Pythonic DSL for writing fully featured Python code
* ...for Amazon Web Services infrastructure
* ...built on top of AWS [Cloud Formation templates](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)
* ...a generator that always produces valid, consistent, human-readable, good-practice YAML

## Flying Circus Is Not...

* ...YAML or JSON. It's Python.
* ...a tool to make it easier to write YAML or JSON. You write Python, and YAML is an output.
* ...a DSL with a completely new syntax. You use normal Python syntax with all
of it's features and nothing changed.
* ...a templating language, like Jinja2.
* ...a template management tool, like Ansible.
* ...an independent implementation of infrastructure management, like AWS
Cloud Formation stacks, or Terraform.
* ...a cloud-agnostic abstraction layer.
* ...multi-cloud - although it could become this in the future.
The current implementation is focused on representing AWS infrastructure
using the CloudFormation data model. Other cloud providers have similar
native data models, so it is feasible that we could re-use the concepts and
tooling to support Google Cloud Platform, etc.
* ...a tool for interacting with the Cloud Formation service. There
are other tools that can do this for you (such as boto3 or the AWS CLI,
for starters)
* ...a validation tool - although it could become this in the future, and
already has elements of validation as a by-product of presenting a helpful
interface to users.

# Sounds Great, Can I Use It?
Sure, just install it through the Python packaging system:

```bash
pip install flying-circus
```

Flying Circus is currently in **Alpha**. This means it may not work, and the
interface may change completely without warning. Additionally, the raw
service classes are currently generated by hand and there's not many of
them, so you will probably need to write some yourself.

# How Do I Help?
For now, just use it. See [the contributor's guidelines](./CONTRIBUTING.md)


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flying-circus-0.6.0.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flying_circus-0.6.0-py3-none-any.whl (71.1 kB view details)

Uploaded Python 3

File details

Details for the file flying-circus-0.6.0.tar.gz.

File metadata

  • Download URL: flying-circus-0.6.0.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.9.1 setuptools/20.7.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.2

File hashes

Hashes for flying-circus-0.6.0.tar.gz
Algorithm Hash digest
SHA256 a06c788da36d93fa5f4b15488475cc6821b28432bd8e98f7908c2f88657f306d
MD5 6eb0da1c147c4d426ba6737a82e25f51
BLAKE2b-256 f4603c07ad188ab7f3a6b4400c463827913856ba5d4ac6c461e4b0a830642077

See more details on using hashes here.

File details

Details for the file flying_circus-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: flying_circus-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 71.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.9.1 setuptools/20.7.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.2

File hashes

Hashes for flying_circus-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c113c63a063c4d7cc1e4a41fb9ae3b409d18bf19b20676008bc06e8951fc17e
MD5 9bd877103e065bd8d35874164b43aaae
BLAKE2b-256 f63a0a59d7b0e20377c61c2083cf906ac5a95a95f76746ab21df18bdaf310ce9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page