This repo contains code for a multi-tier application.
The application overview is as follows
web <=> api <=> db
The folders web
and api
respectively describe how to install and run each app.
For this section, we expect the main deliverable to be code, delivered via Github.
Create the scripts (Terraform, Ansible or other) to deploy the multi-tier application with source code hosted at https://github.com/busbud/devops-challenge-apps
- The web and api tiers must have multiple container instances.
- The API needs one database (PostgreSQL) and this service needs be in a container.
- The solution should support docker image versioning
- The solution should write all the logs to the Rsyslog service (Operating System and containers included)
- The solution must handle instance and container failures
- The result of running the scripts should be two publicly available tiers: web and api
- Each tier should have either a dedicated subdomain (web.example.com, api.example.com, port 80 or 443 as you choose) or ports (host can be an IP address, with each port number of your choosing). In either case, please specify how we can access each service via curl
- We should be able to run the script against our own AWS infrastructure and be able to launch the same tiers with minimal custom configuration or install steps. Please specify the command to execute and any setup required to ensure a successful run. Again, please specify how you would expect we can access each service via curl
- The scripts should be delivered as a public repo on Github or a pull-request made against the https://github.com/busbud/devops-challenge-apps repo
For this section, we expect the main deliverable to be prose, delivered via Github (you can also upload a PDF) or a Google Doc. We mainly expect a description of the approach to implement your solution, as opposed to the code to implement it. However, if coding is faster, then by all means, deliver code!
Suggest any solution to improve monitoring beyond the basics offered by AWS Cloudwatch.
Describe how to handle database migrations with respect to the api app code deployment.