Artikkelit

Avoin lähdekoodi ja lukemattomien moduulien hyödyt

Ari Ruuska
Ari Ruuska

Miksi avoin lähdekoodi on niin houkutteleva vaihtoehto suljetuille järjestelmille, ja mitä ne moduulit oikein mahdollistavat? Käymme tässä aihetta läpi turvallisuuden, laadun ja liiketoimintahyötyjen kautta.

Avoin lähdekoodi ja avoimen lähdekoodin järjestelmät ovat olleet pelissä mukana jo kauan. Jokainen on todennäköisesti käyttänyt avoimen lähdekoodin järjestelmiä, joko tietoisesti tai tietämättään. Esimerkiksi Firefox-selain on useille meistä tuttu, avoimen lähdekoodin teknologioilla kehitetty sovellus.

Etenkin meille suomalaisille eräs merkittävä avoimen lähdekoodin järjestelmä on Linux-käyttöjärjestelmä, jonka suomalainen Linus Torvalds kehitti kohta jo 30 vuotta sitten. Linuxin julkistus oli iso ja merkittävä teknologinen harppaus eteenpäin ja osaltaan mullisti ICT-alan toimintaa. Viimeisimpien vuosikymmenten aikana avoimen lähdekoodin järjestelmien suosio on jatkuvasti vain kasvanut, ja avoimen lähdekoodin hyötyjä on alettu tunnistamaan yhä laajemmin.

On myös mainittava, että kun puhutaan avoimen lähdekoodin järjestelmistä, puhutaan suuresta ja värikkäästä joukosta, jossa kaikki eivät kuitenkaan täytä laadukkaan järjestelmän määritelmää. Tässä artikkelissa keskitymme nimenomaisesti siihen joukkoon järjestelmiä, jotka täyttävät tuon laatumääritelmän.

Tietoturva ja laatu avoimen lähdekoodin järjestelmissä

Avoimen lähdekoodin järjestelmä –siis järjestelmä, jonka jokainen koodirivi on kenen tahansa tarkasteltavissa– ei ehkä kuulosta tietoturvan näkökulmasta kovinkaan hyvältä idealta. Herää helposti ajatus, että jokainen taitava hakkeri keksii käden käänteessä tavan murtautua järjestelmään, koska järjestelmän salaisuudet ovat paljastettuja. Ehkä yllättäenkin, tilanne on täysin päinvastainen. Linuksen laissa (Linus law) tämä kiteytetään näin: “given enough eyeballs, all bugs are shallow”. Tällä tarkoitetaan sitä, että kun on tarpeeksi silmäpareja tarkastelemassa, testaamassa ja käyttämässä koodia, virheiden määrä vähenee tuotteessa. Toisin sanoen mitä enemmän silmäpareja tarkastelee samaa koodia, sitä tietoturvallisemmaksi se tulee.

Sama pätee laatuun. Mitä useampi kehittäjä on tarkastelemassa, testaamassa ja parantamassa koodia, sitä timanttisemmaksi se hioutuu – luonnollisestikin. Pelkkä kehittäjien määrä ei tosin välttämättä takaa hyvälaatuista tuotetta. Avoimen lähdekoodin osalta kehittäjäyhteisön toimintatavat ovat myös keskeisessä roolissa, kun tarkastellaan järjestelmän laatua. Suurimpien ja suosituimpien järjestelmien yhteisöt ovat tottuneita työskentelemään tavoilla, joilla järjestelmien laatu taataan.

Drupal-yhteisö on yksi suurimmista avoimen lähdekoodin teknologioiden yhteistöistä, ja Drupal-yhteisön toimintatavat ovat kehittyneet vuosien varrella jatkuvasti paremmiksi. Kun toimintatavat osaltaan takaavat tietoturvan ja laadun, päästään tilanteeseen, jossa kehittäjäyhteisö voi keskittyä tuottamaan tuhansia laadukkaita lisämoduuleita kaikkien käyttöön. Ilmainen järjestelmä, joka sisältää lähes kaikkiin liiketoiminnan tarpeisiin valmiit lisäosat, mahdollistaa järjestelmän hyötyjen suuntaamisen yksilöllisiin spesifisiin tarpeisiin, jotta tavoitetaan maksimaalinen liiketoimintahyöty. Tämä on mahdollista siksi, että avoimen lähdekoodin järjestelmä sallii kustomoinnit ja lisäykset ilman rajoituksia tai lisäkustannuksia. Sen sijaan, että tilataan joku spesifinen ominaisuus suljetun järjestelmän toimittajalta, voidaan kehityksen panokset laittaa yksilöllisen tarpeen täyttämiseen itse ja näin varmistua ominaisuuden tarkoituksenmukaisuudesta.

Drupalin ydin on toiminnallisuuksiltaan laaja. Lisäksi Drupaliin on olemassa tuhansia lisämoduuleita, ja kuten jo todettua, niitä on tarjolla lähes kaikkiin liiketoiminnan tarpeisiin. Drupaliin löytyy myös erilaisia integraatiota mahdollistavia lisämoduuleita. Näitä ovat muun muassa ulkoiset kirjautumispalvelut (muun muassa Active directory ja Azure AD), sosiaalisen median palvelut (Facebook, Twitter, Instagram, LinkedIn jne.) ja maksuyhdyskäytävät (kuten Paytrail, Paypal, Klarna jne.). Usein lisämoduuli vaatii käyttöönotolta vain sen, että se määritellään kyseiseen tapaukseen sopivaksi. Ja juuri kun tämä alkaa kuulostamaan TV-Shopilta; ei tässä vielä kaikki. Drupalin sovellusarkkitehtuuri mahdollistaa tavat, joilla Drupalin ytimen ja lisämoduuleiden toiminnallisuuksia pystytään räätälöimään tietoturvallisesti ja sovelluksen toimintavarmuutta vaarantamatta.

Avoimen lähdekoodin järjestelmän ja toimittajan valinta

Laadukkaan ja elinkaareltaan vakavasti otettavan avoimen lähdekoodin järjestelmän määrittämisessä on selkeästi tunnistettavia tekijöitä. Näistä tekijöistä kehittäjäyhteisön koko on merkittävässä asemassa. Puhutaan usein niin sanotusta kriittisestä massasta, joka Drupalin kohdalla on ylittynyt jo kauan aikaa sitten. Nykyään kyseessä on yli miljoonan kehittäjän yhteisö, joista reilusti yli 100 000 osallistuu aktiivisesti kehittämiseen. Drupal on käytössä niin laajasti ja on jo niin merkittävä osa julkaisujärjestelmien maailmassa, että osaavia järjestelmätoimittajia löytyy Suomesta ja maailmalta runsaasti. Tästä on se hyöty, että toimittajalukkoja ei synny, mikäli yhteistyö syystä tai toisesta ei pelittäisikään valitun Drupal-toimittajan kanssa. Tilalle on aivan varmasti tarjolla hyviä vaihtoehtoja uuden toimittajan valintaa varten.

Laajasti käytössä olevien avoimen lähdekoodin järjestelmien osalta myös maine kiirii laajalti. Mikäli esimerkiksi tietoturvaongelmia havaitaan toistuvasti, niistä voidaan myös pian lukea mediasta. Drupal on maineeltaan hyvä ja etenkin juuri tietoturvansa puolesta. Huomionarvoista on kuitenkin se, että mikään järjestelmä ei pysy tietoturvallisena itsestään, vaan ne vaativat jatkuvaa ylläpitoa. Säännölliset järjestelmäpäivitykset ovat tarpeen, jotta suurilta harppauksilta versioiden välillä vältytään. Tällä varmistetaan järjestelmän toimintavarmuus ja kokonaistaloudellisuus järjestelmän ylläpidossa.

Niin paljon hyvää kuin avoin lähdekoodi tuokin mukanaan, se tuo myös haasteita. Näistä yksi Drupalin kohdalla on se, että joustavana ja avoimena järjestelmänä sitä voi kehittää myös tavoilla, jotka eivät tue järjestelmän tietoturvallisuutta, toimintavarmuutta eikä ylläpidettävyyttä. Tästä syystä toimittajan valinta on onnistuneen projektin ja varsinkin pitkäikäisiksi tähtäävien järjestelmien ylläpidon näkökulmasta erittäin tärkeää. Järjestelmän kehittämisessä on alusta asti tarpeen huomioida kestävät ja hyvien kehittämiskäytäntöjen mukaiset tavat. Samoin jatkuva huolenpito päivitysten ajantasaisuudesta on tarpeen alusta asti, jotta järjestelmäpäivitykset voidaan ajaa ilman ongelmia.

Kuuntele Arin ja toisen asiantuntijamme, Janne Koposen webinaari avoimesta lähdekoodista, moduleista ja Drupalin hyödyistä. Tilaa webinaaritallenne täyttämällä alle sähköpostiosoitteesi.