This repo contains code for a multi-tier application.
The application overview is as follows:
+------------+ +------------+
<=> | (web tier) | <=> | (api tier) | <=>
(load balancer) <=> | (web tier) | <=> | (api tier) | <=> (db)
<=> | (web tier) | <=> | (api tier) | <=>
+------------+ +------------+
The folders web
and api
respectively describe how to install and run each app.
This challenge is divided in multiples parts(deliverables). You don't need to finish all. Show us what do you finished.
- Create a clean web
Dockerfile
- Create a clean api
Dockerfile
- Define a
docker-compose.yml
in the project root that run theweb
andapi
with a simpledocker-compose up
- The
docker-compose.yml
needs to make the developer life better - Publish the image in a public registry with the command
docker-compose push web api
OBS: API requires PostgreSQL
- Using IAC(infrastructure as code) create a Kubernetes cluster
- Using IAC(infrastructure as code) create a PostgreSQL server
- Using IAC(infrastructure as code) create a PostgreSQL database and user
- Deploy api service on cluster
- Configure the database credentials in a security way
- Deploy web service on cluster
- Create a Load Balancer pointing to web application
- Solution must handle instance container failures
- WEB and API tiers must have multiple instances
- Deploy of new version without downtime
- Monitor the application using Prometheus
- Show monitores data in a dashboard
- Collect log and show in a dashboard
Please specify all steps needed to execute and see the application working.
The scripts should be delivered as a public repo on Github or a pull-request made against the https://github.com/robsonpeixoto/devops-challenge-apps repo.