@stelligent/mutato v2.0.0
Mutato
!NOTE If you are coming from the original Stelligent Mu, keep in mind that Mutato is a successor to Mu. While there are many similarities between the two projects, currently we are not planning to provide any compatibilities between the two.
Stelligent Mutato is an open-source framework for building containerized micro-services on the AWS ecosystem (e.g ECS or Fargate). Mutato is designed to leverage AWS Cloud Development Kit (CDK) constructs which abstract the complexity of writing a safe and secure CloudFormation file to deploy and automate micro-service deployments.
Getting Started
Create a simple mutato.yml file in your Github repository:
---
environments:
- acceptance
- production
---
resources:
- service:
provider: fargate
container: nginx:latest
- network:
vpc:
maxAZs: {{ 1 if environment == "acceptance" else 3 }}
Obtain a GitHub OAuth
token.
We assume you have this available in your $PATH
under $GITHUB_TOKEN
. Execute
the following to deploy your microservice:
$ echo $GITHUB_TOKEN > mutato.env
$ aws-vault exec <profile name> -- env | grep AWS_ >> mutato.env
$ docker run --env-file mutato.env stelligent/mutato bootstrap
$ docker run --env-file mutato.env -v /path/to/your/github/repo:/project stelligent/mutato deploy
This gives you a load balanced NGINX server in two separate environments and the acceptance environment has its VPC AZ capacity set to 1 to reduce costs.
Where To Head Next
- To learn more about what you can write in mutato.yml, head over to its reference schema page.
- To learn more about what you can do with the Mutato Docker container, head over to its page.
- To learn more about extensibility of Mutato, read its extensibility documentation.
- If you are looking for the auto generated low level CDK api documentation, go to API
AWS Environment
We highly recommend you use aws-vault
to manage your AWS environment. If you choose not to, you should manually create
your mutato.env
file with at least the following environment variables:
- AWS_DEFAULT_REGION
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
Consult Docker run's
documentation on the format of the mutato.env
file. Consult AWS
CLI's
documentation for the environment variables you may need to set manually.
Supported Platforms
Mutato has been mostly developed and tested on Linux 64bit (Ubuntu 18.04 LTS). The core codebase is in typescript and uses CDK, therefore in theory it should run anywhere that is capable of running a Docker container or node and npm, but the official support is mostly provided for the Linux 64bit platform.
Stability
Currently Mutato is under active development. Expect an alpha quality software and things rapidly changing until we announce our stable v1.0.
Do not use this in production yet!
...or do. test in production amirite?
4 years ago