Järjestelmäarkkitehtuuri

Peda.net järjestelmäarkkitehtuurin kuvaus

Yleistä Peda.net palvelusta

Peda.net palvelu tuotetaan käyttäjille Software as a Service (SaaS) palveluna. Kaikki palvelun käyttö tapahtuu verkkoselaimella. Erillisiä asennettavia sovelluksia (App) ei ole, eikä käyttö ole mahdollista ilman Internet-yhteyttä (offline).

Tärkeimmät Peda.net palvelun tuottamiseen käytetyt ohjelmistokomponentit

  • Ubuntu Linux LTS
  • Apache HTTP Server
  • PHP
  • PostgreSQL
  • Gluster
  • Elasticsearch

Verkkototeutus

Peda.net palvelimien verkkototeutus koostuu neljästä erillisestä loogisesta verkko-osiosta.

  1. Julkinen verkko Internetistä kuormantasaajille.
  2. Jyväskylän yliopiston sisäverkko palvelimien ylläpitoon.
  3. Yksityinen verkko kuormantasaajien ja sovelluspalvelimien väliseen liikennöintiin.
  4. Yksityinen verkko palvelimien väliseen liikennöintiin.

Kuormantasaimet

Kaikki Peda.net palvelun käyttäjäliikenne kulkee kahden Citrix Netscaler -kuormantasaimen kautta. Kuormantasaimet huolehtivat liikenteen TLS-salauksesta ja jakavat liikenteen sovelluspalvelimille.

Sovelluspalvelimet

Sovelluspalvelimet ajavat kaiken Peda.net palvelun toimintaan liittyvän PHP-koodin.

Tietokantapalvelimet

Tietokantapalvelimet ajavat Peda.net palvelun tarvitsemat PostgreSQL-tietokannat sekä Elasticsearch-hakupalvelut.

Tiedostopalvelimet

Tiedostopalvelimet tallentavat ja jakelevat Gluster-tiedostojärjestelmällä kaikki Peda.net palveluun tallennetut käyttäjien tiedostot.

Varmuuskopiopalvelin

Varmuuskopiopalvelin huolehtii koko Peda.net järjestelmän tietojen varmuuskopioinnista ja varmuuskopioiden säilytyksestä. Lisäksi tämä palvelin toimii myös Peda.netin lähdekoodin versiohallinnan pääpalvelimena.

Extras apupalvelin

Virtuaalipalvelimena toteutettu extras-palvelin huolehtii @peda.net-sähköpostitileistä, palvelinjärjestelmän toiminnan seurantajärjestelmästä sekä Peda.net järjestelmän PHP-koodin päivityksestä versionhallinnasta tuotantoon sovelluspalvelimille.

Testipalvelin

Testipalvelimella suoritetaan uuden lähdekoodin testaus ennen sen julkaisua sovelluspalvelimille.

Tuotekehityksestä

Peda.net järjestelmän tuotekehityksessä käytetään Git-versiohallintaa. Git toimii myös merkittävässä roolissa (DevOps) lähdekoodin ja asetusten julkaisussa sovelluspalvelimille.

Sovelluskehityksen tarpeisiin käytetään virtuaalikoneeseen rakennettua Peda.net-järjestelmän kaikki merkittävät komponentit sisältävää palvelinta. Näin tuotekehitys voidaan tehdä mahdollisimman tarkaan tuotantoympäristöä vastaavassa ympäristössä.

Historia

Versio

Tila / Muutokset

Päiväys

Tekijä

0.9

Ensimmäinen versio

17.4.2018

Juha Lahti

1.0

Hyväksyntä

17.4.2018

Tero Pelkonen