Drupalin arkkitehtuuri rakentuu kerroksittaiselle mallille, jossa ydin tarjoaa perustan ja laajennukset tuovat toiminnallisuuden. Ydin sisältää keskeiset järjestelmäpalvelut kuten käyttäjähallinnan, reitityksen, välimuistin ja tietoturvamekanismit. Se ei kuitenkaan pyri ratkaisemaan kaikkia mahdollisia käyttötapauksia. Sen sijaan se tarjoaa rajapinnat, joiden kautta järjestelmää voidaan laajentaa hallitusti.
Drupal hyödyntää Symfony komponentteja, mikä tuo mukaan modernin palveluarkkitehtuurin. Käytännössä tämä tarkoittaa, että järjestelmän logiikka on jaettu palveluihin, jotka rekisteröidään palvelusäiliöön. Riippuvuuksien injektio mahdollistaa sen, että eri osat pysyvät irti toisistaan. Tämä parantaa testattavuutta ja ylläpidettävyyttä.
Entiteettijärjestelmä ja tietomalli
Drupalin sydän on entiteettijärjestelmä. Entiteetti on tietorakenne, joka tallennetaan tietokantaan. Sisältö, käyttäjät, mediat ja taksonomiat ovat kaikki entiteettejä. Jokaisella entiteetillä on kenttiä, jotka määrittävät, millaista tietoa tallennetaan.
Tietomallin suunnittelu on kriittinen vaihe teknisessä toteutuksessa. Sisältötyypit ja niiden kentät määrittävät, miten dataa voidaan hakea, suodattaa ja esittää. Hyvin suunniteltu rakenne mahdollistaa joustavan jatkokehityksen. Huonosti suunniteltu rakenne puolestaan vaikeuttaa muutoksia ja kasvattaa teknistä velkaa.
Entiteettien ympärille rakentuvat myös käyttöoikeudet ja näkymät. Tämä tekee datasta arkkitehtuurin keskiön. Käyttöliittymä mukautuu tietorakenteen perusteella, ei päinvastoin.
Modulaarinen rakenne
Drupal rakentuu ytimestä ja moduuleista. Ydin tarjoaa perustoiminnallisuudet, mutta lähes kaikki lisäominaisuudet toteutetaan moduuleina. Moduuli voi lisätä uuden sisältötyypin, tarjota integraation ulkoiseen järjestelmään tai muokata olemassa olevaa toimintaa.
Moduulit kommunikoivat järjestelmän kanssa määriteltyjen rajapintojen kautta. Perinteisesti tämä tapahtui hook mekanismin avulla. Uudemmassa arkkitehtuurissa hyödynnetään tapahtumapohjaista mallia, jossa moduulit kuuntelevat tiettyjä tapahtumia ja reagoivat niihin.
Modulaarisuus mahdollistaa järjestelmän rakentamisen tarpeen mukaan. Toiminnallisuuksia voidaan lisätä tai poistaa ilman, että koko järjestelmä hajoaa. Tämä tekee Drupalista joustavan ja skaalautuvan alustan.
Esityskerros ja teemat
Drupal käyttää Twig templating moottoria esityskerroksessa. Twig erottaa datan ja liiketoimintalogiikan HTML rakenteesta. Tämä parantaa tietoturvaa ja pitää koodin selkeänä.
Teemat määrittävät sivuston ulkoasun. Käyttöliittymä rakennetaan HTML, CSS ja JavaScript teknologioilla. Responsiivisuus ja saavutettavuus huomioidaan suunnittelussa. Layout Builder mahdollistaa sivupohjien joustavan rakentamisen ilman, että rakenteellinen hallinta katoaa.
Esityskerros on irrotettu ydintoiminnoista, mikä tekee järjestelmästä joustavan myös visuaalisten muutosten suhteen.
Konfiguraatio ja versionhallinta
Drupal mahdollistaa konfiguraation viennin tiedostoiksi. Tämä tarkoittaa, että asetukset voidaan versionhallita Gitissä samalla tavalla kuin ohjelmakoodi. Konfiguraatiohallinta mahdollistaa hallitun julkaisuprosessin eri ympäristöjen välillä.
Composer hallitsee riippuvuuksia ja varmistaa, että käytössä ovat oikeat versiot ytimestä ja moduuleista. Tämä tuo järjestelmään ohjelmistokehitykselle tyypillisen kurinalaisuuden.
Konfiguraation erottaminen koodista ja datasta on keskeinen osa arkkitehtuuria. Se mahdollistaa ennustettavan kehityksen ja vähentää virheiden riskiä.
Suorituskyky ja skaalautuvuus
Drupal sisältää useita välimuistikerroksia, jotka optimoivat suorituskyvyn. Cache tagit mahdollistavat tarkasti kohdennetun välimuistin tyhjennyksen. Tämä vähentää turhia tietokantakyselyitä ja nopeuttaa sivujen latautumista.
Skaalautuvuus voidaan toteuttaa kuormantasaajien, useiden palvelimien ja pilviympäristöjen avulla. Arkkitehtuuri tukee tätä, koska eri kerrokset ovat selkeästi erotettuja toisistaan.
Hyvin suunniteltu modulaarinen rakenne kestää kasvua. Se mahdollistaa uusien ominaisuuksien lisäämisen ilman, että koko järjestelmä täytyy rakentaa uudelleen.
Yhteenveto
Drupalin arkkitehtuuri ja modulaarinen rakenne perustuvat ajatukseen hallituista, toisistaan erotetuista komponenteista. Ydin tarjoaa perustan, entiteettijärjestelmä määrittää datan rakenteen ja moduulit tuovat toiminnallisuuden.
Tämä rakenne tekee Drupalista joustavan, laajennettavan ja pitkäikäisen alustan. Samalla se edellyttää huolellista suunnittelua ja kurinalaista toteutusta. Kun arkkitehtuuri ymmärretään kunnolla, Drupal ei ole vain työkalu, vaan tehokas digitaalinen rakennussarja, jonka mahdollisuudet kasvavat sitä mukaa kun ymmärrys syvenee.
