Easy to use CI/CD driven, convention based application harness that facilitates production grade, multi-stage approval based deployments. Each developer on your team can easily create production replica toplogies from a git feature branch.
Architected to work with a low cost (but scaleable) APIGateway+Lambda OR a high transaction ECS Fargate environment. Includes an upgrade path from the APIG+Lambda to Fargate if/when the workload outgrows Lambda.
There are a handful of necessary steps prior to running any of the Blueprints below. These steps only need to be done once.
- AWS CLI
- Create a personal github access token. This token will be used by the CI/CD to pull code. If you work in a team, it is recommended to create a seperate github user account for this.
- Create a versioned S3 bucket to store CloudFormation nested stack templates. See nested-stacks for instructions.
- If you are running MacOS, install GNU tools (below)
The Stage/Stages term referred to thoughout the Blueprints are: test
,staging
,prod
. All CI/CD enviornments created by Blueprint will give you these 3 stages by default.
View the setup instructions in the README.md
of the blueprint you wish to use.
- abp-sam-twirp: CloudFront -> API Gateway -> Lambda running Twirp (RPC, protobuf&JSON) using Serverless Application Module (SAM). Complete with local API Gateway, Lambda and DyanmoDB simulation.
- abp-sam-nestjs: API Gateway -> Lambda running NestJS using Serverless Application Module (SAM). Complete with local API Gateway, Lambda and DyanmoDB simulation.
- abp-single-lambda-api: API backed by a single Lambda
- abp-singlle-lambda-no-web-api: Single Lambda with no web API (ex: invoked by SNS).
- abp-fargate: Fargate based app (with or without ELB)
- abp-angular: Running Angular web apps on AWS
Not required, but recomended. Some blueprints have a quickstart script, that will require GNU versions if running MacOS.
brew install wget coreutils gnu-sed
#add the following to your PATH
#### fish example (~/.config/fish/config.fish):
set -x GNU_BIN_PATH /usr/local/opt/coreutils/libexec/gnubin
set -x GNU_SED_PATH /usr/local/opt/gnu-sed/libexec/gnubin
set -x PATH $GNU_BIN_PATH $GNU_SED_PATH $PATH
#### Bash example (~/.bash_profile)
GNU_BIN_PATH=/usr/local/opt/coreutils/libexec/gnubin
GNU_SED_PATH=/usr/local/opt/gnu-sed/libexec/gnubin
export PATH="$GNU_BIN_PATH:$GNU_SED_PATH:$PATH"
- HOWTO develop against a localhost HTTPS API.