Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ADRs for TF and Docker #43

Merged
merged 1 commit into from
Jun 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions adr/004-docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 4. Docker Containerization

Date: 2024-06-03

## Decision

We will use [Docker](https://docs.docker.com/get-started/overview/) for containerization of our application.

## Status

Accepted.

## Context

Docker is an open platform for developing, shipping, and running applications. Docker provides the ability to package and run an application in a loosely isolated environment. Some benefits of using Docker:
- Develop your application and its supporting components using containers.
- The container becomes the unit for distributing and testing your application.
- When you’re ready, deploy your application into your production environment, as a container or an orchestrated service.
- Allows for responsive deployment and scaling.

We also already use Docker in [TI](https://github.com/CDCgov/trusted-intermediary)

[Reference](https://docs.docker.com/get-started/overview/)
31 changes: 31 additions & 0 deletions adr/005-iac-terraform.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 5. Terraform IaC for Deploys

Date: 2024-06-03

## Decision

Terraform will be used to deploy our infrastructure into the cloud.

## Status

Accepted.

## Context

Infrastructure as Code (IaC) is a industry best practice to get repeatable and resilient deployments of applications and
associated infrastructure into the cloud.

There are many IaC options to deploy to Azure.

- [ARM Templates](https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview).
- [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep).
- [Terraform](https://www.terraform.io).
- [Pulumi](https://www.pulumi.com).
- [Ansible](https://www.ansible.com).
- [Chef](https://www.chef.io).
- [Puppet](https://www.puppet.com).

There are probably even more.

Terraform is multi-cloud and multi-tool, has a full-featured DSL, tracks state and dependencies, and is agentless.
Terraform is also used by ReportStream and [TI](https://github.com/CDCgov/trusted-intermediary)