Suurin osa ihmisistä tuntee integraatiot ja niiden merkityksen osana ICT-kokonaisuutta. Isoille yrityksille integraatioalustatkin ovat arkipäivää ja ajatus keskitetystä integraatioalustasta tai integraatiokerroksesta hyötyineen on helppo hahmottaa ja edut ovat kiistattomat.

Integraatioalustoissa on kuitenkin eroja ja taustalla olevalla teknologioilla on suuri merkitys ratkaisun kustannustehokkuuteen, skaalautuvuuteen ja tulevaisuuden näkymiin. Integraatioalusta alkaa terminäkin jo vanhenemaan, eikä integraatioita kannata sitoa omaan alustaansa, vaan nykyaikainen kehitysalusta mahdollistaa useiden toimintojen ja palvelujen keskitetyn ajon, jossa integraatiot ovat yksi merkittävä osa muiden joukossa. Seuraavassa kerromme mikä integraatioteknologiassa on oleellista, jotta pääsemme moderneihin ja älykkäisiin integraatioihin. 

Devikoneen tiekartta moderneihin integraatioihin

Hajautettu palvelualusta

Hyvin tärkeässä roolissa on kehitysympäristö ja -alusta, jonka päälle integraatiot toteutetaan. Alustaa voisi verrata merkityksellisyydessään talon perustuksiin. Jos perustus on tehty huonosti, on lopulta aivan sama kuinka hieno ja yksityiskohdiltaan moniulotteinen kartano perustusten päälle on rakennettu. Jos perustus ei kestä talon kuormaa ja pääsee pettämään jostain kohtaa, ollaan suurissa ongelmissa, joita on vaikea korjata. Käytännössä helposti koko talo on purettava ja rakennettava perustus uudestaan ja sen päälle rakennettava taas koko talo alusta alkaen.

Eli pohja ja perustus on huolehdittava kuntoon ensimmäisenä. Tähän on tällä hetkellä yksi ylivoimainen ratkaisu: Hajautettu palvelualusta. Hajautettu palvelualusta perustuu konttiteknologiaan, mikropalveluihin ja Kubernetes-ohjelmiston avulla toteutettavaan konttien orkestrointiin. Jos jatketaan talovertausta, niin tämä tarkoittaisi ”älykästä” perustusta, joka huolehtii automaattisesti koko ajan perustuksen täydellisestä toimivuudesta. Jos perustus kastuu, se kuivaa itse itsensä, jos taloa laajennetaan horisontaalisesti, niin perustus laajenee automaattisesti, jos kerroksia tulee lisää perustus tukevoituu ja tarvittaessa paalutetaan automaattisesti. Tällaista perustusta ei talonrakennukseen ole vielä olemassa, mutta Kubernetes-pohjainen alusta, esimerkiksi Red Hat OpenShift, tarjoaa ohjelmistokoodille juuri vastaavan kaltaisen perustan. Alusta sisältää tarvittaessa lukemattoman määrän kontteja ja mikropalveluja, joita Kubernetes-orkestrointi ohjaa ja skaalaa rajattomasti tarpeen mukaisesti. Kubernetekselle ei ole vastaavaa kilpailijaa näköpiirissä ja kehitys on vahvalla pohjalla massiivisen Open Source -kehittäjäyhteisön toimesta ja elinkaari on vasta taipaleensa alkupuolella.

Integraatioväline

Kun pohja on kunnossa, voidaan miettiä, millä integraatiovälineellä integraatioita lähdettäisiin toteuttamaan. Vaihtoehtoja on jonkin verrankin, mutta Devikoneen tiekartassa Apache Camel on koodipohja ja kirjasto, jolla näemme lyömättömiä etuja. Camel on avoimen lähdekoodin ohjelmisto, jonka osaajia ja kehittäjiä löytyy paljon ympäri maailman. Camel on monipuolinen ohjelmisto, jossa on tuki kaikille integraatiopatterneille ja äärimmäisen laaja adapterikirjasto. Kehittäjäyhteisö on myös hyvin aktiivinen ja ohjelmisto pysyy kehityksen kelkassa, ehkä jopa hiukan edellä:) Camelista on saatavilla myös Red Hat Fuse, joka tarjoaa merkittäviä etuja ylläpidon ja käytön helppouteen. Red Hat Fuse on Apache Camelista Red Hatin ylläpitämä ja tukema ”valmis”-versio. Red Hatin tuotteistama Fuse poistaa ylläpitotyön integraatiovälineeseen liittyen ja Red Hat tarjoaa myös tuen ja omat asiantuntijansa Fusen käyttäjän tueksi.

Jos jatkamme vielä talonrakennusesimerkin parissa, niin Apache Camel vastaa rautakauppaa, joka toimittaa tekijöille rakennusmateriaalit ja työkalut, joilla talo voidaan rakentaa. Camel on Devikoneen näkemyksen mukaan se rautakauppa, josta kaiken tarvittavan saa kaikkein sopivimmalla valikoimalla ja lyömättömällä hinta-laatusuhteella. Red Hat Fuse on tässä kuviossa kuin huolenpitosopimusta tarjoava rautakauppias, joka huolehtii, että jos jokin kone hajoa tai materiaali loppuu, niin työmaalle saadaan aina helposti apua. Laitteet päivittyvät automaattisesti parempiin säännöllisin väliajoin, lisämateriaalien tilaaminen on helppoa jne. Asiakkaan ei tarvitse itse juosta päivittäin rautakaupassa, vaan materiaalit ja työkalut toimitetaan automaattisesti paikalle.

GitOps

Kun kehitysalusta ja integraatioväline ovat kunnossa, pitää meidän vielä varmistaa asioiden hallittu toimivuus ja kehittäminen. Integraatioita tulee tulevaisuudessa koko ajan lisää, järjestelmät päivittyvät, tarpeet saattavat muuttua paljonkin ja kokonaisuus elää jatkuvassa muutoksessa. Muutos pitää saada hallintaan ja tähän Devikoneen tiekartassa parhaan vastineen antaa GitOps-malli, joka perustuu vahvasti seuraavaan yhtälöön:

GitOps = IaC + Pull Request + CI/CD Pipeline

Suomennettuna IaC eli infrastruktuuri koodina, Pull Request eli jatkuva vertaiskatselmointi ennen julkaisua ja DevOps-käytännöistä CI eli jatkuva koodin integrointi ja CD eli jatkuva ja automatisoitu toimitus.

Tämä viitekehys mahdollistaa hallitut muutokset infrastruktuuriin ja sieltä ajettaviin palveluihin, versionhallinta on täydellistä ja paluu edellisiin versioihin on mahdollista ilman rajoituksia. Automaatiota hyödyntämällä voidaan poistaa manuaaliset konfigurointivaiheet ja saadaan ympäristö, joka voidaan pystyttää ja toimittaa hallitusti ja toistettavasti.

Talonrakennusesimerkissämme GitOps on vielä täyttä utopiaa, mutta datamaailmassa täyttä totta. Talonrakennuksessa malli tarkoittaisi, että voimme tehdä talon yhdestä huoneesta keittiön, asentaa sinne kaikki kalusteet ja testata, että kaikki toimii optimaalisella tavalla. Jos huomaamme, että astianpesukoneen paikka oli kuitenkin parempi viikko sitten kokeilemassamme paikassa tai haluaisimme vaihtaa astianpesukoneen merkiltään ja ominaisuuksiltaan toiseen, tai jopa vaihtaa keittiön eri huoneeseen, voimme aina versionhallinnasta palauttaa tilanteen edellisiin versioihin ja lähteä rakentamaan keittiötä optimaalisesta tilanteesta uudestaan. Olisihan tämä aika hienoa myös talonrakennuksessa!

Näistä kolmesta keskeisestä tukijalasta muodostuu Devikoneen tiekartta moderneihin ja älykkäisiin integraatioihin. Kun integraatioratkaisut rakennetaan tämän tiekartan mukaisesti, kestävät ne kehitystä, kuormitusta, laajenemista ja skaalautuvat rajattomasti, kustannustehokkaasti ja antavat pohjan, joka kestää pitkälle tulevaisuuteen.

Devikone suunnannäyttäjänä

Niin kuin jokainen tietää, niin pelkillä perustuksilla, materiaaleilla ja työkaluilla ei voida taata huippuluokan lopputulosta, vaan pitää olla myös huippuluokan visio arkkitehtuurista ja kokemusta oikeista toteutustavoista eri tarpeisiin ja taitoa myös toteuttaa visiot. Integraatioissa Devikone edustaa suunnittelun ja toteutuksen kirkkainta ammattitaitoa aivan kuin arkkitehti ja vastaava mestari ja asiantunteva tiimi asiantuntijoita rakennuskohteessa. Vasta tämän ammattitaidon avulla voidaan varmistaa, että lopputuloksesta saadaan haluttu ja kokonaistoimivuus on optimaalinen. Ilman tätä ammattitaitoa hienoistakaan työkaluista ja materiaaleista ei saada aikaiseksi toimivaa kokonaisuutta.

Katso alla olevalta videolta vielä tarkemmin miten tämän tiekartan avulla rakennetaan yritykselle hallittua integraatioarkkitehtuuria