You have been asked to create the infrastructure for running a web application on a cloud platform of your preference (Google Cloud Platform preferred, AWS or Azure are also fine).
The web application can be found in the test-app/
directory. Its only requirements are to be able to connect to a PostgreSQL database and perform PING requests.
The goal of the challenge is to demonstrate hosting, managing, documenting and scaling a production-ready system.
This is not about website content or UI.
- Deliver the tooling to set up the application using Terraform on the cloud platform of your choice (free tiers are fine)
- Provide basic architecture diagrams and documentation on how to initialise the infrastructure along with any other documentation you think is appropriate
- Provide and document a mechanism for scaling the service and delivering the application to a larger audience
- Describe a possible solution for CI and/or CI/CD in order to release a new version of the application to production without any downtime
- Explain your choices
In addition to the above, time permitting, consider the following suggestions for taking your implementation a step further:
- Monitoring/Alerting
- Implement CI/CD (github actions, travis, circleci, ...)
- Security
- We recommend using this repository as a starting point, you can clone it and add your code/docs to that repository
- Please do no open pull request with your challenge against this repository
- Submission of the challenge can be done either via your own public repository or zip file containing
.git
folder