Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Elastische Skalierbarkeit für Web-Anwendungen    Das Play!-Framework1                                               msg sy...
Agenda        1. Anforderungen an moderne Web-Anwendungen        2. Das Play!-Framework        3. Beispiel Preisberechnung...
Anforderungen an moderne Web-Anwendungen        Für moderne Web-Anwendungen sind die Nutzungsszenarien von        größerer...
Der Typesafe-Stack                                Play        Fokus                                Akka                   ...
Das Play!-Framework         •   Basiert auf         •   Implementiert in         •   Bietet                 Enge Integrati...
Das Play!-Framework                          •   Convention over Configuration                          •   play new      ...
Ein Play!-Projekt                           Quelltext und                           Test-Klassen                        Ko...
Ein Beispiel - Preisberechnungen          Szenario                            Use-Cases                                   ...
Preisberechnung – das Szenario      Szenario                          •   Pflege von Produkten, Komponenten und deren     ...
Preisberechnung – ein paar Anwendungsfälle          •   Abfrage von Produktpreisen          •   Abfrage von aktuellen Komp...
Preisberechnung – das Vorgehen          •   Vorstellung der Gesamt-Architektur          •   Definition der API          • ...
Preisberechnung – das Vorgehen          •   Vorstellung der Gesamt-Architektur          Nur URL Design        HTML, JavaSc...
Preisberechnung – das Vorgehen          •   Definition der API – das Routing13                                            ...
Preisberechnung – das Vorgehen          •   Definition der API – das Routing14                                            ...
Preisberechnung – das Vorgehen          •   Definition der API – das Routing               Die URL inklusive dynamischer  ...
Preisberechnung – das Vorgehen                                                 die zugeordnete Handler-          •   Defin...
Preisberechnung – das Vorgehen                                                 die zugeordnete Handler-          •   Defin...
Skalierbarkeit mit Play           •   keine umfangreichen Sessions  dafür Caching           •   Wiederverwendung instanzi...
Preisberechnung – das Vorgehen          •   Vorstellung der Gesamt-Architektur          Nur URL Design        HTML, JavaSc...
Preisberechnung – das Vorgehen          •   Durchführung der Berechnung          •   Verwendung von Aktoren               ...
Preisberechnung – das Vorgehen          •   Durchführung der Berechnung          Component                            Asyn...
Skalierbarkeit mit Aktoren          •   Verwendung von Akka in einer JVM          •   Verteilung über mehrere JVM         ...
Preisberechnung – Gesamtübersicht                Lesender Teil                         Schreibender Teil          Product ...
Preisberechnung – Deployment                              Ist die Domäne isoliert                                 fängt ma...
Preisberechnung – Deployment                              Ist die Domäne isoliert                                 … und wä...
Preisberechnung – Deployment                               Gibt es Restriktionen                          … werden Teile z...
Zusammenfassung         •   Das Play!-Framework bietet eine solide Basis für moderne Web-             Anwendungen         ...
Vielen Dank für Ihre Aufmerksamkeit     Axel Irriger     GB Telecommunications & Media     Lead IT Consultant     Telefon:...
Nächste SlideShare
Wird geladen in …5
×

Elastische Skalierbarkeit für Web-Anwendungen

1.073 Aufrufe

Veröffentlicht am

Vortrag auf der Informatik 2012 zum Workshop "Architekturen für Services & Cloud Computing" des SOA Innovation Lab E.V.

  • Als Erste(r) kommentieren

Elastische Skalierbarkeit für Web-Anwendungen

  1. 1. Elastische Skalierbarkeit für Web-Anwendungen Das Play!-Framework1 msg systems ag, 20.09.2012
  2. 2. Agenda 1. Anforderungen an moderne Web-Anwendungen 2. Das Play!-Framework 3. Beispiel Preisberechnungen 4. Zusammenfassung2 msg systems ag, 20.09.2012
  3. 3. Anforderungen an moderne Web-Anwendungen Für moderne Web-Anwendungen sind die Nutzungsszenarien von größerer Bedeutung als eine umfassende Dialogsteuerung Betrieb • IaaS / PaaS • schwankende Nutzung Akka Skalierbarkeit Integration • fluktuierende Play • Apps Nutzung • Mash-Ups • Wechselnder Bedarf3 Autor/Datum über „Einfügen“ -> „Kopf-/Fußzeile“ anpassen msg systems ag, tt.mm.jj
  4. 4. Der Typesafe-Stack Play Fokus Akka Scala Java Virtual Machine4 msg systems ag, 20.09.2012
  5. 5. Das Play!-Framework • Basiert auf • Implementiert in • Bietet Enge Integration mit dem Aktoren-Framework Akka JPA Persistenz Schlanke, gekapselte Laufzeit-Umgebung • Ermöglicht Horizontale, elastische Skalierbarkeit5 msg systems ag, 20.09.2012
  6. 6. Das Play!-Framework • Convention over Configuration • play new • play start • Einheitliches Projekt-Layout • Kurze Roundtrip-Zyklen (automatische Übernahme von Code-Änderungen)6 msg systems ag, 20.09.2012
  7. 7. Ein Play!-Projekt Quelltext und Test-Klassen Konfiguration für die Applikation Konfiguration für den Build öffentliche Ressourcen7 msg systems ag, 20.09.2012
  8. 8. Ein Beispiel - Preisberechnungen Szenario Use-Cases Vorgehen Ergebnis8 msg systems ag, 20.09.2012
  9. 9. Preisberechnung – das Szenario Szenario • Pflege von Produkten, Komponenten und deren Preise • Produktpreise hängen maßgeblich von funktional Komponentenpreisen ab • Neuer Preis für eine Komponente  Preisaktualisierung für alle betroffenen Produkte • Regelmäßige, schwankende Abfrage von Produktpreisen nicht-funktional • Unregelmäßige Aktualisierung von Komponentenpreisen im Batch9 msg systems ag, 20.09.2012
  10. 10. Preisberechnung – ein paar Anwendungsfälle • Abfrage von Produktpreisen • Abfrage von aktuellen Komponentenpreisen • Aktualisieren eines Komponentenpreises • …10 msg systems ag, 20.09.2012
  11. 11. Preisberechnung – das Vorgehen • Vorstellung der Gesamt-Architektur • Definition der API • Durchführung der Berechnung11 msg systems ag, 20.09.2012
  12. 12. Preisberechnung – das Vorgehen • Vorstellung der Gesamt-Architektur Nur URL Design HTML, JavaScript, etc. keine GUI Controller Fokus Aktoren / Akka ausgespart JPA Persistenz12 msg systems ag, 20.09.2012
  13. 13. Preisberechnung – das Vorgehen • Definition der API – das Routing13 msg systems ag, 20.09.2012
  14. 14. Preisberechnung – das Vorgehen • Definition der API – das Routing14 msg systems ag, 20.09.2012
  15. 15. Preisberechnung – das Vorgehen • Definition der API – das Routing Die URL inklusive dynamischer Parameter /product/:name/price /product/Rasenmaeher/price15 msg systems ag, 20.09.2012
  16. 16. Preisberechnung – das Vorgehen die zugeordnete Handler- • Definition der API – der Handler Methode16 msg systems ag, 20.09.2012
  17. 17. Preisberechnung – das Vorgehen die zugeordnete Handler- • Definition der API – der Handler Methode17 msg systems ag, 20.09.2012
  18. 18. Skalierbarkeit mit Play • keine umfangreichen Sessions  dafür Caching • Wiederverwendung instanziierter Klassen für beliebige Aufrufe  keine lokalen Variablen oder ähnliches  Shared Nothing Ansatz  Beliebige Anzahl von Play-Instanzen können nebeneinander betrieben werden18 msg systems ag, 20.09.2012
  19. 19. Preisberechnung – das Vorgehen • Vorstellung der Gesamt-Architektur Nur URL Design HTML, JavaScript, etc. OK Controller Fokus Aktoren / Akka ausgespart JPA Persistenz19 msg systems ag, 20.09.2012
  20. 20. Preisberechnung – das Vorgehen • Durchführung der Berechnung • Verwendung von Aktoren Aktor repräsentiert eine Produkt-/Komponenteninstanz Aktor wird über Nachrichten angesprochen (vgl. Messaging/JMS) Aktor arbeitet gleichzeitig nur eine Nachricht ab • Es kann pro Objekt-Instanz eine Aktor-Instanz geben mit einer eigenen Message-Queue • Skalierbarkeit wird über Intra-JVM und Inter-JVM Verteilung erreicht20 msg systems ag, 20.09.2012
  21. 21. Preisberechnung – das Vorgehen • Durchführung der Berechnung Component Asynchron! Controller Recalculate Component ProductActor ProductActor Actor (Instance) ProductActor Product Update Actor (Instance) Asynchron! Persistenz21 msg systems ag, 20.09.2012
  22. 22. Skalierbarkeit mit Aktoren • Verwendung von Akka in einer JVM • Verteilung über mehrere JVM • Verwendung von Messaging (ZeroMQ) • Verwendung von Akka Cluster22 msg systems ag, 20.09.2012
  23. 23. Preisberechnung – Gesamtübersicht Lesender Teil Schreibender Teil Product Component Asynchron! ComponentActor Asynchron! Synchron! ProductActor Persistenz23 msg systems ag, 20.09.2012
  24. 24. Preisberechnung – Deployment Ist die Domäne isoliert fängt man klein an … Persistenz24 msg systems ag, 20.09.2012
  25. 25. Preisberechnung – Deployment Ist die Domäne isoliert … und wächst Elastizität durch Hinzufügen von Play-Instanzen. Jede weitere Instanz über- nimmt Last. Einsatz eines zentralen Caches Persistenz möglich.25 msg systems ag, 20.09.2012
  26. 26. Preisberechnung – Deployment Gibt es Restriktionen … werden Teile zusammengefasst Bei sehr vielen Aktoren können diese zentralisiert werden. Play bedient die Clients und interagiert mit den (verteilten) Aktoren. Persistenz26 msg systems ag, 20.09.2012
  27. 27. Zusammenfassung • Das Play!-Framework bietet eine solide Basis für moderne Web- Anwendungen „Shared Nothing“ Ansatz Fokus auf API-Design anstelle von GUI Integration mit Akka • Sehr kompakte und elegante Möglichkeit, Anwendungen auf verschiedene Cloud-Szenarien zu deployen Projekt-Beispiel und Folien: https://github.com/axelirriger/Informatik201227 msg systems ag, 20.09.2012
  28. 28. Vielen Dank für Ihre Aufmerksamkeit Axel Irriger GB Telecommunications & Media Lead IT Consultant Telefon: +49 6196 7750-5418 axel.irriger@msg-systems.com www.msg-systems.com www.msg-systems.com28 msg systems ag, 20.09.2012

×