[Haskell-cafe] [ANN] Stratosphere: AWS CloudFormation EDSL in Haskell
johndreaver at gmail.com
Tue Apr 19 18:56:18 UTC 2016
CloudFormation is a system that provisions and updates Amazon Web Services
(AWS) resources based on declarative templates. Common criticisms of
CloudFormation include the use of JSON as the template language and limited
error-checking, often only available in the form of run-time errors and
rollbacks. By wrapping templates in Haskell, we are able to easily construct
them and help ensure correctness.
The goals of stratosphere are to:
- Build a Haskell EDSL to specify CloudFormation templates. Since it is
embedded in Haskell, it is type-checked and generally much easier to work
with than raw JSON.
- Have a simple checking/linting system outside of the types that can find
common errors in templates.
- Be able to also read valid CloudFormation JSON templates so they can be
type-checked. This also gives us free integration tests by using the huge
amount of example templates available in the AWS docs.
Most of the commonly used CloudFormation resources are implemented, and
new resources is very straightforward. (We created a web scraper that
a JSON file from a given CloudFormation documentation page URL, and from
we generate a Haskell module.) So far, we have implemented resources we use
Front Row Education, and we will add more resources over time.
The library is very much in a usable state as-is. However, we want to make
sweeping changes while it is still young. If you have any suggestions at
you want us to add your favorite resource, or if you find a bug, please
issue on Github!
Also, we want to give a huge thanks to Brendan Hay, the author of amazonka,
his ideas and feedback on the project.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe