diff --git a/README.md b/README.md index ddbd78a..8c6a75b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Platform engineers at Form3 build highly available distributed systems using inf ## ๐Ÿงช Sample application -The sample application consists of four services: +The sample application consists of three backend service containers and a frontend container: ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” @@ -22,7 +22,7 @@ The sample application consists of four services: โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` -Three of those services connect to [vault](https://www.vaultproject.io/) to retrieve database credentials. The frontend container serves a static file. +The backend services connect to [vault](https://www.vaultproject.io/) to retrieve database credentials. The frontend container serves a static file. The project structure is as follows: @@ -90,12 +90,12 @@ a7c0b089b10c vault:1.8.3 "docker-entrypoint.sโ€ฆ" 2 ``` ## โš™๏ธ Task -Imagine the following scenario, your company is growing quickly ๐Ÿš€ and increasing the number services being deployed and configured. +Imagine the following scenario, your company is growing quickly ๐Ÿš€ and increasing the number of backend services being deployed and configured. It's been noticed that the code in `tf/main.tf` is not very easy to maintain ๐Ÿ˜ข. We would like you to complete the following tasks: -- [ ] Improve the Terraform code to make it easier to add/update/remove services +- [ ] Improve the Terraform code to make it easier to add/update/remove backend services - [ ] Add a new environment called `staging` that runs each microservice - [ ] Add a README detailing: - [ ] Your design decisions, if you are new to Terraform let us know @@ -116,9 +116,9 @@ We would like you to complete the following tasks: - Use only plain Terraform in your solution, i.e. anything supported by the Terraform CLI installed by the `run.sh` script, but not external tooling or libraries that wrap or extend Terraform, such as Terragrunt or tfenv - Only modify files in the `tf/` directory, `run.sh`, and `docker-compose.yml` - Keep the current versions of the services running in `development` and `production` environments -- Structure your code in a way that will segregate environments +- Structure your code in a way that will segregate environments, so a `terraform apply` for one environment can't affect another - ๐Ÿšจ All environments (including staging) should be created when you run `vagrant up` and the apps should print `service started` and the secret data in their logs ๐Ÿšจ - Structure your code in a way that allows engineers to run different versions of services in different environments ### Should Nots -- Do not use external tools that extend Terraform, such as Terragrunt. \ No newline at end of file +- Do not use external tools that extend Terraform, such as Terragrunt.