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

920 Aufrufe

Veröffentlicht am

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

0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
920
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
9
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

×