Integraatiot Evermadella
Verkkosivustoprojekteihin liittyy nykyään lähes poikkeuksetta jonkinlaisia integraatioita eli teknisiä yhteyksiä eri järjestelmien välillä. Tyypillisiä integraatioita ovat esimerkiksi yhteydenottojen vienti ulkopuoliseen CRM-järjestelmään tai tuotetiedon hakeminen tuotehallintajärjestelmästä. Käytännössä siis tietoa siirretään palveluiden välillä automaattisesti, jolloin vähennetään manuaalista työtä.
Yksinkertaisimmillaan integraatiot voivat olla hyvinkin suoraviivaisia. Kokemus on kuitenkin osoittanut, että luotettavat ja pitkäikäiset integraatiot eivät ole aivan niin simppeleitä, kuin ensin voisi ajatella. Kun integraatioita on tehnyt riittävän monta kertaa, alkaa niissä huomata tiettyjä toistuvia teemoja. On lähdejärjestelmä, joka tarjoaa tietoa ja josta tieto pitää myös noutaa – esimerkiksi tuotetietokanta. Jos tietoa on siellä paljon, pitää tieto pilkkoa työjonoon ja käsitellä paloissa. Sen jälkeen tieto tulee muuttaa kohdejärjestelmään eli verkkosivustolle sopivaan muotoon ja tallentaa. Kaikki tämä tapahtuu jossakin palvelinten uumenissa, eli on tärkeää tietää, mikäli tiedonsiirrossa tapahtuu virhe.
Kymmenien ja kymmenien integraatioiden jälkeen päätimme lyödä päämme yhteen ja kehittää oman integraatiolisäosamme, jonka nimeksi tuli kekseliäästi Integration Boilerplate. Lisäosa tarjoaa valmiina pohjat varmatoimisten, monitoroitavien, suorituskykyisten ja hallittavien integraatioiden toteuttamiseen. Pohja hyödyntää WordPressin ydintoimintoja ja käytäntöjä mahdollisimman pitkälle. Tämä parantaa yhteensopivuutta muiden lisäosien kanssa. Tämän pohjan päälle on ketterää lähteä räätälöimään projektikohtaisia toteutuksia, eikä perusasioiden tekemiseen mene turhaa aikaa.
Esimerkkinäkymä integraatiosta WordPress-hallinnassa.
Mitä integraatiopohjamme tarjoaa?
“En ole aiemmin tehnyt integraatioita, ja käyttämällä valmispohjaa työni helpottui huomattavasti. Kaikki toimi käytännössä melkein sellaisenaan vain muutamia asetuksia muuttamalla. Minun piti keskittyä vain tietomallien yhdistämiseen (tämä on yleensä se räätälöitävä osuus). Erityisesti pidin siitä, että pohja huolehtii virheiden havaitsemisesta eri vaiheissa integraatioita. Tämä helpottaa vianetsintää.”
– Laura Vicuña, kehittäjä
Integraatiopohjamme tärkeimpiä toiminnallisuuksia ovat:
- Pääkäyttäjän näkymä: Olemme usein törmänneet tilanteisiin, joissa sivuston pääkäyttäjä huomaa integraatiossa häiriöitä. Sivuston ylläpitäjillä on kuitenkin harvoin näkyvyyttä konepellin alla toimivaan integraatioon. Sen vuoksi pohjastamme löytyy näkymä ylläpitäjille, joka kertoo integraation tilasta. Se näyttää mitä integraatioita sivulla ylipäätään on. Näkymä kertoo myös onko integraatio aktiivinen, milloin se on viimeksi ajettu, onko ajon aikana ilmennyt virheitä ja vaikkapa mitkä tuotteet ovat päivittyneet viimeisimpänä. Tämä tekee integraatioiden hallinnasta läpinäkyvämpää.
- Manuaalinen integraation suoritus: Integraatiolisäosa tarjoaa mahdollisuuden tiedonsiirron käynnistämisen manuaalisesti. Tyypillisesti integraatiot ajetaan sovituin aikavälein, esimerkiksi kerran päivässä. Joskus tietojen siirto halutaan kuitenkin tehdä heti. Tällöin on tärkeää, että integraation käynnistys on mahdollista myös manuaalisesti.
- Tiedonsiirron pilkkominen: Suurten tietomäärien käsittely voi olla haastavaa ja sen osiin pilkkominen työlästä. Ratkaisumme sisältää valmiit toiminnot tiedonsiirron pilkkomiseksi osiin, mikä vähentää sivuston kuormitusta ja parantaa sen suorituskykyä.
- Muuttuneiden tietojen tunnistus: Tehokkuuden parantamiseksi integraatiolisäosamme tunnistaa tietoa siirtäessä vain muuttuneet tiedot, ja päivittää ainoastaan nämä. Tämä voi parantaa suorituskykyä reilusti.
- Tietomallien yhdistäminen: Eri järjestelmien tietomallien yhdistäminen on yksi integraatioiden yleisimmistä haasteista. Tietoa pitää murskata formaatista toiseen. Integraatiopohjassa on tämä asia on ratkaistu niin pitkälle kuin mahdollista, ja kehittäjän vastuulle jää ainoastaan itse tietojen yhdistämisen toteutus.
- Tehtävien ajastus: Tiedonsiirron ajastaminen on olennainen osa integraatioiden toimintaa. Lisäosamme tarjoaa valmiit ratkaisut erityyppisille ajastuksille ja ajastusten räätälöinnille.
- Monitorointi: Jokainen integraatio menee ennemmin tai myöhemmin rikki. Ei ole tavatonta, että integraatio lakkaa kaikessa hiljaisuudessa toimimasta ja se huomataan vasta useiden päivien tai jopa viikkojen kuluttua. Tämän takia monitoroimme integraatioiden toimintaa ja saamme vikatilanteissa hälytyksen. Näin voimme reagoida ongelmiin mahdollisimman aikaisessa vaiheessa. Hälytyksistä voidaan ohjata myös kopio vaikka asiakkaan sähköpostiin. Samoin tieto vikatilanteen korjaantumisesta voidaan välittää asiakkaalle. Tämä lisää läpinäkyvyyttä ja kaikki osapuolet voivat reaaliajassa seurata tilannetta.
“Automatisoidut hälytykset ovat ykkösjuttu. Ihan hiljattain meillä oli tilanne, että integraatio lakkasi toimimasta taustalla ja pääsimme sen jäljille hälytyksen kautta. Kyseessä oli tilanne, joka olisi hyvin helposti jäänyt huomaamatta ilman hälytystä.”
– Timo Sundvik, kehittäjä
Integraatiopohja nopeuttaa kehitystä ja ongelmien tunnistamista
Integraatiopohjan hyödyt projekteissa ovat selkeät:
- Se tarjoaa valmiina sellaisia ominaisuuksia, joita ei välttämättä aina osaa alkuun kaivata, mutta jotka ajan kuluessa osoittautuvat arvokkaiksi. Nämä ominaisuudet kannattaa huomioida myös kilpailutusvaiheessa.
- Pohjan käyttö nopeuttaa kehitystyötä projektivaiheessa. Se selkeyttää myös jatkokehitystä, koska koko tiimimme toteuttaa integraatiot samalla tavalla.
Valvonta- ja hallintatoiminnot ovat ylläpitäjille tärkeitä ja helpottavat virhetilanteiden ratkaisua.
Seuraavan kerran kun pohdit integraation toteutusta, mieti, miten hyvin tarjottu toteutus kattaa tarpeesi, mahdolliset erityistilanteet, valvonnan ja sivuston elinkaaren. Jos tarvitset apua WordPress-integraatioiden hallintaan, me olemme valmiita auttamaan!