# DevOps methodology project plan ADR.
## Status
There is a need to create a desing for a demo for WOSP
## Context
The goal is to create a project which visualisate DevOps core concepts, using adequate technology and methodology to showcase its potentical.
## Decision (Desing)
The demo consits of app, infra and rule for work/managing code, whitch observability tools.
### Infra
We choosing to use following techonlogy:
* Github - for repository since, it is free for small open source projects and for larger it is cheap. It has all the features we need and we do not have to have addionall gitlab extensions.
* Github actions - for CI/CD - it is free and is quite powerfull, although it is not the best and sometime annoying to work with.
* Github container registry - very good integration with github actions and free for small projects.
* Terraform - for spining up infrastrucutre in IaaC manner. Most popular tool easily expandable (i.e. by TerraGrunt) and mainly used to store IaaC. Readable which causes its a good example of self documented chunk of code.
* Kuberntes - cluster for developing contenerized apps
* ArgoCD - for visualization of clusters. Easy to use and extense for developers of the applications. Well-documented and maintained technology.
* Prometheus and Graphana - the most popular stack for observability of cloud-native applications. There is plany and well documented operators for such solutions.
* Vultr - it has terraform provier and offers k8s managed serivce, it is not as expensie as Azure or AWS. Addionally the team has expierence with it.
* Nginx for frontend hosting
The goal is to create autmatic, well integreated and scable infrastructure. That will showcase how good designed tech stack and DevOps methodoly makes it easy to integrate, deploy and monitor life-cycle of the applications.
### App
The app gole is to help showcase
The archtecture will consits of:
* Frontend
* Backend
* Database
Functionalty of the app:
* User registration and login
*
## Consequences
What becomes easier or more difficult to do because of this change?