<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://peda.net/:static/535/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Järjestelmäarkkitehtuuri</title>
<id>https://peda.net/id/89fd6a8e51d</id>
<updated>2020-10-27T14:22:16+02:00</updated>
<link href="https://peda.net/id/89fd6a8e51d:atom" rel="self" />
<link href="https://peda.net/info/palvelunkuvaus/tekninen-kuvaus/arkkitehtuuri#top" rel="alternate" />
<logo>https://peda.net/:static/535/peda.net.logo.bg.svg</logo>
<rights type="html">&lt;div class=&quot;license&quot;&gt;Tämän sivun lisenssi &lt;a rel=&quot;license&quot; href=&quot;https://peda.net/info&quot;&gt;Peda.net-yleislisenssi&lt;/a&gt;&lt;/div&gt;&#10;</rights>

<entry>
<title>Peda.net-palvelun järjestelmäarkkitehtuurin kuvaus</title>
<id>https://peda.net/id/bc514dfa51d</id>
<updated>2023-05-27T19:45:00+03:00</updated>
<link href="https://peda.net/info/palvelunkuvaus/tekninen-kuvaus/arkkitehtuuri/pjk#top" />
<content type="html">&lt;h1&gt;Yleistä Peda.net-palvelusta&lt;/h1&gt;&#10;&lt;p&gt;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).&lt;/p&gt;&#10;&lt;h1&gt;Tärkeimmät Peda.net palvelun tuottamiseen käytetyt ohjelmistokomponentit&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://ubuntu.com/download&quot; rel=&quot;nofollow ugc noopener&quot;&gt;Ubuntu Linux LTS&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://github.com/haproxy/haproxy&quot; rel=&quot;nofollow ugc noopener&quot;&gt;HAProxy&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://github.com/apache/httpd&quot; rel=&quot;nofollow ugc noopener&quot;&gt;Apache HTTP Server&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://github.com/php/php-src&quot; rel=&quot;nofollow ugc noopener&quot;&gt;PHP&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://github.com/postgres/postgres&quot; rel=&quot;nofollow ugc noopener&quot;&gt;PostgreSQL&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://github.com/elastic/elasticsearch&quot; rel=&quot;nofollow ugc noopener&quot;&gt;Elasticsearch&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://github.com/tinymce/tinymce&quot; rel=&quot;nofollow ugc noopener&quot;&gt;TinyMCE&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h1&gt;Verkkototeutus&lt;/h1&gt;&#10;&lt;p&gt;Peda.net palvelimien verkkototeutus koostuu neljästä erillisestä loogisesta verkko-osiosta.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Julkinen verkko Internetistä kuormantasaajille.&lt;/li&gt;&#10;&lt;li&gt;Jyväskylän yliopiston sisäverkko palvelimien ylläpitoon.&lt;/li&gt;&#10;&lt;li&gt;Yksityinen verkko kuormantasaajien ja sovelluspalvelimien väliseen liikennöintiin.&lt;/li&gt;&#10;&lt;li&gt;Yksityinen verkko palvelimien väliseen liikennöintiin.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h1&gt;Kuormantasaimet&lt;/h1&gt;&#10;&lt;p&gt;Kaikki Peda.net palvelun käyttäjäliikenne kulkee kahden HAProxy-kuormantasaimen kautta, joille liikenne jakautuu round robin DNS:n avulla. Lisäksi selaimet vaihtavat automaattisesti toiselle kuormantasaimelle huoltokatkon, verkkohäiriön tai laitevian yhteydessä. Kuormantasaimet huolehtivat liikenteen TLS-salauksesta ja jakavat liikenteen sovelluspalvelimille yksityiseen sisäverkkoon. Peda.net-palvelu on listattuna selaimien HSTS preload -listalle, joten modernilla selaimilla hyökkääjä ei voi pakottaa tietoliikenteen salausta pois päältä vaikka pääsisi käyttäjän lähiverkkoon. Salauksen teknistä toteutusta voi tarkastella &lt;a href=&quot;https://www.ssllabs.com/ssltest/analyze.html?d=peda.net&amp;amp;latest&quot; rel=&quot;nofollow ugc noopener&quot;&gt;Qualys SSL Labs -palvelintestin tuloksista&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h1&gt;Sovelluspalvelimet&lt;/h1&gt;&#10;&lt;p&gt;Sovelluspalvelimet ajavat kaiken Peda.net palvelun toimintaan liittyvän PHP-koodin.&lt;/p&gt;&#10;&lt;h1&gt;Tietokantapalvelimet&lt;/h1&gt;&#10;&lt;p&gt;Tietokantapalvelimet ajavat Peda.net palvelun tarvitsemat PostgreSQL-tietokannat sekä Elasticsearch-hakupalvelut.&lt;/p&gt;&#10;&lt;h1&gt;Tiedostopalvelimet&lt;/h1&gt;&#10;&lt;p&gt;Tiedostopalvelimet tallentavat ja jakelevat NFS-tiedostojärjestelmällä kaikki Peda.net palveluun tallennetut käyttäjien tiedostot.&lt;/p&gt;&#10;&lt;h1&gt;Varmuuskopiopalvelin&lt;/h1&gt;&#10;&lt;p&gt;Varmuuskopiopalvelin huolehtii koko Peda.net järjestelmän tietojen varmuuskopioinnista ja varmuuskopioiden säilytyksestä. Varmuuskopiopalvelin on yliopiston tiloissa eri rakennuksessa kuin varsinainen palvelinjärjestelmä. Varmuuskopiopalvelimen sisällöstä tehdään vielä erillinen varmuuskopio &lt;a href=&quot;https://www.csc.fi/funet-backup&quot; rel=&quot;nofollow ugc noopener&quot;&gt;CSC:n varmuuskopiointipalveluun&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h1&gt;Extras apupalvelin&lt;/h1&gt;&#10;&lt;p&gt;Virtuaalipalvelimena Jyväskylän yliopiston omassa palvelinsalissa 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. Lisäksi tämä palvelin toimii myös Peda.netin lähdekoodin versiohallinnan pääpalvelimena. &lt;/p&gt;&#10;&lt;h1&gt;Testipalvelin&lt;/h1&gt;&#10;&lt;p&gt;Testipalvelimella ajettavissa virtuaalipalvelimissa suoritetaan Peda.net järjestelmän tuotekehitys ja testaus.&lt;/p&gt;&#10;&lt;h1&gt;Tuotekehityksestä&lt;/h1&gt;&#10;&lt;p&gt;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.&lt;/p&gt;&#10;&lt;p&gt;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ä.&lt;/p&gt;&#10;&lt;h2&gt;Historia&lt;/h2&gt;&#10;&lt;table&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Versio&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Tila / Muutokset&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Päiväys&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Tekijä&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;0.9&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Ensimmäinen versio&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;17.4.2018&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Juha Lahti&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;1.0&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Hyväksyntä&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;17.4.2018&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Tero Pelkonen&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;1.1&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Päivitetty tieto vaihtamisesta HAProxy-kuormanjakopalvelimiin, lisätty tietoa HSTS preload -tuesta, päivitetty tiedostopalvelimien protokolla NFS:ksi ja päivitetty varmuuskopioinnin toteutus&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;27.10.2020&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Mikko Rantalainen&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;1.2&#10;&lt;p&gt; &lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Päivitetty testipalvelimen kuvaus&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;8.6.2020&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Juha Lahti&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;1.3&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Lisätty TinyMCE käytettyjen komponenttien listaan ja linkit projektien sivuille&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;26.1.2022&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Mikko Rantalainen&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;1.4&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Korjattu versionhallinnan pääpalvelimen tieto, joka oli kirjattu väärän palvelimen kohdalle.&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;7.4.2022&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;td&gt;&#10;&lt;p&gt;Mikko Rantalainen&lt;/p&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;</content>
<published>2018-05-07T12:55:12+03:00</published>
</entry>


</feed>