Artikkeli
8. heinäkuuta 2020 · 3 min lukuaikaNitor ja Finnair toteuttivat yhteistyössä Finnairin ensimmäisen avoimen lähdekoodin kirjaston auttamaan datan validoinnissa ja konvertoinnissa. Kirjasto toteutettiin Finnairin operatiivisen lentotietojärjestelmän Polariksen tarpeisiin ja muokattiin myöhemmin yleiseksi avoimen lähdekoodin kirjastoksi. Nitor on Finnairin Polaris-lentotietojärjestelmän toimittaja.
Nitorin tiimi valittiin uudistamaan Finnairin lentotietojärjestelmää, jonka lopputuloksista koko avoimen lähdekoodin kehityksen yhteisö pääsee nyt nauttimaan. Kyseessä on Finnairin ensimmäinen avoimen lähdekoodin kirjasto ja se on suunniteltu datan validointia, normalisointia ja konvertointia varten. Avoin lähdekoodi tarkoittaa, että Finnairin ulkopuolisilla kehittäjillä on pääsy kirjasto-ohjelman lähdekoodiin, mutta ei esimerkiksi asiakasdataan tai mihinkään muuhun Finnairin järjestelmien tietoon. Näin kehittäjät ympäri maailman voivat hyödyntää ohjelmistoa omissa projekteissaan.
Kirjasto rakennettiin aluksi Finnairin Polaris-järjestelmän käyttöön ja laajennettiin myöhemmin yleiseksi avoimen lähdekoodin kirjastoksi. Polaris hyödyntää kymmeniä eri tietolähteitä ja sen toiminnan edellytys on, että kaikki data on validoitua ja saatu tieto on eheää. Esimerkiksi lentotiedoissa aikatiedot pitää konvertoida oikeisiin tietotyyppeihin vertailun, hakujen ja laskennan mahdollistamiseksi.
“On innostavaa olla mukana viemässä Finnairia avoimeen lähdekoodiin. Open source, eli avoin lähdekoodi, mielletään usein pienen toimijoiden maailmaksi, mutta tämä kirjasto on rakennettu vastaamaan kansainvälisen yrityksen tarpeita. Se muokkaa kymmenistä lähteistä tulevan tiedon vastaamaan tarpeitamme,” Nitorin ohjelmistoarkkitehti Samppa Saarela kertoo.
Validointikirjastoja on markkinoilla jo paljon, mutta Finnairin Polariksen vaatimuksiin taipuvaa ratkaisua ei kuitenkaan niiden joukosta löytynyt. Kun kirjasto oli jo rakennettu, siitä kiinnostuttiin talon sisällä ja se otettiin käyttöön muihinkin projekteihin. Finnairin verkkopalveluiden kehityksestä vastaava Jukka Paasonen on tehnyt avoimen lähdekoodin eteen työtä jo pitkään ja tuki kirjaston tekemistä.
Avoimen lähdekoodin kehitykseen päätettiin siirtyä, kun kirjasto oli otettu käyttöön useammassa sisäisessä projektissa ja todettu toimivaksi. Finnairilla oli myös suunniteltu open source -ohjelmaa, jonka avulla talon sisäistä kehitysosaamista voitaisiin paremmin avata. Avoimelle lähdekoodille piti olla tarvetta, korkea laatu ja hyvä dokumentaatio. Laajan sisäisen katselmoinnin jälkeen todettiin, että Polariksen validointikirjasto täytti sopivasti ne ehdot, mitä sellaiselle kirjastolle on asetettu.
Miten tehdä avointa lähdekoodia asiakastyössä
Kun kirjasto päätettiin julkaista, siitä poistettiin projektikohtaisuudet ja lisättiin tueksi dokumentaatiota. Suurten toimijoiden ei tyypillisesti ole nähty julkaisevan ohjelmistojensa lähdekoodia, mutta viime vuosina muutosta avoimuuteen on tapahtunut. Finnair näki tärkeäksi pitää kirjaston laadun korkeana, joten aikaa ja tukea sen kehitykseen löytyi riittävästi.
Kynnys julkaista omaa koodia on usein korkea: mitä jos ulkopuoliset kehittäjät tulevat vain sotkemaan koodia tai, mikä pahinta, entä jos ketään ei kiinnosta.
“Kehittäjälle antaisin vinkiksi, että kehitystyö pitää tehdä asiakkaan tarpeisiin ja sen pitää olla perusteltua. Neuvoisin etenemään nöyrästi, sillä loppupeleissä asiakas omistaa koodin. Olemme yhdessä edistäneet sisältöjä asiakkaan tuoteomistajien kanssa ja tekemämme lisäykset kirjastoon ovat olleet asioita, joita tarvitsemme Polaris-kehityksessä”, kirjaston kehityksestä vastannut Samppa Saarela kertoo.
Mitä varten kirjasto rakennettiin
“Kirjasto soveltuu parhaiten API- ja mikropalveluprojekteihin, joissa datan eheys täytyy varmistaa. Esimerkiksi validointia tarvitsee lähtökohtaisesti kaikissa sovelluksissa. Siksi näen avoimen lähdekoodin kirjaston tekemisen hyödylliseksi. Minulle tekemisen mielekkyys tulee siitä, että saa tehdä huolella laadukkaita ratkaisuja. On kivempaa keskittyä ratkaisemaan bisneskriittisiä ongelmia, kun ei tarvitse aina kirjoittaa samoja asioita uudestaan,” Samppa toteaa.
Jatkossa kirjastoon on tarkoitus lisätä uusia validaattoreita ja laajentaa sitä erilaisilla käyttötapauksilla. Toiveenamme on, että kirjastoa hyödynnetään mahdollisimman laajasti, ja jatkokehitystoiveiden perusteella myös sisältöä voisi parantaa. Open source -kehitystä ei voi menestyksekkäästi johtaa perinteisellä yritysjohtamisella, vaan siihen pitää rakentaa yhteisö vastaamaan siitä. Loppupeleissä avoin lähdekoodi on sen yhteisön käsissä.
Nitorilaisille avoimen lähdekoodin tekeminen on tuttua ja sen edistämiseen voi käyttää myös niin sanottua Nitorin Core-aikaa, joka mahdollistaa kiinnostaviin henkilökohtaisiin projekteihin syventymisen työajan puitteissa. Open source -projekteja onkin tehty useampia vuosien varrella, kuten prosessimoottori nFlow ja pilvi-infrastruktuurin hallintaan kehitetty NDT.
Yksittäisissä asiakastöissä koodi pääsee harvoin tarvittavan yleiselle tasolle, että sitä voisi lähteä tuotteistamaan kirjastoksi. Finnairilla nähtiin kuitenkin sekä sisäinen hyöty että mahdollisuus jakaa osaamistamme kehittäjäyhteisölle. Pieni investointi kirjaston tekemiseen suuressa hankkeessa mahdollisti tehdyn työn yleistämisen ja kirjaston julkaisun, siitä kiitos kuuluu Finnairille.