Back to Engineering
2016

Jetstream

Python · infrastructure · DevOps · cloud-native · automation · open source
View repository

Jetstream is a Python wrapper around Troposphere that I helped build at Rackspace. It let our managed service teams quickly build out client environments using CloudFormation, and gave us a reusable component library that scaled across a large number of templates.

Why we built it

When Rackspace pivoted to AWS, our managed service teams needed a way to help clients build out their environments quickly and consistently. We had a prior solution built around Ansible, but it wasn't efficient when it came to testing. It would execute all tests even if a template hadn't changed, which didn't scale as the library grew.

Jetstream replaced that with a Python-based authoring experience built on reusable components. We developed a large library of templates that our Rackers could use internally and that was also available to our managed service customers for AWS. Templates went through code review before joining the library, so quality stayed high as it grew.

How it works

Templates are Python classes that inherit from JetstreamTemplate, built on Troposphere for native CloudFormation validation. Jetstream adds intelligent dependency testing that only rebuilds changed templates and their dependents, and supports publishing to S3 or the local filesystem. Template lifecycle hooks let you customize behavior at each stage (documentation, generation, testing).