Arkkitehtuuri

Jamstack moderni web-kehitys arkkitehtuuri

Frontin devaaminen on taas hauskaa kun ei tarvitse käyttää aikaa palvelinympäristöjen konfigurointiin.

Julkaisija

Andreas Koutsoukos

Julkaistu

Mikä on Jamstack?

( Audiossa muutama virhe, markdown ei markup! )

Kun kuulin ensimmäistä kertaa Jamstack arkkitehtuurista mietin, että miksi en ole käyttänyt arkkitehtuuria aikaisemmin. Nuo vuodet freelancerina ja mainostoimisto koodarina kun kehitettiin WordPress, Drupal, Joomla ja muita PHP sisällönhallintajärjestelmiä tuntuu nyt arvottomilta. Verkkosivujen kehittäminen on taas yhtä juhlaa!

Jamstack on arkkitehtuuri joka koostuu kolmesta teknologia osaalueesta. Javascript, API sekä Markdown. JAMstack Fundamentals: What, What and How? With Phil Hawksworth

Hyödyt

Nopea Valmiiksi koostetut staattiset sivut. Kuvat muut resurssit ( ääni, ikonit ja muut mediat ) voidaan jakaa sisällönjakeluverkkoon ( CDN )

Hakukone ystävällinen Staattiset sivut sekä selkeä URL arkkitehtuuri mahdollistaa sen, että hakukone indeksoi sivun nopeammin ja näin ollen sivusto indeksoituu hakukoneessa paremmin. Nopeammat sivut tarkoittavat enemmän pisteitä Googlen hakukoneessa.

Turvallinen Ei tietokantaa ei murheita. Hyökkäys pinta-ala on vähemmän kuin perinteisellä tietokantapohjaisella arkkitehtuurilla.

Halpa Tiedostojen ylläpito on halpaa tai jopa ilmaista.

Skaalautuvuus Liikenteenmäärän kasvusta johtuvaa kuorimusta voidaan optimoida sisällönjakeluverkkoon avulla.

Jamstack WTF

Historiaa

Jamstack arkkitehtuurin takana on Netlify perustaja Mathias Biilmann. Pieni kehittäjäryhmä antoi vuonna 2015 termin Jamstack jota alettiin pikkuhiljaa käyttämään muiden kehittäjien sekä kehittäjäyhteisön keskuudessa.

New to JAMstack? Everything You Need to Know to Get Started

Jamstack vs. perinteinen web-kehitys arkkitehtuuri

Perinteisessä arkkitehtuurissa kaikki osa-alueet ovat omassa hillopurkissa. Näin ollen ympäristöt että, sisällöt ( data ) pitää olla synkronoitu jotta koonti onnistuu täysin kuin se on suunniteltu kehitysvaiheessa.

Jamstack arkkitehtuurissa osa-alueet ovat jaettu omiin hillopurkkeihin joka mahdollistaa jatkuvan integraation helpommin kuin perinteisessä monoliittisessa web-kehitys arkkitehtuurissa. Ohjelmointirajapintojen ansiosta dataa ei tarvitse synkronoida kehitysympäristön ja tuotantoympäristön välillä vaan data on aina synkronoitu.

Artikkelissa mainittu monta kertaa staattinen sivusto terminä joka tavallaan on totta, mutta Jamstack ei ole oikeastaan staattinen. Jamstack arkkitehtuuri voidaan kutsua hyperdynaamiseksi.

JAMstack Tutorial - Full site using Netlify & Hugo

Käyttö ja soveltuvuus

Jamstack soveltuu hyvin moneen eri käyttötapaan. Sillä ei kuitenkaan kannata rakentaa sivustoa jonka sisältö muuttuvat kun selaaja ( client ) tekee muutos pyynnön, kuten vaikkapa Twitter.

Jamstack soveltuu erityisesti seuraaviin käyttötapauksiin

  • Perinteiset kotisivut
  • Blogit
  • Verkkokaupat
  • Verkkosanomalehdet
  • Simppeli web-applikaatio

Hyper Web Development and the Rise of the JAMstack

Työkalut sekä koonti prosessi

Jamstack arkkitehtuuri kehitysympäristö voidaan aloittaa joko itse rakentamalla tai valita ns: staattisten sivujen generaattorin avulla. Nopein ja helpoin tapa on valita jälkimmäinen SSG (static site generator) tapa.

Frontti

Frontti vastaa Jamstack arkkitehtuurin J osuudesta ja voi olla mikä tahansa teknologia jolla kyvykkyys reaktiiviseen web-kehitykseen.

Tietolähde sekä rajapinnat

Tietolähde vastaan Jamstack arkkitehtuurin A osuudesta ja voi olla mikä tahansa API tai sisällön julkaisujärjestelmä.

Sisältö

Sisältö vastaa Jamstack arkkitehtuurin M osuudesta. Markdown muodon avulla voidaan generoida sivuja sekä sisältöjä.

Markdown guide

Ympäristöt

Jamstack arkkitehtuurin pohjainen koonti ei vaadi erityistä ympäristöä toimiakseen vaan se voi olla mikä tahansa sisällönjakeluverkko ( CDN ). Kehitysympäristö voi olla täysin erilainen kuin julkaisuympäristö ja tästä syystä Jamstack arkkitehtuuri on kehittäjä ystävällinen.

Koonti prosessi

Työkulku prosessi on hyvin suoraviivainen Jamstack arkkitehtuurissa. Kehitystä tehdään paikallisesti ( omalta koneelta ) koodit sijaitsevat Versiohallinnassa josta koonti prosessi sisällönjakeluverkko voidaan automatisoida jatkuvan integraation avulla. JAM!