Schnellere Webanwendungen mit Tornado

22.09.2011

Der asynchron arbeitende Webserver Tornado und das dazu gehörige Framework will Webanwendungen beschleunigen. Die neue Version 2.1 bringt eine Reihe von Verbesserungen mit.

In der Praxis bewährt sich der Tornado-Webserver schon seit längerem bei Friendfeed, einer Art sozialer Website, über die sich beispielsweise Webseiten und Videos in Form von RSS-Feeds teilen lassen. Im Jahr 2009 wurde Friendfeed von Facebook aufgekauft, das anschließend den Tornado-Code unter der Apache-Lizenz 2.0 freigab. Glaubt man den Benchmarks, schafft Tornado etwa 50 Prozent mehr Requests pro Sekunde als ein vergleichbares Setup mit Apache und Django. Möglich wird das durch die asynchrone Verarbeitung von Requests, die dazu führt, dass Tornado beispielsweise bei I/O-Operationen nicht blockiert, sondern in der Zwischenzeit weiterarbeitet, bis die angefragten Daten vom Massenspeicher eintreffen.

Tornado ist in Python geschrieben und unterstützt neben der  Verarbeitung von HTTP-Requests unter anderem HTML-Templates, signierte Cookies, Benutzer-Authentifizierung, Internationalisierung, Caching und Security-Maßnahmen, etwa gegen Cross Site Request Forgery (CSRF).

Jetzt ist Version 2.1 von Tornado erschienen, das Anwendern eine Reihe von Veränderungen und neuen Features beschert. So gibt es nun eine neue Generator-basierte API, die das asynchrone Programmieren von Requests vereinfacht, das für viele Webprogrammierer zunächst ungewohnt ist. Ein neues Modul ermöglicht die Integration mit dem Python-Netzwerk-Framework Twisted. Neben einigen kleinen Änderungen, die die Kompatibilität zur Vorversion stören, gibt es auch mehrere Verbesserungen zur Unterstützung von Python 3. Grundsätzlich setzt Tornado noch auf Python 2 und auf die Betriebssysteme Linux, BSD und Mac OS X.

Die Homepage des Tornado-Projekts ist unter http://www.tornadoweb.org zu erreichen. Mehr Informationen über Tornado sowie Benchmark-Ergebnisse finden sich in einem Blog-Eintrag des Facebook-CTO Bret Taylor.

Ähnliche Artikel

Mehr zum Thema

Happy Birthday, Apache

Der Apache-Webserver feiert mit dem Release der Version 2.4 den 17. Geburtstag.

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018