Original repository: https://github.com/elderstudios/infrastructure-tech-test
Original requirements moved to docs/README.md
Product team developed a simple container-based application backed by PostgreSQL database and requires a production deployment. There are no specific CIA and performance requirements.
Quick look at the data stored by the application suggest that this will be handling PII. This will require data in-transit and at-rest encryption.
Due to missing performance requirements I'm going to assume the worst scenarion which is a wide-scalability requirement. This means that all components should handle a significant load while also being capable of scaling in to save money. This will help also with future development environment deployment where the same template can be used without incuring significant charges but also supporting even load-testing scenarios.
Application is written in Go and product team already provided a well written Dockerfile. There's a build stage and final container is build on distroless.
Logs are outputed by the program to stdout and captured by the ECS into Cloudwatch Logs.
Application container is build by Docker Hub automatically from the repository. Docker tags are published from repository tags prefixed with "docker-". So a docker-1.0 Git repository tag would lead to a docker.io/msusta/elder-members:1.0 container tag.
msusta/elder-members repository
This deployment requires existing VPC with set of public and private subnets. VPC information is supplied as variables to the Terraform template.

Whole solution is fronted by Application Load Balancer. It provides scalable ingress point into the private network from the Internet. The TLS connection from clients is terminated here. This removes the need to handle the certificate within the application container and lowers compute requirements too.
DB is deployed on top of Amazon Aurora with PostgreSQL compatibility with the Serverless capacity provider.
Application is stateless. Only DB backups are required. Backup retention policy and offsite backups to be agreed upon with product team.
Content type
Image
Digest
Size
14.6 MB
Last updated
about 5 years ago
docker pull msusta/elder-members