2.0.0 • Published 4 years ago

@stelligent/mutato v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

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?

At that part, I'm a pro