Som inbitna säkerhetsnördar förundras vi ofta varför dagens moderna (?) webbsajter inte är mer robusta. Det är väl ändå inte rimligt att 100 samtidiga anrop ska ses som en överbelastningsattack, eller?
Den som ansvarar för webbsajten har sannolikt kravställt stora delar av det som ska ses som ansiktet utåt för den organisation eller motsvarande som representeras av webbsajten. Vår upplevelse är att det sällan ställts tillräckliga krav vad gäller robusthet. Åtminstone inte av den dignitet som gör att webbsajten faktiskt är robust över tid.
En webbsajt står för delikata utmaningar, både för att den är så exponerad (både tekniskt och varumärkesmässigt) och för att den ofta förändras mer och snabbare än något annat system.
Väsentligen alla webbsajter hämtar informationen i någon sorts databas. En databas är gjord för att bibehålla dataintegritet trots mycket läsning och skrivning. Användningsfallet webbsajt handlar dock inte om mycket läsning och mycket skrivning utan det handlar om extremt mycket läsning och nästan ingen skrivning. En vanlig databas är inte optimal för det, men det är vad som finns att tillgå, varför databasens tillkortakommanden löses genom att ha mellanlager mellan webbsajtens innehåll i databasen och den färdiga sidan som presenteras för användaren.
Det finns väsentligen två typer av sådana mellanlager, sidcachar och datacachar, som båda har sina för- och nackdelar. En felaktigt designad lösning kan inte bara dra fördel av detta, utan kan också starkt bidra till motsatsen. Cachar leder ofta till förändringströghet vilket kräver viss finessrikedom så att snabba förändringar på webbsajten inte hindras. Sökfunktionen kan vara förödande för robustheten för att inte tala om vilka effekter användarspecifika sidor kan få på en cache. Kort och gott, en eller flera cachar kan vara bra, men det är långt ifrån en självklarhet att de ger önskvärda effekter.
Molnet kanske någon ser som den perfekta lösningen på utmaningen? Ur ett tillgänglighetsperspektiv är det nog inte så dumt tänkt. Sannolikt är det få lösningar som kan mäta sig med molnets skalfördelar här. Ur ett konfidentialitets- eller riktighetsperspektiv är det kanske inte lika synonymt. Men, en externt publicerad webbsajt har sällan de allra största kraven vad gäller konfidentialitet. Däremot är riktighetsbegreppet knappast något som kan äventyras och behöver beaktas!
I ett CDN (Content Delivery Network) som tekniskt är ungefär som en sidcache, fast produceras som en eller flera molntjänster, finns mängder med skalfördelar just för att den är molnbaserad. Men, om den tjänsten möts av samma utmaningar som i praktiken innebär att det inte går att cacha sidorna så måste de genereras på nytt hela tiden och då kanske inte heller ett CDN är lösningen på ursprungsproblematiken. Det är definitivt ett effektivt sätt att kasta pengarna i sjön.
I stället för att skala upp problematiken och försöka lösa den icke-robusta webbsajten med icke verkningsfulla åtgärder så är det i stället idé att skala ner problematiken och se vad som är det egentliga problemet. Sannolikt ges bäst resultat genom att designa om de värsta delarna i webbsajten för att göra webbsajten mer cachningsbar och därefter applicera de åtgärder som här diskuterats för att göra webbsajten mer robust.
De kortsiktiga lösningarna lär inte hålla över tid, men säkerligen överlever webbsajten i alla fall den hippa webbyrån som verkligheten redan har kommit i kapp och sprungit förbi!
Magnus Hübner och Thomas Nilsson