Diagnose, Ontwerp en Verandering

SPEEDY

Snelheid van websites en webapplicaties is en blijft belangrijk. Door de enorme groei van internet en toename van internettoepassingen blijft de druk op schaarse netwerkcapaciteit toenemen. Zeker met een verschuiving naar SAAS cloud computing modellen wordt deze trend alleen maar sterker. Jaren geleden is gelukkig al bedacht dat het tijd is om het oude HTTP protocol te vervangen. Internet is namelijk wel veel HTTP, maar binnen de architectuur van internet is HTTP een onderdeel. Echter wel een fundament.

Het HTTP1.1 protocol heeft in 1999 via RFC2616 formeel status gekregen en is eigenlijk nooit meer gewijzigd. De belangrijkste eigenschappen van HTTP/1.1 zijn: Compressie,gebruik van headers maar helaas ook slecht connectie management. Slechts één request kan gelijktijdig plaatsvinden (half duplex). Daarnaast is beveiliging optioneel.

Door het toenemende gebruik van allerlei devices verbonden met internet wordt de noodzaak om afscheid te nemen van het http protocol groter. Performance problemen oplossen door:

  • web pagina’s te optimaliseren;
  • plaatjes drastisch te verkleinen;
  • caching netwerken gebruiken;
  • tunning en tweaking van apache (of een andere webserver);
  • code optimalisatie;
  • database tuning en natuurlijk
  • ruzie maken met netwerkbeheerders;

was het minimale repertoire om een website beter te laten performen. Ondanks dat Drupal en andere geavanceerde CMS systemen allemaal geavanceerde caching mechanismes kennen, is het toch nog veel engineering werk om een site te laten performen. Een mooi ontwerp zit helaas vaak nog altijd alleen maar in de weg.

Stuwende kracht achter een alternatief voor het HTTP protocol is Google. Waarschijnlijk uit bittere noodzaak om de eigen Google Office Suite te laten performen of Gmail nog sneller te maken is Google in 2009 gestart met SPDY. SPDY wordt uitgesproken als Speedy. Het belangrijkste doel van SPDY is het reduceren van de laadtijd van webpagina’s. De belangrijkste eigenschappen van SPDY zijn:

  • Multiplexing.
  • Compressie
  • Prioritering
  • Beveiliging (encryptie en authenticatie)
  • Pushen van data naar een client

SPDY voegt een sessie laag toe boven op SSL waarmee verschillende concurrent streams over een enkelvoudige TCP connectie gestuurd kunnen worden. De gebruikelijke http GET en POST blijven behouden. SPDY specificeert een nieuw frame voor het encoden en versturen van data over het netwerk.

speedy

Recent (september 2011) heeft ook Mozilla een testversie van de Firefox browser uitgebracht met ondersteuning voor SPDY. Google zelf heeft natuurlijk SPDY al sinds versie 6 default in Chrome ingebouwd. Daarnaast ondersteunen alle Google beveiligde sites SPDY. Omdat veel landen geen breedband (mobiele) netwerken kennen wordt natuurlijk hard gewerkt aan Android ondersteuning voor SPDY.

Of SPDY daadwerkelijk naast Google door meer bedrijven serieus wordt opgepakt is nog zeer onduidelijk. Ondersteuning is op veel vlakken (tools, webservers, proxies, clients, browsers) nog erg mager of nog totaal afwezig. Met de komst van SPDY op grote schaal zullen performance problemen natuurlijk niet verdwijnen. Maar wel langer onopgemerkt blijven. Ondanks een potentiële snelheidswinst van 40 tot 60% blijft een goed ontwerp van een webapplicatie vooraf noodzakelijk. Dit omdat problemen achteraf oplossen duurder en veel complexer is.

speedy