Open Source Rapid Web Development Frameworks - Eine Untersuchung Der Skalierungsstrategien
Total Page:16
File Type:pdf, Size:1020Kb
Diplomarbeit: Open Source Rapid Web Development Frameworks - Eine Untersuchung der Skalierungsstrategien Ergebnispräsentation Kolloquium Ralf Geschke FOM Köln 27.04.2009 Einleitung Vorgehensweise Ergebnisse Ausblick Gliederung Einleitung Vorgehensweise Ergebnisse Ausblick 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 2 Einleitung Vorgehensweise Ergebnisse Ausblick Einleitung Motivation und Zielsetzung „Web 2.0“ Technologien Konzepte Aktive Teilnahme Software Entwicklungsprozess Dienstleistung „beta“ Flexibilität Wachstum Erstellung von skalierbaren und flexiblen Web- Anwendungen mit Open Source Frameworks 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 3 Einleitung Vorgehensweise Ergebnisse Ausblick Einleitung Skalierbarkeit Definition: Hinzufügen von Ressourcen führt zu einer proportionalen Leistungssteigerung des Systems vertikale Skalierbarkeit Einsatz leistungsfähigerer Komponenten Vorteil: schnell, einfach Nachteil: Kosten, Leistungsgrenzen horizontale Skalierbarkeit Hinzufügen weiterer Einheiten Auslagerung Dienste Nachteil: höherer Aufwand in Applikationsebene Vorteil: nahezu unbegrenzt möglich, einzig „echtes“ Verfahren 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 4 Einleitung Vorgehensweise Ergebnisse Ausblick Vorgehensweise Auswahl Frameworks Ruby on Rails (Ruby) Django (Python) Symfony (PHP) Grails (Groovy / Java) Anwendungsfall News-System Erstellung mit PHP und Frameworks ohne Optimierungen mit Optimierungen Messung der Performance Nutzwertanalyse 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 5 Einleitung Vorgehensweise Ergebnisse Ausblick Vorgehensweise Anwendung Screenshot 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 6 Einleitung Vorgehensweise Ergebnisse Ausblick Vorgehensweise Optimierung und Messung Optimierung PHP: Memcache für Listen und Datensätze, File-Cache für Seiten Frameworks • Rails: Action-Caching • Django: Site-Cache • Symfony: Action-Caching • Grails: kein Caching, Optimierung ORM Benchmark-Test Tool „Siege“ Zugriff auf Übersichtsseiten, Detailseiten, Kommentarabgabe parallele Requests Lastverhalten 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 7 Einleitung Vorgehensweise Ergebnisse Ausblick Vorgehensweise Nutzwertanalyse Zielkriterien: Entwicklung Funktionalität Geschwindigkeit Support Zwei Szenarien Hohe Geschwindigkeit Geringer Entwicklungsaufwand 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 8 Einleitung Vorgehensweise Ergebnisse Ausblick Ergebnisse nicht optimierte Anwendung 100 90 80 70 60 s / s t 50 s e u q 40 e R 30 20 10 0 10 20 50 100 200 500 700 Parallele Requests PHP Rails Django Symfony Grails 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 9 Einleitung Vorgehensweise Ergebnisse Ausblick Ergebnisse optimierte Anwendung 900 800 700 600 s 500 / s t s e 400 u q e R 300 200 100 0 10 20 50 100 200 500 700 Parallele Requests PHP Rails Django Symfony Grails 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 10 Einleitung Vorgehensweise Ergebnisse Ausblick Ergebnisse Geschwindigkeitssteigerung 40 35 30 s / s t 25 s e u q e 20 R l h a z 15 n A g n 10 u r e g i e 5 t S 0 10 20 50 100 200 500 700 Parallele Requests PHP Rails Django Symfony Grails 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 11 Einleitung Vorgehensweise Ergebnisse Ausblick Ergebnisse Nutzwertanalyse 4 3,5 3 2,5 t r e 2 w z t u N 1,5 1 0,5 0 Hohe Performance Geringer Entw.-Aufwand Szenarien Django Symfony Rails Grails PHP-Lösung 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 12 Einleitung Vorgehensweise Ergebnisse Ausblick Ergebnisse und Beurteilung PHP Symfony schnellste Anwendung nach Geschwindigkeit in Ordnung Optimierung Entwicklung subjektiv gute Strukturierung möglich „holprig“ Rails Grails sehr langsam wenige Entwicklung in Ordnung Optimierungsmöglichkeiten Entwicklung gut Django schnellstes Framework subjektiv: funktioniert! 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 13 Einleitung Vorgehensweise Ergebnisse Ausblick Ausblick Frameworks Weiterentwicklung Frameworks Verschmelzung Rails und Merb: Rails 3 = Merb 2 PHP-Frameworks, z.B. • „Standard“ Zend Framework • SilverStripe CMS Framework • viele weitere... Django • Conditional View Processing • Multiple Database Support (GSOC 2009) Grails 1.1: Batch Fetching (Optimierung Lazy Loading) 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 14 Einleitung Vorgehensweise Ergebnisse Ausblick Ausblick „Hot Topics“ (verteilte) Key-Value-Speichersysteme Google BigTable Amazon SimpleDB Open Source: CouchDB, MongoDB, Project Voldemort... Asynchrone Systeme Vor-Generierung von Daten (Cronjob) Message-Queues Google App Engine Web Applications innerhalb Google Infrastruktur Python / Java Entwicklungs- und Laufzeitzumgebung Web-Server: Nginx, Lighttpd 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 15 Einleitung Vorgehensweise Ergebnisse Ausblick Vielen Dank... ...für Ihre Aufmerksamkeit! 27.04.2009 Ralf Geschke - Open Source Rapid Web Development Frameworks 16.