Application repository for exam in "DevOps in the Cloud" at Kristiania University College. Infrastructure may be found here.
This exam was initially written under a pseudonym account, @lagasild. As the exam is over and grading is done, I have transferred the repository to my own account. In addition, I have changed the commit author to myself.
- Start influx locally,
./scripts/start_influx.sh
- Set Spring Boot profile to
local
in IDE - Start application from
App.kt
travis encrypt DOCKER_USERNAME=<your_username> --add
travis encrypt HEROKU_APP_NAME=<your_app_name> --add
travis encrypt $(heroku auth:token) --add deploy.api_key
- Endpoints
- Posting device
- Getting device
- Posting measurement
- Getting measurement
- Branch protection
- Oppgave 1 - Pipeline
- Infrastrukturkode i repo
- ikke ha modul (ha modul lokalt?)
- bruk aws for terraform-state
- oppdater med travis
- Sjekk at det er OK med en lokal terraformmodul
- Infrastrukturkode i repo
- Travis
- Det skal lages en CI/CDpipeline for applikasjonen ved hjelp av Travis CI.
- Det skal også være en tilsvarende pipeline for infrastruktur.
- Pipeline skal deploye hver commit på master branch til "CI" miljøet i heroku, ved ok bygg og når testene ikke feiler.
- Deployment fra CI-miljø videre til Stage og produksjon skal skje manuelt ved at man promoterer applikasjonen i Heroku UI (Eller CLI). Studentene kan fritt velge å implementre kontinuerlig deployment til stage, og fra stage til prod - men det gis ikke poeng for dette.
- Oppgave 2 - Pipeline
- Du skal skrive en Dockerfil som kan brukes for å bygge et Container Image av Spring Boot applikasjonen din.
- Du skal utvide pipeline, til å bygge et Docker image fra Docker filen
- Docker image skal lastes opp til Docker Hub
- Oppgave 3 - Pipeline
- Implementer infrastruktur for varsling ved hjelp av SAAS tjenesten OpsGenie
- Implementer infrastruktur for overvåkning ved hjelp av SAAS tjenesten StatusCake
- Oppgave 4 - Pipeline
- logge datapunkter ved hjelp av rammeverket Micrometer
- Minimun
- Gauge
- Counter
- Distributionsummary
- Timer
- LongTaskTimer
- Sjekk at forventet data er fornuftig
- Annen metric (i og med at kravet er minimum de over) (gaugeCollectionSize)
- Levere Metrics til InfluxDB (som antasa aa kjoere paa egen container)
- Dere må bruke Spring profiles og @Configuration i Spring til i bruke SimpleMeterRegistry når applikasjonen ikke kjører lokalt.
- Oppgave 5
- Denne oppgaven består av å bruke en SAAS tjeneste, Logz.io for innsamling, visualisering og analyse av logger. Dere skal utvide applikasjonen på en slik måte at logger sendes til denne tjenesten. Spring boot applikasjonen må modifiseres slik at loggene sendes til tjenesten.
- Sjekk alle TODOs
- Ga gjennom alt