Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Kaikki sellainen, joka koskee vain Kompassia itseään avoimen lähdekoodin sovelluksena, kuuluu kooditason dokumentaatioon. Tälle sivulle kuuluvat ne asiat, jotka käsittelevät osoitteessa https://kompassi.eu sijaitsevaa virallista Kompassi-asennusta sekä Kompassin kehitysprosessia osana Traconia, Desuconia ja RopeconiaoRopeconia.

Kehitysprosessi

Backlog sijaitsee Jirassa. Boardille pääsemiseksi tarvitaan kompassi-developers-ryhmäjäsenyys, jonka saa Japsulta. (warning) Ryhmän antaminen Kompassin taka-administa ei riitä, koska se ei päivitä ryhmäjäsenyyttä Crowdiin, vaan se pitää toistaiseksi päivittää käsin myös Crowdiin.

...

  • Japsu kehittää suoraan development-haarassa, jos työ ei jää pitkäksi aikaa kesken. Japsu ei siis välttämättä aina käytä feature-haaroja.
    • Vieraileville kehittäjille feature-haarat ovat pakollisia ja developmentiin mergetään Japsun koodikatselmoinnin kautta.
    • Katselmointia pyydetään lähettämällä GitHubissa pull request, joka kohdistuu kehittäjän omasta feature-haarasta virallisen repon development-haaraan.
  • Japsu tekee tarvittaessa hotfixejä suoraan master-haaraan ja mergeää suoraan masterin developmentiin.
    • Siinä epätodennäköisessä tapauksessa, että vieraileva kehittäjä tekee hotfixin, Japsu katselmoi sen ja mergeää sen ensin masteriin ja developmentiin.
    • Katselmointia pyydetään lähettämällä GitHubissa pull request, joka kohdistuu kehittäjän omasta feature-haarasta virallisen repon development-haaraan.
  • Releaseja ei tehdä GitFlow-tyyliin, vaan Japsu testattuaan uudet ominaisuudet development-haarassa ja Staging-ympäristössä mergeää development-haaran suoraan master-haaraan ja sitä kautta deplaa sen tuotantoon.

...

Tietokantamigraatiot tehdään Djangon omalla migraatiotyökalulla. Niiden vastuulla on tietokannan rakenteen (taulujen, kenttien ja indeksien) päivittäminen ajan tasalle.

Migraatioiden lisäksi käytetään ns. idempotentteja setup-skriptejä. Idempotentti tarkoittaa sitä, että setup-skriptiä voi ajaa samaan asennukseen uudestaan ja uudestaan, eikä se myöhemmillä ajokerroilla riko mitään saati hajoa omaan mahdottomuuteensa, vaan varmistaa vain haluttujen resurssien olevan olemassa.

Setup-skriptin vastuut pähkinänkuoressa:

  1. luo organisaatiot, tapahtumat ja muun rakenteellisen informaation Kompassin tietokantaan
  2. luo uudet ryhmät Atlassian-tuotteiden Crowd-kertakirjautumispalveluun, jos se on konfiguroitu

Omassa kehitysympäristössäsi voit ajaa setup-skriptin tai pelkät migraatiot Docker Composen avulla näin:

...

Staging- ja tuotantoympäristöissä setup-skriptin ja migraatioiden ajoon käytetään Jenkinsistä löytyvää kompassi-ops-työtä. Jenkins käyttää puolestaan näiden ajamiseen Ansible-konfiguraationhallintatyökaluaskriptejä. Kuha pääsee Jenkinsiin, voi ajaa tietokantamigraatiot tai setup-skriptin vaikka ei ole SSH-pääsyä tai paikallista Ansible-ympäristöä.

Jenkins like it's 2010

Tietokanta

Tuotanto- ja Staging-ympäristöissä tietokannan käyttöoikeudet on eriytetty siten, että tietokannan rakenteeseen vaikuttavat operaatiot – siis käytännössä migrate- ja setup-skriptit – ajetaan tietokannan omistajakäyttäjällä (ei kuitenkaan pääkäyttäjällä) ja sovellusta itseään pyöritetään matalammin oikeuksin. Lisää tästä voit lukea kooditason dokumentaatiosta.

Molempien tietokannat sijaitsevat tätä kirjoitettaessa vielä Neulan dockeroidussa PostgreSQL:ssä ja tätä lukiessasi ehkä jo Siilolla. Tietokantoja varmuuskopioidaan jatkuvasti Piiloon. Lue lisää tietokannoista.

Ympäristö

Tietokanta missä nyt

(16.9.2017)

Tietokanta missä toivottavasti pian

Tavallinen käyttäjä

(Sovelluksen ajo)

Tietokannan omistajakäyttäjä

(Migrate- ja setup-skriptit)

Tuotanto

palvelin neula.kompassi.eu

kontti kompassi.eu-docker (PostgreSQL 9.5)

tietokanta kompassi

palvelin siilo.tracon.fi

kontittamaton PostgreSQL 10

tietokanta kompassi

kompassikompassi_ddl
Staging

palvelin neula.kompassi.eu

kontti kompassi.eu-docker (PostgreSQL 9.5)

tietokanta kompassidev

palvelin siilo.tracon.fi

kontittamaton PostgreSQL 10

tietokanta kompassi

kompassidevkompassidev_ddl