Mikseri on musiikkiyhteisö,
jossa voit kuunnella, ladata ja arvostella suomalaista musiikkia,
lisätä rajattomasti biisejä, luoda oman artistisivun, kerätä arvosteluja ja faneja

Ladataan

Devausblogi: Ohutta yläpilveä

Kuten monelle on varmasti käynyt selväksi, Mikseri.net on varsin pitkään pyörinyt palvelu. 2000-luvun alussa Mikserin kaltaisten palveluiden pystyttäminen noudatti tiettyä kaavaa: pienimmät palvelut laitettiin web-hotelliin pyörimään ja isommille vuokrattiin ikioma palvelin tai useampi. Käytännössä siis palvelinkäyttöön suunniteltu tietokone kärrättiin palveluntarjoajan konesaliin internet-yhteyden päähän ja siitä eteenpäin homma oli asiakkaan (eli Mikseri.netin kehittäjien) vastuulla.

Omassa palvelimessa on puolensa: täysi valta ja yksinoikeus koko laitteeseen tarkoittaa, että rajoituksia siellä ajettaville ohjelmistoille ei juuri ole. Varjopuolena kyseisten ohjelmistojen ja käyttöjärjestelmän säätäminen ja ajan tasalla pitäminen vaativat osaamista ja aikaa, joka on suoraan pois palvelun uusien ja parempien ominaisuuksien kehityksestä. Samoin lisäkapasiteetin hankinta oli kallista ja hankalaa, koska se tarkoitti uusien palvelinten ja/tai osien asentelua konesalin syövereihin. Mikäli levytilaa mieli saada lisää, piti kilauttaa palveluntarjoajalle, joka kävi ruuvailemassa uuden levyn kiinni betonibunkkerissa hyrisevään peltilaatikkoon.

Verkkopalveluiden kehityksessä alkoikin melkoinen vallankumous, kun pilvipalvelut kuten Amazon Web Services (AWS) ja Microsoftin Azure alkoivat vakiinnuttaa asemaansa. Enää palvelun pystytys ei vaatinut oikeiden fyysisten laatikoiden ruuvailua, vaan palvelin oli mahdollista hankkia virtuaalisena ja juuri sen kokoisena kuin tarve ja lompakon paksuus sanelivat. Jos tehot loppuivat kesken, lisää sai hetkessä nappia painamalla.

Pilvipalveluidenkin saavuttua käyttöjärjestelmän ja softien asennus työllistivät palvelun kehittäjiä edelleen, kunnes mukaan kuvioihin astuivat Platform as a Service (PaaS) -tyyppiset palvelut. Enää ei tarvinnut ostaa virtuaalipalvelinta ja asentaa sinne tiedostojen jakamiseen tarvittavaa softaa, vaan tiedostopalvelu oli mahdollista ostaa välittämättä rahtuakaan millaisen laitteiston päällä se pyörii. Riitti, että tiedostot laittaa sisään ja kertoo miten ja keille niitä saa tarjoilla. Ei tarvetta murehtia levytilan tai laskentatehon riittävyydestä.

Tästä pääsemme sulavasti takaisin Mikseriin. Se on rakennettu konesalien aikakaudella, joka näkyy palvelun teknisessä rakenteessa vahvasti. Tuohon aikaan järkevintä oli ostaa tarpeeksi tehokas kone, jolle voitiin asentaa kaikki tarvittavat ohjelmistot kuten www-palvelin Apache, sovellusalusta PHP, tietokantapalvelin MySQL, tiedostopalvelin MogileFS, välimuistipalvelin Memcached sekä iso liuta muita. Osa näistä oli aikanaan hajautettu useammallekin palvelimelle, kunnes tarjolla olevat tehot kasvoivat tarpeeksi suuriksi että yhdelläkin pärjättiin jälleen.

Kun Mikseri.net siirrettiin pois konesaleista, ensimmäinen pysäkki oli kotimainen UpCloud. Mikserille vuokrattiin riittävän kokoinen virtuaalipalvelin, johon asennettiin Ubuntu Linux sekä kaikki edellisessä kappaleessa luetellut lisäsoftat. Siellä Mikseri kävi ja kukkui useamman vuoden, kunnes kesäkuussa 2022 siirtyi Amazonin pilveen. Hieman halvempi hinta oli pääasiallinen motivaattori, mutta yhtälöön vaikutti myös mahdollisuus hyödyntää Amazonin kehittyneitä PaaS -palveluita softasekamelskan purkamiseksi.

Ensimmäinen siirto Amazoniin oli mallia "lift-and-shift": koko palvelin kopioitiin sellaisenaan EC2-virtuaalipalvelimeksi. Biisien säilömistä varten tarvittiin 2 teratavua tallennustilaa, jota varten vuokrattiin kaksi 1000 gigan kokoista virtuaalilevyä. Onneksi ne oli mahdollista hankkia kustannustehokkaasti vanhanaikaisiin kovalevyihin pohjautuvalla teknologialla, muuten kustannussäästöt olisi syöty saman tien. Kokonaisuutena siirto sujui yllättävänkin helposti, ja muutamaa pilven tuomaa yllätystä päästiin ihailemaan - kokeilepa muuttaa perinteisessä palvelimessa SSD-levy sisältöineen HDD-levyksi lennosta ilman käyttökatkoa.

Ensimmäinen pilven mahdollistama teknologiavaihdos oli käyttäjien ja palvelimen väliin lisätty CloudFront. Se tallentaa sisältöä omaan välimuistiinsa ja tarjoilee sitä käyttäjille huomattavasti nopeammin kuin Mikserin oma palvelin pystyisi. Lisäksi se hoitaa HTTPS-salauksen täysin automatisoidusti, ja mahdollistaa monia aiemmin mahdottomia asioita: kokeile esimerkiksi artistin pikaosoitetta osoitteessa tyyliin https://blueborn.mikseri.net.

Alkuvuodesta 2024 on konepellin alla tapahtunut myös Memcached-välimuistin siirtyminen Amazonin omaan ElastiCache-palveluun, joka tarjoaa välimuistia enemmän ja tehokkaammin kuin selaimen kallisarvoisesta muistista aiemmin lohkaistu 64 megatavua. Tämä näkyy palvelun yleisenä nopeutumisena kun ihan kaikkea tietoa ei tarvitse hakea joka sivunlatauksella tietokannasta asti.

Toinen hiljattain tehty muutos oli kuvien ja biisien siirtäminen aiemmin mainituilta virtuaalimagneettikiekoilta Elastic File System (EFS) -palveluun. Sen ansiosta kuvat ja biisit latautuvat aiempaa nopeammin, mutta tärkeämpänä syynä niiden säilömisen hinta putosi murto-osaan aiemmasta ja toimintavarmuus hyppäsi täysin eri sfääreihin. Mikserin biiseistä osa korruptoitui huolimattomasti tehdyn siirron vuoksi toistakymmentä vuotta sitten, ja on ensiarvoisen tärkeää ettei niin käy toista kertaa.

Tiedostojen ja välimuistin siirryttyä pois Mikserin palvelimelta on siellä jäljellä enää tietokanta estämässä täyttä serverless-malliin siirtymistä. Tätä kirjoittaessa tietokanta onkin juuri kopioitumassa RDS-palveluun, jossa myös sen luotettavuus, tehokkuus ja tietoturva pääsevät hyötymään pilven tuomista eduista.

Myös muita arkkitehtuurillisia parannuksia on luvassa, kuten sisäänkirjautumisen uusiminen Cognito-palvelua hyödyntäväksi. Sen avulla palveluun kirjautuminen saadaan paljon aiempaa toimivammaksi ja ennen kaikkea tietoturvallisemmaksi.

Jätä ihmeessä kommenttia mikäli jaksoit lukea tänne asti! :)

Kirjoitettu Monday 19.02.2024

Kommentit

Vain sisäänkirjautuneet voivat lukea ja lähettää kommentteja.

Liity käyttäjäksi   tai kirjaudu sisään


Kirjaudu Facebook-tunnuksella: