-
Notifications
You must be signed in to change notification settings - Fork 7
AWS & Deployment Selections
TACO is deployed as a Docker container to AWS' Elastic Container Service (ECS) via CircleCI. The ECS environment consists of an infrastructure
cluster, a taco
service, and a container/task definition which is configured via Terraform. CircleCI, when triggered for a deployment, builds and tags a new image, registers the image with Taco's Docker Hub Repo, registers a new task definition with ECS, then updates the taco
ECS service.
CircleCI was chosen for its Dockerfile like syntax to create isolated testing and/or deployment environments. This allows for any action to be performed within a configured container without any existing providers. For example, deployments to ECS are performed by installing and configuring the AWS cli and running aws ecs
commands within the container.
CircleCI also allows for complex workflows for separate testing and deployment actions with optional dependencies. TACO's deployment workflow is currently triggered one of two ways:
- any change to
master
branch - pushing a tag matching
/v[0-9]+(\.[0-9]+)*(-demo)/
from any branch
All ECS resources are managed in DLSS' terraform-aws private GitHub repo. It provides the VPC for the demo environment, roles required by ECS, the deployer role that CircleCI uses to configure the AWS cli for deployments, the infrastructure
ECS cluster (that creates a public application load balancer and log group in CloudWatch for the cluster), the TACO service, and initializes TACO's container definitions.
ECS resources in Terraform is currently deployed to the us-east-1
AWS region in order to leverage the new serverless Fargate launch type for ECS. The identifier-service
and permissions-service
services will also be deployed to the infrastructure
cluster in the near future.
- TACO API & Service Design
- Development Guide
- TACO Internal Steps
- Identifier schema
- Data Modeling & MAPs
- Data Expectations of TACO
- Auth & Permissions
- Benchmarking Goals & Scenarios
- Workflows & Robots Replacement Analysis