Elastische Skalierbarkeit für Web-Anwendungen

Preview:

DESCRIPTION

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

Citation preview

1

Elastische Skalierbarkeit für Web-Anwendungen

Das Play!-Framework

msg systems ag, 20.09.2012

2 msg systems ag, 20.09.2012

Agenda

1. Anforderungen an moderne Web-Anwendungen

2. Das Play!-Framework

3. Beispiel Preisberechnungen

4. Zusammenfassung

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

4 msg systems ag, 20.09.2012

Bild durch Klicken auf Symbol hinzufügen

Der Typesafe-Stack

Play

Akka

Scala

Java Virtual Machine

Fokus

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

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)

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

8 msg systems ag, 20.09.2012

Ein Beispiel - Preisberechnungen

Szenario

Use-Cases

Vorgehen

Ergebnis

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

10 msg systems ag, 20.09.2012

• Abfrage von Produktpreisen

• Abfrage von aktuellen Komponentenpreisen

• Aktualisieren eines Komponentenpreises

• …

Preisberechnung – ein paar Anwendungsfälle

11 msg systems ag, 20.09.2012

• Vorstellung der Gesamt-Architektur

• Definition der API

• Durchführung der Berechnung

Preisberechnung – das Vorgehen

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

13 msg systems ag, 20.09.2012

• Definition der API – das Routing

Preisberechnung – das Vorgehen

14 msg systems ag, 20.09.2012

• Definition der API – das Routing

Preisberechnung – das Vorgehen

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

16 msg systems ag, 20.09.2012

• Definition der API – der Handler

Preisberechnung – das Vorgehen

die zugeordnete Handler-Methode

17 msg systems ag, 20.09.2012

• Definition der API – der Handler

Preisberechnung – das Vorgehen

die zugeordnete Handler-Methode

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

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

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

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!

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

23

Schreibender TeilLesender Teil

msg systems ag, 20.09.2012

Preisberechnung – Gesamtübersicht

Persistenz

ComponentActor

ProductActor

ComponentProduct

Synchron!

Asynchron!

Asynchron!

24 msg systems ag, 20.09.2012

Preisberechnung – Deployment

Persistenz

fängt man klein an …

Ist die Domäne isoliert

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.

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.

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

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 7750-5418axel.irriger@msg-systems.com

www.msg-systems.com

Recommended