Quantcast
Channel: Das Weblog der Deep Impact AG » Caching
Viewing all articles
Browse latest Browse all 2

ESI is Easy

$
0
0

ESI steht für Edge Side Includes und ist eine kleine Sprache, die in Webseiten eingebaut wird. Sie ermöglicht es, Seiten dynamisch aus verschiedenen Quellen zusammenzusetzen. Dasselbe kann mit einer Vielzahl anderer Sprachen erreicht werden, aber ESI  ist mit einem Ziel erfunden worden: das Problem der Skalierbarkeit von Webapplikationen zu begegnen.

Bereits 2001 wurde ESI von einer Gruppe von Unternehmen spezifiziert und dem W3C unterbreitet. Obwohl die Sprache nicht als W3C Standard akzeptiert wurde, hat sie mittlerweile in einigen Servern und Content Delivery Networks Verwendung gefunden.

Der Varnish Caching Server ist beispielsweise ein Cache, der einfache ESI Instruktionen interpretieren kann. Eine Applikationsarchitektur mit ESI und einem Cache wie Varnish sieht folgendermassen aus:

ESI

Auf einem ersten Fragment, das der Edge Server bezieht, sind ESI Tags eingetragen. Mit diesen Tags werden weitere Fragmente adressiert, welche der Edge Server lädt und anstelle der Tags in die Seite einbaut. Entscheidend ist hierbei, dass diese ESI Fragmente mit Cachingregeln verbunden sind.

Damit lässt sich jedes Fragment individuell und optimal cachen und die Belastung der Applikationsserver wird minimiert. Beispielswiese kann eine Newsbox als separates Fragment anders gecached werden als die viel länger gültigen Navigationselemente auf einer Webseite. Beim Varnish Caching Server versteht der Cache gleich ESI und spielt die Rolle des Edge Servers wie auch des Caches im Diagramm oben.

Und wie sieht ESI denn aus? Das folgende sehr einfache Beispiel demonstriert den caching Vorteil:

<HTML>
 <BODY>
  Es sind <esi:include src="/besucher_zahl.php"/> Besucher online.
 </BODY>
</HTML>

Diese Seite kann lange im Cache behalten werden. Das einzige dynamische Element- die Besucherzahl – wird in ein kleines separates Fragment verpackt, welches nicht oder nur kurz gecached wird. In der Realität ist ESI natürlich nur für grössere Applikationen interessant.

Letztlich hätte auch irgendeine andere Sprache im Varnish Cache benutzt werden können, um Seitenkomponenten zu definieren und mit Cachingregeln zu verbinden. Mit einer spezialisierten Sprache wie ESI, also einer domänenspezifischen Sprache, lässt sich diese Problematik jedoch äusserst sauber von der restlichen Seitendynamik trennen.

The post ESI is Easy appeared first on Das Weblog der Deep Impact AG.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles



Latest Images