Artikkelit

Kolme loistavaa Drupal 7 päivitysvaihtoehtoa

Patric Ojala

Drupal 9 lanseerattiin 3.6.2020. Drupal 7:n tuki loppuu vuoden 2022 lopussa ja Drupal 8:n 2021 lopussa. Äkkiseltään saattaa kuulostaa, että edessä on pakollinen paha, mutta itse asiassa digipalveluiden kehittäminen on nyt mahdollista poikkeuksellisen monen erityyppisen ratkaisun avulla.

Drupal9 rocket that has launched from the Drupal7 box

Drupal ja miljoona kehittäjää

Drupal on yksi maailman suosituimmista avoimen lähdekoodin sisällönhallintajärjestelmistä (CMS). Drupalin kehitys aloitettiin jo parisenkymmentä vuotta sitten, ja se on kehittynyt erittäin toimivaksi alustaksi, jota tuhannet yritykset ja organisaatiot käyttävät ympäri maailmaa. Wikipedian mukaan 2.3% kaikista internetin verkkosivustoista käyttää Drupalia. Avoin lähdekoodihan tarkoittaa että, ettei Drupalilla ole lisenssimaksua, mutta se silti kehittyy koko ajan, ja sille kehitetään jatkuvasti myös tietoturvapäivityksiä.

Yli miljoona ohjelmistokehittäjää ympäri maailmaa osallistuu Drupalin kehitykseen – ja tähän innovatiiviseen joukkoon kuuluu myös osa Wunderin työntekijöistä. Drupalille löytyy tuhansia ilmaisia laajennusosia, ja alusta on käännetty sadalle eri kielelle. Drupal on huippuluokan CMS, jota käyttää ennen kaikkea suuremmat yritykset ja organisaatiot, joiden sivustoilla on massiivisia tietokantoja – toki innokkaimmat drupalistit ovat tehneet sillä myös jopa omat blogisivustonsa.

Mistä päivityksessä on kyse?

Tällä hetkellä monella käytössä oleva Drupal 7 on suosittu versio tästä CMS-järjestelmästä, mutta se on alunperin julkaistu jo vuonna 2011. Seuraava pääversio, Drupal 8 on ollut olemassa vuodesta 2015 ja nyt kesäkuussa 2020 julkaistiin ja Drupal 9. Drupal 7 on järjestelmänä pikkuhiljaa eläköitymässä ja kun se täyttää 11 vuotta vuoden 2022 lopulla, sen tuki päättyy. Tämän jälkeen sille ei enää tehdä tietoturvapäivityksiä.

Vastuullisten yritysten ja yhteisöiden, joiden digitaalisissa ratkaisuissa on käytetty Drupal 7 CMS:ää onkin nyt hyvä alkaa suunnitella juuri heidän järjestelmälleen optimaalisinta päivitysratkaisua. Eikö D7:n päivitys tarkoita vain siirtymistä D8:aan? Itse asiassa välttämättä ei, sillä Drupal 8 tuki päättyy vuoden 2021 lopulla. Drupal 8:n päivittäminen Drupal 9:iin on kuitenkin verrattain kevyt operaatio, sillä Drupal 9 lähinnä siivoaa koodipohjansa leikkaamalla pois yhteensopivuutta parantavia ominaisuuksia vanhempien versioiden kanssa.

Drupal 7:n päivitys on joka tapauksessa merkittävästi massiivisempi – riippumatta siitä päivittääkö Drupal 8:aan vai 9:ään. Työmäärä voi joissain tapauksissa jopa lähennellä sivuston uudelleen rakentamista. Päivitys ja siitä syntyvä tarve tehdä uudistuksia, sisältää kuitenkin valtavasti uusia mahdollisuuksia. Lähtökohtaisesti meillä Wunderilla on kolme erilaista tapaa toteuttaa päivitys Drupal 7:sta ylöspäin. Jotta nämä kolme erilaista toimintamallia avautuisivat mahdollisimman hyvin, kurkistetaan ensin siihen, mitä Drupalin myöhemmät versiot mahdollistavat

Mitä hyvää Drupal 8 ja 9 tuo?

Drupal 8 ja 9 tarjoavat merkittävästi paremman responsiivisuuden. Perustyökaluihin kuuluu toiminnallisuus, joka saa yhden ja saman verkkopalvelun toimimaan yhtä hyvin niin tietokoneilla kuin mobiililaitteilla.

Myös usean kielen tuki sisällölle kuuluu perustyökaluihin. Alustan mukana tulevilla moduuleilla on helppo rakentaa verkkosivustoja, joiden sisältö on käännetty usealle eri kielelle.

Drupal 8 ja 9 toimivat nopeammin kuin Drupal 7. Tästä hyötyvät tietysti verkkopalvelun käyttäjät, mutta se parantaa myös hakukoneoptimointia (SEO). Google ja muut hakukoneet preferoivat nopeasti latautuvia sivustoja.

Mitä monimutkaisemmaksi verkkopalvelu tulee, sitä todennäköisempää on että siihen kuuluu ulkoisten järjestelmien integraatioita. Yksi esimerkki tästä voisi olla verkkokauppa, johon on usein integroitu yrityksen resurssisuunnittelujärjestelmä (ERP) sekä asiakashallintajärjestelmä (CRM). Drupal 8 ja 9 helpottavat ulkoisten järjestelmien integrointeja verkkopalveluun.

Sisällön editointi on helpompaa Drupal 8:ssa ja 9:ssä. Editointi suoraan loppukäyttäjälle näkyvällä verkkosivulla on mahdollista ja tekstieditori muistuttaa jo alan standardieditoreita, kuten MS Wordiä.

Myös saavutettavuutta on parannettu. Tämä on erityisen tärkeää – miljardi ihmistä omaa jotain digitaalisten palveluiden saavutettavuuteen liittyviä erityistarpeita. Näihin saavutettavuusvaatimuksiin vastaaminen on osalle toimijoista jo lain velvoittamaa, mutta saavutettavuus luo liiketoimintahyötypotentiaalia myös heille, joita laki ei vielä velvoita. Saavutettavuuden liiketoimintahyödyistä lisää tässä Päivin kirjoittamassa artikkelissa.

Listan viimeisimpänä, mutta ei suinkaan vähäisimpänä: Drupal 8 ja 9 mahdollistavat decoupled-verkkosivustot. Decoupled-ratkaisu liittyy olennaisesti D7 päivityksen eri vaihtoehtoihin ja hyötyjä on niin paljon, että käsitellään ne seuraavaksi.

Mitä hyötyjä on decoupled-rakenteesta?

Decoupled-rakenne on erittäin yksinkertainen toteutus mikropalveluarkkitehtuurista. Decoupled-rakenteessa verkkopalvelu jaetaan useampaan eri sovellukseen, usein kuitenkin vain käyttöliittymään (frontend) ja sisällönhallintajärjestelmän backend-osion. Nämä kaksi sovellusta keskustelevat keskenään käyttäen jotain ohjelmointirajapintaa (API) ja muodostavat yhdessä verkkopalvelun.

CMS toimii tällöin ns. “päättömänä” (headless), eikä sen frontend-toiminnallisuuksia käytetä. Käyttöliittymä toteutetaan silloin eri sovelluksessa käyttäen jotain muuta teknologiaa kuten Reactia. Wunderilla on erillinen, kattava kirjoitus decoupled-rakenteesta ja sen eduista, mutta tässä edut lyhykäisyydessään:

React on Javascript (JS) kirjasto, joka auttaa parhaan käytettävyyden käyttöliittymien rakentamisessa. Drupalin käyttöliittymätoiminnallisuudet ovat toki monipuoliset ja laajennuksia on paljon, mutta ne ovat silti rajalliset. Reactilla tai JS:llä käyttöliittymiä kehitettäessä ei käytännössä ole mitään rajoituksia.

Decoupled-rakenteisella verkkosivustolla verkkosivun piirtoa varten tapahtuva tiedonhaku on mahdollista toteuttaa lukemalla vain muutamia tiedostoja palvelimelta. Tämä saa verkkosivuston vasteet käyttäjän syötteisiin tuntumaan välittömiltä. Drupal 8 ja 9 toimivat nopeammin kuin Drupal 7, mutta decoupled-rakenne tarjoaa vielä sitäkin merkittävästi paremman suorituskyvyn. Tämä kevyempi tiedonhaku on myös ympäristöystävällisempi – digin ympäristövaikutuksia kun voidaan vähentää parhaimmassa tapauksessa jopa 90%.

Decoupled verkkopalvelu on mahdollista tehdä erittäin tietoturvalliseksi, jos frontend-sovellus julkisessa internetissä sisältää vain julkisia tietoja, ja backend-sovellus arkaluontoisemmilla tiedoilla ja toiminnallisuuksilla eristetään julkisesta internetistä.

Integraatiot muuttuivat Drupal 8:n ja 9:n myötä helpommiksi toteuttaa, mutta decoupled-rakenne mahdollistaa vielä tästäkin yksinkertaisemman toteutustavan. Integroitavia tietoja voidaan tuoda suoremmin käyttöliittymään käyttäjälle, ilman että näitä tarvitsee ensin kopioida CMS:n tietokantaan.

Kolme loistavaa vaihtoehtoa Drupal 7 päivitykselle

Nyt kun Drupal 8: ja 9:n ja decoupled-rakenteen edut on kattotasolla käyty lävitse, pääsemme itse asiaan. Kolme loistavaa vaihtoehtoa Drupal 7 päivitykselle ovat:

  1. Suora kopio nykyisestä Drupal 7 sivustosta Drupal 8:lle tai 9:lle
  2. Ideaali uudelleenrakennus Drupal 7 sivustosta decoupled sivustoksi ilman kompromisseja.
  3. Sama Drupal 7 sivusto kuin tähänkin asti, mutta nyt eristettynä julkisesta internetistä, ja uudella React-frontendillä.

1. Suora kopio Drupal 8:ksi tai 9:ksi

Jos haluat yksinkertaisesti päivittää Drupal 7 verkkosivustosi Drupal 8:ksi tai 9:ksi, meiltä löytyy tähän tarpeeseen erittäin kustannustehokas ratkaisu. Toteutamme päivityksen ns ‘avaimet käteen’ toimituksena. Asiakkaan kanssa sovitaan projektin aloitus ja seuraava askel on se, että joitain kuukausia myöhemmin luovutamme valmiin Drupal 8 tai 9 sivuston.

Kustannustehokkuus syntyy hieman normaalia väljemmästä aikataulusta ja siitä, että projektiin ei lukita tiettyä kehitystiimiä. Jos verkkosivustosi on mielestäsi täydellinen, mutta vain Drupal päivitys puuttuu, tämä voi olla oikea valinta sinulle.

2. Ideaali uudelleenrakennus

Tässä vaihtoehdossa mahdollisuudet päivitykseen liittyen maksimoituvat. Koska Drupal 7-version kokonaisvaltainen päivitys vaatii joka tapauksessa huomattavasti resursseja, niin samalla kertaa on hyvä toteuttaa muutkin sivustouudistustoiveet. Jo vuosia palvelleen sivuston tilalle on nyt hyvä tilaisuus rakentaa verkkosivusto joka palvelee hyvin ja pitkään, myös tulevaisuuden tarpeet jo huomioiden.

Useimmat Drupal 7:n toteutukset ovat niin sanottuja monoliittejä, missä sekä käyttöliittymä (frontend) että backend operoivat kaikki samassa sovelluksessa. Nykyään verkkosivustot rakennetaan yhä useammin decoupled-rakenteella – yllä listatuista eduista johtuen.

Drupal 7:n päivitysvaihtoehdoista numero yksi on todennäköisesti lyhyellä tähtäimellä edullisempi. Hieman pidemmällä aikajaksolla tarkasteltuna tämän hetken tarpeiden mukaisesti rakennettu decoupled-verkkopalvelu on todennäköisesti todella vahva vaihtoehto, niin kustannustehokkuuden kuin sijoitetun pääoman tuoton näkökulmasta.

3. Pidä nykyinen Drupal 7 backend:inä

Tämä saattaa ensinäkemältä tuntua vähän yllättävältä vaihtoehdolta, sillä Drupal 7:n ja 8:n tuki todella päättyy vuonna 2021, ja näin ollen myös tietoturvapäivitykset, jotka ovat aina kriittisiä koko palvelun toimimiselle. Mutta huoli tietoturvapäivityksestä hälvenee, jos Drupal 7 sovellus ei ole julkisessa internetissä vaan siitä eristettynä.

Verkkopalvelu tarvitsee kuitenkin käyttöliittymän eli frontendin. Tässä kolmannessa vaihtoehdossa D7:n päivitykselle frontend ja backend erotetaan toisistaan decoupled- rakenteella ja frontend-sovellus toteutetaan Reactilla. Vaikka varsinainen tuki decoupled-rakenteelle tuli vasta D8:ssa, niin decoupled on mahdollista toteuttaa myös Drupal 7:lla.

Tällä ratkaisulla hengenhätä päivittää Drupal 7 ennen vuoden loppua helpottaa, mutta suosittelemme, että Drupal 7:n kokonaisvaltainen päivittäminen jossain vaiheessa toteutetaan. Suosittelemme tätä siksi, että Drupal 7 alustaa ei enää kehitetä, siihen ei tule enää laajennuksia, ja sovelluksen jatkokehitysmahdollisuudet tulevat ajan myötä yhä rajallisemmiksi.

Mikäli React-frontend rakennetaan oikein, niin backendille tehtävä Drupal päivitys tulee aikanaan olemaan verrattain helppo ja kustannustehokas toteuttaa. Tätä vaihtoehtoa voisikin pitää jaettuna investointina. Lyhyemmällä aikavälillä selviää pääasiassa rakentamalla frontendin uudestaan, ja tätä voi tietysti parantaa samalla kun se uudistetaan. Kun sitten aikanaan päivitetään backend ja parannetaan sitäkin tarpeiden mukaisesti, lopputulos on periaatteessa sama kuin vaihtoehdosta 2. – ideaali uudelleenrakennus.

Miten valita näistä vaihtoehdoista?

Jokainen verkkopalvelu on ainutlaatuinen ja samoin jokaisen yrityksen tulevaisuuden visiot, toiveet ja mahdollisuudet. Tästä syystä on täysin mahdotonta sanoa mikä edellämainituista ratkaisuista on juuri teidän yrityksellenne sopivin – ota meihin siis rohkeasti yhteyttä, niin selvitetään yhdessä miten juuri teidän kohdalla toimimalla saadaan diginne tulevaisuuden näkymistä parhaat mahdolliset. Nyt toimeen tarttumalla vaihtoehtoja mistä valita on kaikista eniten.

Tilaa Patric Ojalan webinaaritallenne aiheesta:

Haluaisitko tietää lisää Drupalin uusimmasta päivityksestä? Tai että selvittäisimme nykyisen digitaalisen palvelusi tilan koskien Drupal 9 päivitystä? Ota reippaasti yhteyttä, selvitetään ja mietitään yhdessä mikä on teidän diginne suhteen paras seuraava askel.

Lisätietoa

Patric Ojala

Account Manager

+358 40 565 8801

patric.ojala@wunder.io