28
Elastische Skalierbarkeit für Web-Anwendungen Das Play!-Framework msg systems ag, 20.09.2012 1

Elastische Skalierbarkeit für Web-Anwendungen

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Elastische Skalierbarkeit für Web-Anwendungen

1

Elastische Skalierbarkeit für Web-Anwendungen

Das Play!-Framework

msg systems ag, 20.09.2012

Page 2: Elastische Skalierbarkeit für Web-Anwendungen

2 msg systems ag, 20.09.2012

Agenda

1. Anforderungen an moderne Web-Anwendungen

2. Das Play!-Framework

3. Beispiel Preisberechnungen

4. Zusammenfassung

Page 3: Elastische Skalierbarkeit für Web-Anwendungen

Autor/Datum über „Einfügen“ -> „Kopf-/Fußzeile“ anpassen3 msg systems ag, tt.mm.jj

Für moderne Web-Anwendungen sind die Nutzungsszenarien von größerer Bedeutung als eine umfassende Dialogsteuerung

Anforderungen an moderne Web-Anwendungen

Akka

Play

Betrieb• IaaS / PaaS• schwankende

Nutzung

Integration• Apps• Mash-Ups

Skalierbarkeit• fluktuierende

Nutzung• Wechselnder

Bedarf

Page 4: Elastische Skalierbarkeit für Web-Anwendungen

4 msg systems ag, 20.09.2012

Bild durch Klicken auf Symbol hinzufügen

Der Typesafe-Stack

Play

Akka

Scala

Java Virtual Machine

Fokus

Page 5: Elastische Skalierbarkeit für Web-Anwendungen

5 msg systems ag, 20.09.2012

• Basiert auf

• Implementiert in

• Bietet- Enge Integration mit dem Aktoren-Framework Akka- JPA Persistenz- Schlanke, gekapselte Laufzeit-Umgebung

• Ermöglicht- Horizontale, elastische Skalierbarkeit

Das Play!-Framework

Page 6: Elastische Skalierbarkeit für Web-Anwendungen

6 msg systems ag, 20.09.2012

Das Play!-Framework

• Convention over Configuration

• play new• play start

• Einheitliches Projekt-Layout

• Kurze Roundtrip-Zyklen (automatische Übernahme von Code-Änderungen)

Page 7: Elastische Skalierbarkeit für Web-Anwendungen

7 msg systems ag, 20.09.2012

Ein Play!-Projekt

Quelltext und Test-Klassen

Konfiguration für die Applikation

Konfiguration für den Build

öffentliche Ressourcen

Page 8: Elastische Skalierbarkeit für Web-Anwendungen

8 msg systems ag, 20.09.2012

Ein Beispiel - Preisberechnungen

Szenario

Use-Cases

Vorgehen

Ergebnis

Page 9: Elastische Skalierbarkeit für Web-Anwendungen

9

nicht-funktional

funktional

msg systems ag, 20.09.2012

• Pflege von Produkten, Komponenten und deren Preise

• Produktpreise hängen maßgeblich von Komponentenpreisen ab

• Neuer Preis für eine Komponente Preisaktualisierung für alle betroffenen Produkte

Preisberechnung – das Szenario

• Regelmäßige, schwankende Abfrage von Produktpreisen

• Unregelmäßige Aktualisierung von Komponentenpreisen im Batch

Szenario

Page 10: Elastische Skalierbarkeit für Web-Anwendungen

10 msg systems ag, 20.09.2012

• Abfrage von Produktpreisen

• Abfrage von aktuellen Komponentenpreisen

• Aktualisieren eines Komponentenpreises

• …

Preisberechnung – ein paar Anwendungsfälle

Page 11: Elastische Skalierbarkeit für Web-Anwendungen

11 msg systems ag, 20.09.2012

• Vorstellung der Gesamt-Architektur

• Definition der API

• Durchführung der Berechnung

Preisberechnung – das Vorgehen

Page 12: Elastische Skalierbarkeit für Web-Anwendungen

12 msg systems ag, 20.09.2012

• Vorstellung der Gesamt-Architektur

Preisberechnung – das Vorgehen

Persistenz

Controller

JPA

Aktoren / Akka

HTML, JavaScript, etc.

ausgespart

Fokus

Nur URL Designkeine GUI

Page 13: Elastische Skalierbarkeit für Web-Anwendungen

13 msg systems ag, 20.09.2012

• Definition der API – das Routing

Preisberechnung – das Vorgehen

Page 14: Elastische Skalierbarkeit für Web-Anwendungen

14 msg systems ag, 20.09.2012

• Definition der API – das Routing

Preisberechnung – das Vorgehen

Page 15: Elastische Skalierbarkeit für Web-Anwendungen

15 msg systems ag, 20.09.2012

• Definition der API – das Routing

Preisberechnung – das Vorgehen

Die URL inklusive dynamischer Parameter

/product/:name/price

/product/Rasenmaeher/price

Page 16: Elastische Skalierbarkeit für Web-Anwendungen

16 msg systems ag, 20.09.2012

• Definition der API – der Handler

Preisberechnung – das Vorgehen

die zugeordnete Handler-Methode

Page 17: Elastische Skalierbarkeit für Web-Anwendungen

17 msg systems ag, 20.09.2012

• Definition der API – der Handler

Preisberechnung – das Vorgehen

die zugeordnete Handler-Methode

Page 18: Elastische Skalierbarkeit für Web-Anwendungen

18 msg systems ag, 20.09.2012

• 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

werden

Skalierbarkeit mit Play

Page 19: Elastische Skalierbarkeit für Web-Anwendungen

19 msg systems ag, 20.09.2012

• Vorstellung der Gesamt-Architektur

Preisberechnung – das Vorgehen

Persistenz

Controller

JPA

Aktoren / Akka

HTML, JavaScript, etc.Nur URL Design

ausgespart

Fokus

OK

Page 20: Elastische Skalierbarkeit für Web-Anwendungen

20 msg systems ag, 20.09.2012

• 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 erreicht

Preisberechnung – das Vorgehen

Page 21: Elastische Skalierbarkeit für Web-Anwendungen

21 msg systems ag, 20.09.2012

• Durchführung der Berechnung

Preisberechnung – das Vorgehen

ComponentActor (Instance)

ProductActor

Recalculate

ProductActorProductActorProductActor (Instance)

Persistenz

ComponentController

Update

Asynchron!

Asynchron!

Page 22: Elastische Skalierbarkeit für Web-Anwendungen

22 msg systems ag, 20.09.2012

• Verwendung von Akka in einer JVM• Verteilung über mehrere JVM

• Verwendung von Messaging (ZeroMQ)

• Verwendung von Akka Cluster

Skalierbarkeit mit Aktoren

Page 23: Elastische Skalierbarkeit für Web-Anwendungen

23

Schreibender TeilLesender Teil

msg systems ag, 20.09.2012

Preisberechnung – Gesamtübersicht

Persistenz

ComponentActor

ProductActor

ComponentProduct

Synchron!

Asynchron!

Asynchron!

Page 24: Elastische Skalierbarkeit für Web-Anwendungen

24 msg systems ag, 20.09.2012

Preisberechnung – Deployment

Persistenz

fängt man klein an …

Ist die Domäne isoliert

Page 25: Elastische Skalierbarkeit für Web-Anwendungen

25 msg systems ag, 20.09.2012

Preisberechnung – Deployment

Persistenz

… und wächst

Ist die Domäne isoliert

Elastizität durch Hinzufügen von Play-Instanzen.Jede weitere Instanz über-nimmt Last. Einsatz eines zentralen Caches möglich.

Page 26: Elastische Skalierbarkeit für Web-Anwendungen

26 msg systems ag, 20.09.2012

Preisberechnung – Deployment

Persistenz

… werden Teile zusammengefasst

Gibt es Restriktionen

Bei sehr vielen Aktoren können diese zentralisiert werden. Play bedient die Clients und interagiert mit den (verteilten) Aktoren.

Page 27: Elastische Skalierbarkeit für Web-Anwendungen

27 msg systems ag, 20.09.2012

• 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

Zusammenfassung

Projekt-Beispiel und Folien:https://github.com/axelirriger/Informatik2012

Page 28: Elastische Skalierbarkeit für Web-Anwendungen

28

www.msg-systems.com

Vielen Dank für Ihre Aufmerksamkeit

msg systems ag, 20.09.2012

Axel Irriger

GB Telecommunications & Media Lead IT Consultant

Telefon: +49 6196 [email protected]

www.msg-systems.com