Nitor uudisti Finnairin operatiivisen lentotieto­järjestelmän

31.8.2020 klo 11.48

Polaris on Finnairin uusi operatiivinen lentotietojärjestelmä, joka hyödyntää ja jakaa lentotietoihin liittyvää dataa monipuolisten rajapintojen kautta. Polariksen myötä järjestelmän tilan läpinäkyvyys ja ylläpidettävyys paranivat huomattavasti samalla kun käyttökustannukset laskivat. Nitor toimi Finnairin strategisena kumppanina uuden järjestelmän suunnittelussa, toteutuksessa, käyttöönotossa ja hallinnassa.

Finnair_A350_Plane_Flying.jpg

Polaris on Finnairin uusi operatiivinen lentotietojärjestelmä, joka hyödyntää ja jakaa lentotietoihin liittyvää dataa organisaation sisällä sekä ulkoisten toimijoiden kanssa. Polaris korvaa vaiheittain aiemman vuosia käytössä olleen järjestelmän. Uudella serverless-ratkaisulla saavutetaan merkittäviä kustannussäästöjä ja mahdollistetaan skaalautuvuus sekä joustava jatkokehitys. Uusi relevanteilla teknologioilla toteutettu ratkaisu mahdollistaa järjestelmän ylläpidon Finnairin oman tiimin toimesta. Myös läpinäkyvyys järjestelmän tilaan on selvästi aiempaa parempi. Nitor toimi Finnairin strategisena kumppanina uuden järjestelmän suunnittelussa, toteutuksessa ja käyttöönotossa.

“Polaris on erittäin kriittinen järjestelmä Finnairille. Olen ylpeä, että saimme näin laajan järjestelmän onnistuneesti asiakkaamme käyttöön verrattain lyhyessä ajassa. Polaris parantaa merkittävästi lentotietojen läpinäkyvyyttä eri puolilla organisaatiota. Kehitystiimimme on myös vastannut tuotantoonvienneistä DevOps-periaatteiden mukaisesti. Jatkuva kehitys ja testiautomaatio ovat mahdollistaneet kehityksemme tehokkuuden ja laadun”, Polariksen arkkitehti Toni Tapper kertoo.

Miten operatiivinen lentotietojärjestelmä Polaris toimii?

Polaris toimii eri lentotietoon liittyvien järjestelmien keskipisteenä. Se kerää informaatiota useista eri järjestelmistä ja välittää sitä eteenpäin yhdenmukaisessa muodossa. Lentoliikenteessä näitä järjestelmiä on lukuisia. Esimerkiksi lentojen aikataulut tai niiden operointiin liittyvät arviot ja toteumat ovat tietoa, jota hyödynnetään laajasti eri palveluissa. Polaris kerää yhdenmukaiseen näkymään tiedon esimerkiksi siitä, milloin lentokone laskeutui kiitoradalle ja julkaisee sen eteenpäin rajapintojen kautta.

Polaris on laajassa käytössä ja sitä hyödyntävät kaikki lentotietoja tarvitsevat toiminnot Finnairilla. Sisäisten järjestelmien lisäksi Polarista hyödyntävät Finnairin kumppaniosapuolet, kuten lentokenttäoperaattorit. Polariksen välittämät tiedot ovat käytössä Finnairin monissa omissa sisäisissä toiminnoissa, kuten operaatio-, asiakaspalvelu-, crew-, catering- ja cargo-järjestelmissä. Polaris tuottaa myös asiakasrajapintaan tietoa muun muassa Finnair.com-verkkosivuille, poikkeustilanneviestintään, sekä CRM-järjestelmien käyttöön.

Proof of concept -ratkaisulla saatiin tuloksia nopeasti

Projekti käynnistettiin teknologisella Proof of Concept -vaiheella, jossa testattiin ensimmäisten tietovirtojen toteutus. Konsepti validoitiin ja ratkaisua muokattiin havaintojen perusteella.

Uuden järjestelmän käyttöönotto on haaste kaikissa laajoissa migraatioprojekteissa. Polariksen yhteydessä päätettiin rakentaa yhdenmukainen rajapinta kaikille lentotietoja käyttäville järjestelmille. Yhteisen domain-mallin muodostaminen koko organisaatiolle vähentäisi järjestelmän ylläpitokuormaa jatkossa. Muutoksen läpiviemiseksi kaikkien kytkettävien järjestelmien piti mukautua Polariksen rajapintaan. Käyttöönottojen koordinointi oli merkittävä osa projektia.

“Projektia on tehty koko ajan iteratiivisesti ja oppien. Teimme yhdessä päätöksen, että vanha järjestelmä ja Polaris toimivat aluksi rinnakkain. Sitä mukaa, kun tietoja hyödyntäviä järjestelmiä siirrettiin yksi kerrallaan Polarikseen, opimme lisää kytkeytyvien järjestelmien tarpeista ja käytetystä teknologiasta”, Toni Tapper jatkaa.

Uusi järjestelmä toteutettiin kestävillä ja innovatiivisilla ratkaisuilla

Polariksen myötä Finnair otti käyttöön uusia ajanmukaisia teknologioita. Uudessa järjestelmässä tilan läpinäkyvyys ja ylläpidettävyys paranivat huomattavasti, ja Finnair saattoi ottaa jatkokehityksen sekä ylläpidon vastuulleen. Polaris on rakennettu nykypäivän ajattelutavalla Amazon Web Services -pilveen hyödyntäen Serverless ja Managed Services -palveluita. Infrastruktuurin ylläpidosta vastaa AWS. Ratkaisun ansiosta myös kulut laskivat, sillä ne muodostuvat käytön mukaan.

Proof of Concept -vaiheen toteutuksessa tehtiin alustavia teknologiavalintoja ja varmistettiin valitun arkkitehtuurin sopivuus. Valintoihin palattiin projektin aikana muun muassa ottamalla käyttöön oikea RDS-tietokanta (Aurora RDS, PostgreSQL, jsonb, GIN indexing) DynamoDB-dokumenttikannan sijaan.

Järjestelmä päätettiin toteuttaa siten, että minkään suoritusvaiheen yksittäinen ongelma ei vaikuta kokonaisuuden toimimiseen. Tämä johti Lambdalla toteutettujen loogisten suoritusvaiheiden erottamiseen toisistaan SQS-jonojen kautta, joita luetaan kunkin sanoman käsittelemiseen erikoistuneilla Lambda-funktioilla. Järjestelmän tila toteutettiin versioivaan tietokantaan, jonka avulla jokaisen yksittäisen muutoksen vaikutukset voidaan nähdä myöhemmin.

Polariksen eventtipohjaista rajapintaa ohjaamaan toteutettiin Apachen Kafka-järjestelmän periaatteita vastaava publish/subscribe-malli, jossa kunkin vastaanottajan tila ylläpidetään erikseen tietokannassa. Toteutus tehtiin Lambda-funktioita hyödyntäen, joten kokonaisuus sai lempinimen Lafka. Järjestelmä kykenee erottelemaan kaikki muutokset hienojakoisesti ja välittämään vastaanottajille vain niitä kiinnostavia päivityksiä.

Nitor_Polaris_Success_Story_Blog_Architecture_Diagram.jpeg


Polariksen arkkitehtuuri. Loogiset suoritusvaiheet ovat eroteltu jonoratkaisun kautta toisistaan vikasietoisuuden takaamiseksi.

Polarikseen toteutettiin myös kattavat järjestelmän tilan monitoroinnin mahdollistavat dashboardit sekä relevantit hälytykset mm. tietovirtojen anomalioiden tunnistamiseen sekä teknisten ja sisällöllisten häiriötilanteiden esiin nostamiseen.

Projektissa käytettyjä teknologioita ovat olleet mm:

  • Alustat: AWS, Serverless Framework, Lambda, NodeJS, CloudFormation, CloudWatch, SQS, SNS, S3, API GW, IBM MQ
  • Ohjelmointikielet: TypeScript, (Java)
  • Tietokannat: AWS Aurora RDS (PostgreSQL)
  • Testi-/buildautomaatio: CodeBuild, CodePipeline, Github Webhooks, NDT, Robot Framework.

Projektin yhtenä tuotteena Finnair julkaisi Nitorin kehittämän tietojen validointiin liittyvän kirjaston avoimena lähdekoodina.

Pitkäaikainen kumppani valittiin toteuttamaan kriittistä järjestelmää

Nitor valittiin Finnairin kumppaniksi Polaris-projektissa pitkän yhteistyön myötä rakentuneen luottamuksen ansiosta. Digitaalisen insinööritoimiston pilvipalveluosaaminen ja pitkäaikainen arkkitehtuurikonsultointisuhde mahdollistivat laajan ja kriittisen järjestelmän korvaamisprojektin vetämisen.

Polariksen toteutti yhdessä Finnairin kanssa Nitorin ketterä kehitystiimi, jolla on ollut tuotanto- ja ylläpitovastuu ratkaisusta. Lisäksi Nitor toimitti järjestelmälle kattavan 24/7 tuki- ja ylläpitopalvelun, hälytysautomaation ja puhelinpäivystyksen. Finnairilta projektitiimissä olivat mukana sujuvan tekemisen varmistamiseksi projektipäällikkö, tuoteomistaja ja IT-arkkitehti. Lisäksi projektin sidosryhmään kuului lukuisia eri lähde- ja kohdejärjestelmien asiantuntijoita.

Lue myös: Finnair avaa osaamistaan avoimen lähdekoodin kirjastolla

Otsikkokuva: Finnair, Woodpecker