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
Be prepared to 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