Headless-ratkaisu - hyödyt vs. haasteet

Headless - hyödyt ja haasteet

Headless on ollut ohjelmistokehitysalan kuuma puheenaihe jo 2-3 vuotta ja tässä kohtaa voidaankin jo sanoa, että headless on tullut jäädäkseen. Valinta headlessin ja perinteisen, monoliittisen ratkaisun välillä riippuu silti aina liiketoiminnan tarpeista eikä ole itsestään selvä. Tässä blogissa sukellamme headless-ratkaisun hyötyihin ja toisaalta haasteisiin sekä avaamme, miten olemme hyödyntäneet tätä teknologiaa digihankkeissamme. 

Kun mietitään ecommerce- ja CMS-alustan frontend-puolta, headless-lähestymistapa on yksi vaihtoehto. Käytännössä se tarkoittaa, että järjestelmän frontend on erotettu muusta “monoliittijärjestelmästä” omaksi sovelluksekseen, joka viestii backend-järjestelmän kanssa API:en kautta. 

Perinteinen tapa tämän tyyppisissä projekteissa on ollut rakentaa frontend ja backend yhteen järjestelmään. 

Perinteinen lähestymistapaHeadless-lähestymistapa

Erityisesti viimeaikaisten projektiemme perustella voimme sanoa, että headless-teknologia on nyt kehittynyt varteenotettavaksi vaihtoehdoksi suurimpaan osaan ecommerce- ja CMS-alustaprojekteja. Tämä johtuu siitä tosiasiasta, että hankkeiden alkuvaiheen ongelmat web-sovellusten JavaScript-frameworkien kanssa on ratkaistu.

Lauri Järvenpää

Headless-teknologian hyödyt ovat kasvaneet koko ajan ja kasvavat edelleen myös tulevaisuudessa.

Kyseinen teknologia ei luonnollisesti sovellu kaikki tapauksiin ja voi aiheuttaa lisätyötä ohjelmistokehityksessä. Merkittävissä digikehityshankkeissa on kuitenkin usein niin paljon frontend-räätälöintiä, että headless-lähestymistapa on perusteltu. 

Tämän lisäksi me Lamialla olemme kehittäneet perustason setupin Magento 2 ja Drupal headless frontend -puolelle, mikä mahdollistaa sen, ettei kaikkia frontend-toiminnallisuuksia tarvitse rakentaa kustomointeina tyhjästä.

Headlessin hyödyt

  • Kehittäminen on nopeaa. Kun katsomme toteuttamiamme projekteja, frontend-toimintojen rakentaminen M2 headless frameworkin päälle on 30-40 % nopeampaa kuin perinteinen Magento xml/template-file-pohjainen toteutustapa. 
  • Modulaarisuus. Tapauksissa, joissa backend-järjestelmiä ollaan vaihtamassa joskus tulevaisuudessa, kaikki frontend-kehitys pysyy käyttökelpoisena ja yhteensopivana uuden backend-järjestelmän kanssa. 
  • Suorituskyky. Verrattuna Magento 2 -perusratkaisuun, headlessissä latausajat ovat merkittävästi nopeammat, koska suurin osa vuorovaikutteisesta sisällöstä ladataan suoraan kävijän omalta selaimelta. Verrattuna perinteiseen client-palvelinmalliin tämä on mahdollista, koska sovellus pyörii selaimessa ja lataa vain dataa suoraan palvelimelta (tapahtuu yleensä asynkronisesti). Sivuston korkea suorituskyky hyödyttää myös hakukonenäkyvyyttä. Headless-järjestelmä skaalautuu erittäin hyvin, koska suuri osa sen logiikkaa pyörii selaimessa ja täten poistaa liikennettä backend-järjestelmästä. Kävijäliikenteen kuorma ei vaikuta järjestelmänvalvojan työkaluihin tai käyttöliittymään ja tekee admin panelista käytettävämmän myös kävijäpiikkien aikana. 
  • Käyttäjäkokemus. Erityisesti mobiililaitteille on helpompi rakentaa ratkaisusta natiivityyppisiä ja luoda saumaton käyttäjäkokemus. 
  • Kustomointimahdollisuudet. Koska sovellus on irrallaan Magenton ja Drupalin logiikasta ja pohjista, käyttäjävirtojen räätälöinti optimoitujen polkujen ja skenaarioiden perusteella on helppoa palvelumuotoiluvaiheessa. Näin vältetään turhat kompromissit eikä järjestelmän rajoituksia vastaan tarvitse “taistella”. Tällöin designereilla ja ohjelmistokehittäjillä on aito mahdollisuus hyödyntää parhaita käytäntöjä. 
  • Lamia Magento 2 Headless Framework tarjoaa peruskomponentit valmiina. Lamia on kehittänyt frameworkin, jota ylläpidetään ja jatkokehitetään sisäisesti sekä osana asiakasprojekteja. Se sisältää kaikki tarvittavat rakennuspalikat Magento ecommerce ja Drupal CMS -ratkaisuun kustomoitavina oletuskomponentteina. Pyörää ei tarvitse keksiä uudestaan vaan sen sijaan kannattaa ottaa käyttöön peruskomponentti ja rakentaa siihen tarvittava kustomointi ja vielä sen päälle brändikerros. Tämä vaatii taustalla paljon työtä, kuten esimerkiksi staattisten htlm-sivujen renderöintiä hakukoneoptimointia varten. 
  • Suora yhteys muihin järjestelmiin integraatioväylän kautta. Modulaarisen arkkitehtuurin ansiosta headless-sovelluksen voi kytkeä suoraan ei vain Magentoon vaan myös muihin työkaluihin API-kerroksen kautta. Tämän takia joissain tapauksissa dataa ei integroida taustajärjestelmiin, mutta se voidaan silti noutaa suoraan integraatioväylän kautta headless-sovelluksen käyttöliittymään. 
  • Tietoturva. Koska taustajärjestelmän logiikka on eristetty frontend-sovelluksesta, voidaan headless-sovelluksen käyttämälle API:lle ottaa käyttöön tiukemmat tietoturvakäytännöt. Järjestelmänvalvojan käyttöliittymä on erillään julkisesta sovelluksesta, mikä vähentää sovelluksen haavoittuvuutta.  

Headlessin haasteet - ja miten ratkoa ne

  • Mahdolliset SEO-ongelmat. Jos headless-teknologian toteuttaa huonosti, aivan kuten minkä tahansa teknologisen ratkaisun, hakukonenäkyvyys voi kärsiä. Tänä päivänä SEO-näkökulma on kuitenkin perustason tekemistä ja siihen on useita ratkaisuja. Yksi esimerkki on staattisten sivujen renderöinti hakukoneille, jotta crawlereille tarjotaan kattava ja nopea html-sivusto ja samalla kokonaisvaltainen selauskokemus käyttäjille.
  • Perustason featuret pitää luoda uudestaan. Tämä huoli on aiheellinen ja siksi olemme tämän omassa mallissamme ratkoneet valmiiksi. Magento 2 ja Drupal -frameworkissamme on mukana kaikki tavallisimmat ecommerce-toiminnallisuudet ja niitä voi hyödyntää suoraan. 
  • Ohjelmistokehityksen kustannusten nousu. Kun vertaamme omia kokemuksiamme perinteisestä Magento frontend ja headless-kehityksestä, headless JavaScript -kehitys on tehokkaampaa ja helpompaa kehittäjille. Käyttämämme frameworkin ansiosta meidän ei tarvitse “keksiä pyörää uudestaan” joka kerta - kehitystä ei siis aloiteta tyhjästä eikä asiakkaan tarvitse maksaa turhasta. Lisäksi kustomointityö on kätevämpää verrattuna standardiin Magento-ratkaisuun. 

Yhteenveto

Headless-teknologia ei sovi kaikkeen. Jokainen hanke vaatii huolellista suunnittelua sekä asiantuntemusta teknologiavalintaan, jonka pitää pohjautua aitoihin user storyihin, featureihin ja arkkitehtuurivaateisiin. 

Projektien teknisessä toteutusvaiheessa tavoitteena pitäisi aina löytyy oikeat pitkän aikavälin ratkaisut liiketoiminnalle. Siksi on tärkeää luoda digitaalinen roadmap, jonka avulla tehdään kestäviä, tulevaisuuden tarpeet huomioivia valintoja. Näin sekä tämän päivän että tulevaisuuden päätökset voidaan tehdä aitojen liiketoimintatarpeiden ja parhaan arkkitehtuurin pohjalta. 

Mietityttääkö headless? Haluaisitko testata, voisiko se olla sopiva ratkaisu digikehitystarpeisiisi? Ota yhteyttä ja keskustellaan lisää!

Seuraavaksi

Ohjelmistokehitys