2015-05-18
Nyhet

Att driva en stor blogg med Jekyll

Sedan jag klev av WordPress och började använda Jekyll som publiceringssystem har jag fått lära mig många intressanta saker.

Ett tecken fel…

Jekyll är nämligen en bloggplattform som i grunden är ganska enkel – man “kompilerar” en rad artikelfiler skrivna i Markdown med hjälp av Jekyll, ett antal plugins (om man har några installerade) och ett antal mallar och andra funktioner skrivna exempelvis i Javascript. “Källkoden” till varje artikel börjar med en header, där du anger ett antal nyckeldata:


layout: post
status: publish
date: 2015-05-18 16:01:02
share: true
published: true
title: Att driva en stor blogg med Jekyll

Resultatet blir en bunt html-filer, en per artikel, som byggs varje gång du “kompilerar” din sajt med Jekyll. Om en artikel ser konstig ut här på Macpro kan det mycket väl vara att jag råkat lägga in ett mellanslag mellan title och kolon, eller att de tre strecken före och efter headern i själva verket är två streck.

Det gäller att hålla tungan rätt i mun, så att säga.

Jag har numera en mallfil som jag utgår från varje gång jag skriver en ny artikel – enklast så för jag vet att den fungerar – men likväl kan man råka göra misstag utan att märka det.

Kompileringstider

Överlag är det ändå ganska okomplicerat, kan tyckas. Med en liten blogg med kanske 100-200 bloggposter är det inget större problem, att bygga sin sajt tar kanske max en minut på en normalsnabb server. Problem uppstår istället när man som jag har närmare 7000 artiklar i arkivet. Då ska varje artikel byggas om varje gång, och alla tillhörande bilder och annat ska kopieras från katalogen där de ligger till en annan katalog (_site)där själva sajten som du läser nu hamnar.

Jag har testat lite olika varianter för att försöka komma tillrätta med tiden det tar att bygga om sajten. Det är väl i sig inget problem om man bara ska publicera en artikel eller två – problemet uppstår snarare om man ska rätta ett fel eller lite snabbt vill komplettera en artikel med en länk till eller liknande.

Jag har testat byggtiderna på lite olika plattformar. Två av testerna är gjorda på en virtuell CentOS-server som körs under VMware ESXi på en HP MicroServer. Den virtuella hårddisken för servern körs på samma server. På denna server tar det nio minuter och 50 sekunder att “kompilera” Macpro.

Samma server som ovan men där sajten lagras på min NFS-server, en Dell PowerEdge 2950 med sex 500 gigabyte SAS-hårddiskar, en RAID-kontroller från Dell och där diskarna körs i RAID 5-läge. Åtta gigabyte RAM, CentOS 6.6 och fyra Xeon-processorer gör att den här maskinen inte svettas nämnvärt när man börjar pressa på över NFS. Men det är ändå ett nätverk mellan min webbserver och min NFS-server, så det blir en viss fördröjning. Kompileringstiden här blev åtta minuter och 46 sekunder. En förbättring med drygt en minut, men ändå på tok för länge.

Tredje försöket gjordes på min gamla Xserve2,1 med åtta gigabyte internminne, OS X Lion och OS X Server installerat. Genom diverse hack har jag fått in Jekyll, Ruby och allt annat som krävs för att jag ska kunna kompilera Macpro på maskinen. Snabbt är det dock inte – Macpro kompileras på denna server med sina tre 7200RPM SATA-hårddiskar i RAID 5-läge på sex minuter och 35 sekunder.

Så jag testade det hela på min 15-tums Macbook Pro Retina med en Core i7-processor på 2,2GHz, 16GB internminne och en flashlagring på 256GB. Resultatet? Tre minuter och 52 sekunder.

Helt klart är det att din lagringslösning är begränsningen för hur snabbt Jekyll kan byggas. Lösningen för mig blir helt sonika i framtiden att skriva och kompilera Macpro på min Macbook Pro och sen ladda upp resultatet via Rsync och SSH.

Prestandaproblemen vid kompilering av större Jekyll-sajter är för övrigt något som utvecklarteamet bakom Jekyll arbetar hårt med och i en kommande version av Jekyll ska det komma stöd för vad man enklast kan kalla partiella kompileringar, alltså där man enbart kompilerar det som förändrats sedan den förra kompileringen. Huruvida det kommer att kräva någon form av databas för att hålla ordning på detta låter jag vara osagt men jag hoppas så inte är fallet.

Summering

Jekyll är en underbar bloggplattform. Man kan inte tro det med tanke på vad jag skriver ovan men det är kul att arbeta med- och modifiera sitt tema, lägga till plugins, att kunna skriva artiklarna rakt upp och ned i en Markdown-editor. Man kommer liksom “närmare” sin bloggmotor och det är lite meckigt ibland men det är också värt besväret eftersom man har fullständig kontroll, till skillnad från exempelvis WordPress där man inte har en aning om vad som händer under skalet förrän ens databas är korrupt eller om sajten blir hackad.

De två sistnämnda sakerna var för övrigt två tungt vägande orsaker till att gå från WordPress till Jekyll och även om bytet som sagt varit en aning ansträngande så kan jag så här drygt nio månader senare knappast säga att jag ångrar mig.



Macpro är annonsfri för att göra din läsupplevelse bättre.
Läs mer här om hur du hjälper Macpro förbli annonsfri


© 2004 - 2017 Joacim Melin