KOSTENEFFIZIENTES CLOUD - BASIERTES COMPLEX EVENT PROCESSING
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Fakultät Informatik Institut für Systemarchitektur, Lehrstuhl Rechnernetze Diplomarbeit KOSTENEFFIZIENTES CLOUD - BASIERTES COMPLEX EVENT PROCESSING Lars Rödiger Matrikel - Nr.: 32 13 95 2 Betreut durch: Dr.-Ing. Groß (TU Dresden), Prof. Dr. Schill (TU Dresden) und: Dipl.-Inf. Thomas Heinze (SAP Research Dresden) Eingereicht am 14. August 2012
2
ERKLÄRUNG Ich erkläre, dass ich die vorliegende Arbeit selbständig, unter Angabe aller Zitate und nur unter Verwendung der angegebenen Literatur und Hilfsmittel angefertigt habe. Dresden, 14. August 2012 3
4
DANKSAGUNG An dieser Stelle möchte ich mich bei allen Personen bedanken, die mich bei der Erstellung dieser Arbeit unterstützt haben. Mein erster Dank geht an Prof. Dr. Schill für die Möglichkeit meine Diplomarbeit am Lehrstuhl für Rechnernetze zu schreiben. Ein besonderer Dank gilt meinen zwei Betreuern Thomas Heinze (SAP Research Dresden) sowie Dr. Groß (TU Dresden), die mit sehr viel Engagement, guten Ideen und unermüdlichem Einsatz meine Diplomarbeit betreuten. Des Weiteren danke ich meinen Kollegen bei SAP Research Dresden für das angenehme Arbeits- klima und die gute Zusammenarbeit. Nicht zuletzt danke ich meinen Freunden, meiner Familie und im Besonderen meiner Freundin ,die mir in den Monaten der Entstehung meiner Diplomar- beit immer wieder Mut zugesprochen haben und eine große Stütze für mich waren. 5
6
INHALTSVERZEICHNIS
1 Einleitung 11 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2 Rahmen und Zielstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 Hintergrund 17 2.1 Complex Event Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Cloud - basiertes Complex Event Processing . . . . . . . . . . . . . . . . . . . . . . 21 2.2.1 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2.2 Cloud - basiertes Complex Event Processing . . . . . . . . . . . . . . . . . . 22 2.3 Prototyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.1 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.2 Anfrage - Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.3 Operator - Platzierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.4 Kostenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.5 Kosteneffizienz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3 Verwandte Arbeiten 33 4 Analyse und Entwurf 37 4.1 Entwurf der Adaption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.1.1 Adaption der Initialen Platzierung . . . . . . . . . . . . . . . . . . . . . . . . 38 4.1.2 Adaption der Laufzeitplatzierung . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2 Identifikation und Analyse der Parameter . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.1 Parameter für die Initiale Platzierung . . . . . . . . . . . . . . . . . . . . . . 41 4.2.2 Parameter für die Laufzeitplatzierung . . . . . . . . . . . . . . . . . . . . . . 42 4.3 Suchalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.3.1 Genetic Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.2 Recursive Random Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8 Inhaltsverzeichnis
5 Implementierung 55 5.1 Adaption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.1.1 CostAdaption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.1.2 InitialCostAdaption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.1.3 RuntimeCostAdaption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2 Suchalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6 Evaluation 59 6.1 Evaluationskonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.2 Einflussanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.2.1 Parameter: plc, gran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.2.2 Parameter: llb, lub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.3 Skalierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.3.1 Laufzeitverhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.3.2 Kostenkonvergenz mit variierender Anzahl an Anfragen . . . . . . . . . . . 66 6.3.3 Allgemeines Konvergenzverhalten . . . . . . . . . . . . . . . . . . . . . . . 67 6.3.4 Kostenkonvergenz mit variierender Größe des Suchraums . . . . . . . . . . 71 6.4 Kosteneffizienz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 7 Fazit 75 7.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Inhaltsverzeichnis 9
10 Inhaltsverzeichnis
1 EINLEITUNG
1.1 MOTIVATION Die Auswertung von Informationen hat mit der Entwicklung der Informationstechnik, in unter- schiedlichen Bereichen stetig an Bedeutung gewonnen. John Naisbitt prägte bereits 1982 in [Nai82] den Satz „we are drowning in information, but we are starved for knowledge“. Mit dem in den letzten Jahren zu beobachtenden rapiden Anstieg der Informationsmenge in Unterneh- men gewinnt diese Aussage mehr und mehr an Gewicht. Die Menge der Daten, aus denen relevante Erkenntnisse gewonnen werden können ist dabei nicht die einzige Herausforderung. Kontinuierlich eintreffende Daten machen eine effiziente Verarbeitung erforderlich [Gar]. Ein typi- sches Beispiel sind Marktdaten, wie Aktien- oder Rohstoffpreise, welche fortlaufend in Form von Ereignissen eintreffen. Diese müssen zeitnah ausgewertet werden, um Chancen und Risiken frühzeitig zu erkennen und ggf. automatisch folgerichtige Entscheidungen zu treffen. Complex Event Processing (CEP) bildet die technologische Grundlage um eine Vielzahl konkur- rierender Anfragen über einer Menge kontinuierlich eintreffender Ereignisse in Echtzeit zu ver- arbeiten. Die zunehmenden Anforderungen hinsichtlich des Durchsatzes, geringer Latenzzeiten und der Menge der Anfragen erfordern eine skalierbare Lösung in Form eines verteilten CEP - Systems [Sto05]. Mit Cloud Computing findet sich ein praktikabler Ansatz, welcher in dem der Arbeit zugrundeliegenden Prototypen eingesetzt wird. Hinsichtlich der Charakteristika von CEP - Anwendungen stellen sich einer Reihe neuer Herausforderungen. Zum Einen ist eine geeignete Abbildung der Anfragen innerhalb der Cloud zu finden. Zum Anderen muss diese entsprechend variierender Anforderungen angepasst werden. Im Zusammenhang mit der für Cloud Computing typischen Pay - per - Use - Philosophie ist auch die wirtschaftliche Effizienz des Systems gefordert. Im Rahmen dieser Arbeit wird untersucht, wie sich diese durch eine geeignete Adaption des vor- handenen Prototypen steigern lässt. Dabei geht es zum Einen um die Analyse von Systempara- metern, welche einen Einfluss auf die Kosteneffizienz haben, zum Anderen um den Entwurf einer Adaptionsstrategie. Diese Strategie nimmt eine Parametrisierung des Prototypen zur Laufzeit vor mit dem Ziel die monetären Kosten zu minimieren. Die Wahl eines geeigneten Parameters erfor- dert dabei die effiziente Suche in einem potentiell sehr großen Suchraum. Des Weiteren ist eine Integration und Wiederverwendung des bestehenden Prototypen erforderlich. Im Nachfolgenden soll mit der Aufdeckung von Kreditkartenbetrug ein motivierendes Anwen- dungsszenario für Complex Event Processing beschrieben werden. Anwendungsszenario Die Motivation für den Einsatz von Complex Event Processing lässt sich anhand eines typischen Anwendungsszenarios, der Aufdeckung von EC- und Kreditkartenbetrug, beschreiben. Als Betrug wird an dieser Stelle die unberechtigte Verwendung eines Zahlungsmittels (EC- oder Kreditkarte) verstanden, z. B. infolge eines nicht gemeldeten Diebstahls. Die Aufdeckung eines solchen Be- trugs ist mittels automatischer Analyse von Transaktionen (Überweisungen, Abhebungen etc.) hinsichtlich verdächtiger Muster möglich. Abb. 1.1 skizziert einen potentiellen Ablauf von Transaktionsereignissen, welcher auf einen Be- trug schließen lässt. Die Ereignisse sind von oben nach unten zeitlich jünger werdend geordnet. Es sind zwei Abhebungen vom Konto 123 456 789 hervorgehoben. Das erste Ereignis beschreibt eine Abhebung in London am 2. Juni 2012 um 12:00 UTC1 , das zweite Ereignis eine Abhe- bung vom gleichem Konto eine halbe Stunde später in Berlin. In Anbetracht des zeitlichen und räumlichen Zusammenhangs der beiden Ereignisse erscheint die Abfolge nicht plausibel. Der Ortswechsel London - Berlin ist in einer Zeitspanne von 30 Minuten praktisch nicht durchführbar. Der Verdacht, dass zumindest eine der beiden Abhebungen einen Betrug darstellt liegt nahe. Ein solches Szenario lässt sich allgemein durch ein Muster formulieren. In Falle des angegebenen Beispiels beschreibt ein Muster den verdächtigen Ablauf, indem sämtliche Transaktionsereignisse 1 Universal Time Coordinated, koordinierte Weltzeit 12 Kapitel 1 Einleitung
Transaktionsereignisse Zeit Transaktion: Abhebung am Geldautomaten Zeit: 02.06.2012 12:00 UTC Ort: London Kto: 123456789 Betrag: 100.00$ $ Transaktion: Abhebung am Geldautomaten Bank Zeit: 02.06.2012 12:30 UTC Ort: Berlin Kto: 123456789 Betrag: 400.00$ Abbildung 1.1: Anwendungsszenario: Aufdeckung von EC- und Kreditkartenbetrug der gleichen Kontonummer vereint werden und anschließend zeitlich und räumlich korreliert einer Plausibilitätsprüfung unterworfen werden. Dieses Muster beschreibt einen von vielen möglichen Fällen, welche auf EC- bzw. Kreditkartenbetrug hinweisen können. Als Reaktion auf das Erkennen eines verdächtigen Musters sollten umgehend entsprechende Maßnahmen eingeleitet werden, um weiteren Schaden zu vermeiden. Z. B. könnte eine konkrete Maßnahme die sofortige Sper- rung des Zahlungsmittels sowie die Benachrichtigung des betreffenden Kontoinhabers umfassen. Ein weiterer Anwendungsfall ist mit Financial Monitoring gegeben. Bei diesem ist eine Menge an Benutzern an der Auswertung von Börsenereignissen interessiert. In den kontinuierlich ein- treffenden Ereignissen wird nach einer Vielzahl von Mustern gesucht, welche durch die Benutzer in Form von Anfragen beschrieben sind. Dieser Anwendungsfall erfordert eine zeitnahe, schnelle Auswertung im Sinne einer Analyse bzw. Überwachung. Die riesige Menge an Ereignissen muss in Echtzeit verarbeitet, aufbereitet und in geeigneter Form dargestellt werden. Diese Forderung nach geringen Latenzzeiten, hohen Durchsatzraten sowie der Verarbeitung einer variierenden Menge konkurrierender Anfragen, ist charakteristisch für CEP - Anwendungen im Allgemeinen und für den Anwendungsfall Financial Monitoring im Besonderen. 1.1 Motivation 13
1.2 RAHMEN UND ZIELSTELLUNG Die vorliegende Arbeit soll einen bestehenden Prototyp hinsichtlich der Steigerung der Kosteneffi- zienz untersuchen. Der Prototyp implementiert ein CEP - System auf Basis von Cloud Computing und wurde im Rahmen des europäischen Forschungsprojekts SRT-15 entwickelt. Die Arbeiten [Ji11][Mey12][Hei11] untersuchen verschiedene Fragestellungen im Zusammenhang mit dem Pro- totypen, insbesondere die Verteilung von Anfragen innerhalb der Cloud und die Berechnung von monetären Kosten. Im Ergebnis bilden diese die Grundlage für die vorliegende Untersuchung. Zielstellung der vorliegenden Arbeit ist die Wiederverwendung, Anpassung und Erweiterung des bestehenden Prototypen um eine kosteneffiziente Ereignisverarbeitung zu erreichen. Die Arbeit gliedert sich in folgende Aufgaben. Identifikation von Parametern Der bestehende Prototyp verwendet Heuristiken, welche durch Reihe von Parametern angepasst werden können. Ein Teil der vorliegenden Arbeit ist die Identifikation solcher Parameter und eine anschließende Analyse hinsichtlich des Einflusses auf die Kosteneffizienz. Der Prototyp soll des Weiteren erweitert werden, so dass einer Parametrisierung zur Laufzeit sowie die Berechnung der Kosten auf Basis einer Parameterkonfiguration möglich wird. Umsetzung eines geeigneten Suchverfahrens Die zu untersuchenden Parameter haben komplexe Abhängigkeiten und ergeben einen potentiell sehr großen Suchraum, für welchen eine erschöpfende bzw. vollständige Suche keine Lösung darstellt. Aus diesem Grund soll ein passendes Suchverfahren ermittelt und umgesetzt werden. Eine effektive und effiziente Suche soll erzielt werden. Entwurf und Umsetzung einer Adaptionsstrategie Schwerpunkt der Arbeit liegt in der Ausarbeitung einer geeigneten Adaptionsstrategie. Die Ad- aption soll zur Laufzeit mit Hilfe des gewählten Suchalgorithmus eine Parameterkonfiguration ermitteln und untersuchen ob mit dieser eine Kostenreduktion erzielt werden kann. Des Wei- teren soll die Fragestellung untersucht werden, wann eine Adaption zu untersuchen und wann diese durch Rekonfiguration des Systems umzusetzen ist. Als Ergebnis soll eine prototypische Implementierung entstehen, welche Teile des bestehenden Prototypen wiederverwendet und diesen um die Adaption erweitert. Evaluation In der Evaluation sollen die Ergebnisse der Ausarbeitung anhand geeigneter Evaluationsszenarien gezeigt werden. Dies betrifft insbesondere den Einfluss der Parameter, die Skalierbarkeit sowie die Kosteneffizienz. Des Weiteren sollen Grenzen und Verbesserungen des ausgearbeiteten An- satzes diskutiert werden. 14 Kapitel 1 Einleitung
1.3 AUFBAU DER ARBEIT Der Aufbau der vorliegenden Arbeit gestaltet sich wie folgt. Kapitel 2 stellt alle zum Verständ- nis notwendigen Begriffe, Konzepte, Methoden und Technologien vor. Das Kapitel 3 gibt einen Überblick über verwandte Arbeiten, diskutiert deren Ansätze und vergleicht diese mit der Ziel- stellung der vorliegenden Arbeit. Die Analyse, sowie das in dieser Arbeit entstandene Lösungs- konzept werden ausführlich im Kapitel 4 behandelt. Anschließend beschreibt Kapitel 5 Details der Umsetzung des Entwurfs, sowie notwendige Anpassungen des bestehenden Prototypen. Das Kapitel 6 diskutiert die Ergebnisse unter den Aspekten: Einfluss der Parameter, Skalierbar- keit und Kosteneffizienz. Die Arbeit schließt mit dem Kapitel 7 ab, in welchem die Ergebnisse zusammengefasst werden und ein Ausblick auf weitere Fragestellungen gegeben wird. 1.3 Aufbau der Arbeit 15
16 Kapitel 1 Einleitung
2 HINTERGRUND
Das folgende Kapitel bildet den Hintergrund der vorliegenden Arbeit, definiert Begriffe und stellt Konzepte, Methoden sowie Technologien vor, mit dem Ziel ein einheitliches Vokabular und Ver- ständnis zu schaffen. Abschnitt 2.1 gibt einen Überblick zur Thematik CEP und stellt diese als technologischen Ansatz zur Verarbeitung kontinuierlicher Ereignisströme dar. Im Abschnitt 2.2 wird Cloud Computing zunächst allgemein als Lösung für skalierbare elastische Anwendungen behandelt und anschließend unter dem Aspekt CEP diskutiert. Abschluss bildet der Abschnitt 2.3, indem der bestehende Prototyp hinsichtlich der Architektur, der Komponenten und deren Zusammenwirken vorgestellt wird. 2.1 COMPLEX EVENT PROCESSING Der Begriff Complex Event Processing (kurz CEP) wurde vor rund 10 Jahren durch David Luckham [Luc01] geprägt und beschreibt eine Softwaretechnologie, welche Operationen auf einer Menge von Ereignissen durchführt und diese schrittweise in komplexe Ereignisse überführt. Operatio- nen, welche Verarbeitungsschritte auf Ereignissen definieren sind u. a. Konstruktion, Transfor- mation und Abstraktion. Im Abschnitt 1.1 wurden mit der Aufdeckung von EC- bzw. Kreditkar- tenbetrug und Financial Monitoring bereits zwei konkrete Anwendungsfälle für CEP dargestellt. Weitere typische Anwendungsbereiche sind Business Activity Monitoring, Sensornetzwerke und Supply Chain Management. CEP ist dem Architekturstil Ereignis gesteuerte Architekturen zugeordnet, in dem Ereignisse das zentrale Konzept bilden. Die nachfolgende Ausführung lehnt sich vor Allem an den Arbeiten [BD10][Luc01] an. Ereignis Ein Ereignis beschreibt eine Beobachtung eines Zustandes bzw. einer Zustandsände- rung eines Objektes. Ereignisse werden mit einem zeitlichen Bezug in Form eines Zeit- punktes (point in time) oder einer Zeitspanne (interval based) verknüpft. Typische Ereignisse im Zusammenhang mit CEP sind u. a. Signale von RFID Sensoren, der Eingang einer Be- stellung und das Auftreten einer Börsenaktivität. Ereignisse lassen sich durch Schemata klassifizieren. Diese sind durch eine Menge von Attributen eindeutig definiert. Abb. 2.2 a) zeigt ein vereinfachtes Schema für eine Klasse von Börsenereignissen. Allgemein besteht ein CEP - System aus einem Netzwerk von Verarbeitungseinheiten, welches Ereignisquellen mit Ereignissenken verbindet. Die Verabeitungseinheiten werden im Folgenden als CEP - Komponenten 1 bezeichnet. Ereignisquellen erzeugen kontinuierlich Ereignisse, die u. a. durch Vorgänge, Aktivitäten oder Entscheidungen motiviert sein können. Diese zumeist einfachen Ereignisse werden durch CEP - Komponenten verarbeitet und führen letztendlich in Ereignissen- ken zu Reaktionen. Beispiele für solche Reaktionen sind u. a. Visualisierungen in Dashboards, die Steuerung von Geschäftsprozessen, Aktualisieren von Relationen in Datenbanken oder wie im Anwendungsfall im Abschnitt 1.1 beschrieben, das Sperren einer Kreditkarte. In Anlehnung an [BD10, S. 49f, 61ff] kann CEP durch drei aufeinanderfolgende Schritte beschrie- ben werden, welche sich in der Architektur als Schichten widerspiegeln. 1. Erkennen (Sense) Erkennen von Ereignissen aus der Umwelt und (unmittelbares) Generieren entsprechender Ereignisobjekte. Dieser Schritt entspricht der Schicht Ereignisquellen. 2. Verarbeiten (Process bzw. Analyze) Verarbeiten von Ereignissen, u. a. durch Abstraktion, Aggregation, Korrelation, Klassifikation und Filterung. Die Schicht Ereignisverarbeitung umfasst diesen Schritt. 18 Kapitel 2 Hintergrund
Ereignisverarbeitung Ereignisströme (eing.) Ereignisströme (ausg.) Ereignisbehandlung Ereignisquellen CEP-Komponenten Ereignisstrom eing.-eingehend ausg.-ausgehend Abbildung 2.1: Schichten in einem CEP - System 3. Reagieren (Respond) Veranlassen von definierten Reaktionen in der Schicht Ereignisbehandlung/Ereignissenken. Reaktionen können auch die Rückkopplung zur Schicht Ereignisquellen beinhalten. Abb. 2.1 stellt die Schichtenarchitektur eines CEP - Systems mit den Schichten Ereignisquellen, Ereignisverarbeitung und Ereignisbehandlung dar. Die softwaretechnische Basis für die Ausfüh- rung von CEP - Anwendungen bilden so genannte CEP - Engines. In einem CEP - System erfolgt die Kommunikation grundlegend asynchron durch Publish-Subsribe2 . Daten, welche über Kanäle zwischen CEP - Komponenten ausgetauscht werden, haben im Allgemeinen die Form von Ereig- nisströmen. Ereignisstrom Ein Ereignisstrom ist eine linear geordnete Sequenz von Ereignissen. Das Ord- nungskriterium ist in der Regel der Zeitstempel der Ereignisse. Ereignisströme können entweder endlich, durch ein Zeitfenster oder ein anderes Kriterium begrenzt oder unendlich bzw. unbegrenzt sein. Technisch gesehen ist die Verarbeitung unbegrenzter Ereignisströme nicht möglich. Intern erfolgt aus diesem Grund eine Abbildung auf einen endlichen Strom durch ein zeitlich oder mengenmäßig beschränktes Fenster (engl. Sliding Window). Die Verarbeitung von Ereignisströmen wird als Event Stream Processing (ESP) bezeichnet. Der Unterschied zwischen ESP und CEP ist nach [BD10, S. 57] konzeptionell. In der vorliegenden Arbeit wird CEP ausschließlich unter dem Aspekt von Ereignisströmen behandelt. Unter dieser Betrachtung kann CEP, wie im Abschnitt 1.1 bereits dargestellt, als Mustersuche über den einge- henden Ereignisströmen verstanden werden. Die Muster sind dabei im Vorfeld bekannt 3 und können in Form von Ereignismustern spezifiziert werden. Ereignismuster Ereignismuster beschreiben Beziehungen zwischen Ereignissen, welche in ei- nem festgelegten (fachlichen) Kontext relevant sind. [LSA+ 08] definiert Ereignismuster for- mal als Menge von Schablonen (Templates), welche mit relationalen Operatoren verknüpft werden. Templates beschreiben mittels Variablen eine Menge von Ereignissen. 1 [Luc01] bezeichnet diese als Event Processing Agents und das Netzwerk als Event Processing Network 2 Eine Besonderheit diesbezüglich ist, dass die Vernetzung der Komponenten als lose gekoppelt angesehen werden kann. Der Zeitpunkt der Verarbeitung ist jedoch durch Kohäsion gekennzeichnet, da eine zeitnahe Verarbeitung der Ereig- nisse gefordert wird. 3 In [EB09] wird darauf verwiesen, dass CEP auch dazu verwendet wird unbekannte Muster zu erkennen, z. B. in Form von Data Mining oder maschinellem Lernen. 2.1 Complex Event Processing 19
Ereignismuster sind ein wesentliches Konzept von CEP und bilden in der Summe einen wichti- gen Teil der Fachlogik im Gesamtsystem ab. Die Muster werden in einer speziellen Beschrei- bungssprache formuliert. [EB09] unterscheidet Kompositionsoperatoren, Produktionsregeln und Datenstrom - Anfragesprachen 4 . Für die vorliegende Arbeit sind letztere von Interesse, speziell die deklarative Beschreibung durch die Continous Computing Language (CCL) [Syb]. Im Zusam- menhang dieser, werden die zu suchenden Ereignismuster durch kontinuierliche Anfragen (engl. Continous Queries) gekapselt. Anfrage (Query) Eine Anfrage im Sinne von CEP beschreibt die Suche nach einem Ereignismu- ster über einem oder mehreren Ereignisströmen, welche im Vorfeld offline oder zur Laufzeit ad - hoc durch einen Anwender formuliert wird. Die Ausführung einer Anfrage kann einmalig für einen festgelegten Zeitpunkt oder kontinuierlich über einen gewissen Zeitraum stattfin- den. Letzteres ist typisch für CEP. CCL orientiert sich an Konzepten von SQL und erweitert diese insbesondere um die Darstellung von Datenströmen sowie um eine temporale und sequentielle Semantik. Im Unterschied zu SQL oder anderen klassischen Datenbankanfragesprachen arbeitet CCL auf einem kontinuierlichen, flüchtigen Datenstrom. Die in CCL formulierten Anfragen sind des Weiteren überwiegend lang- laufend statt einmalig. Zur Laufzeit verarbeiten CEP - Systeme häufig eine Vielzahl von Anfragen gleichzeitig, wobei die Menge der Anfragen im System dynamisch ist. D. h. Anwender können zur Laufzeit neue Anfragen hinzufügen und entfernen. Abb. 2.2 zeigt eine CCL - Anfrage zur Berechnung einer Candlestick - Darstellung für Börsenereig- nisse. Die Anfrage berechnet den minimalen und maximalen, sowie den ältesten und aktuellsten Preis innerhalb der letzten 60 Sekunden des Symbols DE0007164600 über dem Ereignisstrom In. Die Ergebnisse sind werden wiederum in Form von Ereignissen in den Ereignisstrom Out eingefügt. a) Ereignisschema b) CCL-Anfrage String comp; Insert into Out double tick; Select min(price), max(price), first(price), last(price) long time; From In Within 60 seconds Where symbol = ‘DE0007164600‘; c) Anfragegraph Strom In Strom Out Quelle Q1 Senke S1 Filter F1 Aggregation A1 Selektion Sel2 Ereignisstrom Operator Abbildung 2.2: Anfrage zur Berechnung einer Candlestick - Darstellung 4 Eine verbreitete Datenstrom - Anfragesprache ist CQL, Continous Query Language[AB06]. 20 Kapitel 2 Hintergrund
Der eingehende Ereignisstrom StreamQ1 besteht aus den Attributen symbol, price und volume. Das zugehörige Schema ist unter 2.2 a) angegeben. Die Anfrage zur Berechnung der Candle- stick - Darstellung in CCL zeigt Abb. 2.2 b). Wie in Abb. 2.2 c) dargestellt lassen sich Anfragen als gerichteter, zusammenhängender, azyklischer Graph verstehen. Sämtliche Kanten entsprechen Ereignisströmen und innere Knoten repräsentieren Operatoren aus denen die Anfrage zusam- mengesetzt ist. Wie am Beispiel dargestellt gibt es unterschiedliche Typen von Operatoren. U. a. Filter - Operatoren, mit denen Ereignisströme nach bestimmten Bedingungen gefiltert werden können und Aggregations - Operatoren, mit denen sich Informationen über einer Menge von Er- eignissen zusammenfassen lassen. Sämtliche im System befindliche Anfragen können ebenfalls als gerichteter azyklischer (ggf. nicht zusammenhängender) Graph beschrieben werden. Dieser spezifiziert den Datenfluss im CEP - System und wird im Folgenden als globaler Anfragegraph bezeichnet. Hintergrund der vorliegenden Arbeit ist die Untersuchung eines elastischen CEP - Systems auf Basis von Cloud Computing. Der nachfolgende Abschnitt gibt einen kurzen Überblick zum Thema Cloud Computing. 2.2 CLOUD - BASIERTES COMPLEX EVENT PROCESSING CEP - Systeme verarbeiten eine Vielzahl nebenläufiger Anfragen auf einer Menge von Ereignis- strömen. Die zunehmenden Anforderungen bezüglich geringer Latenzzeiten sowie hoher Durch- satzmengen erfordern eine parallele Ausführung in Form eines verteilten Systems [Sto05]. Der bestehende Prototyp verwendet Cloud Computing um das CEP - System auf mehrere Ressour- cen zu verteilen. Bevor die Besonderheiten von Cloud basierenden CEP - Systemen diskutiert werden, wird Cloud Computing als Paradigma kurz vorgestellt. 2.2.1 Cloud Computing Für die Klärung des Begriffs Cloud Computing und die anschließende Darstellung der Eigenschaf- ten und Konzepte soll die in Fachkreisen oft zitierte Definition [Mel11] des National Institute of Standards and Technology (NIST) als Einstieg dienen. Cloud Computing Cloud computing is a model for enabling ubiquitous, convienient, on - demand network access to a shared pool of configurable computing resources (e. g. networks, ser- vers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Der Definition zufolge liegt der Fokus von Cloud Computing auf der einfachen, dem Bedarf an- gepassten, flexiblen Bereitstellung von (Rechner-) Ressourcen. Ressourcen sind dabei u. a. Netz- werk, Speicher, Anwendungen, Dienste und Server. [Mel11] charakterisiert Cloud Computing u. a. anhand folgender Eigenschaften. Es existiert einen Pool von Rechnerressourcen, welcher durch einen Provider verwaltet und bereitgestellt wird. Ressourcen können nach Bedarf über einen standardisierten Zugriffsmechanismus angefordert werden. Die Beschaffung sowie die Freigabe der Ressourcen kann elastisch und schnell erfolgen, um den Anforderungen der Anwendung ge- recht zu werden. Weiterhin scheinen die zur Verfügung stehenden Ressourcen aus Sicht des Kunden unbegrenzt. Die Ressourcennutzung ist für die Kunden und den Anbieter in dem Sinne transparent, dass diese gemessen, überwacht und letztendlich gesteuert werden kann. Cloud Computing ermöglicht dabei nicht nur neue Ressourcen im Sinne einer Aufwärtsskalierung hinzuzufügen, sondern auch nicht mehr benötigte Ressourcen freizugeben (Abwärtsskalierung). 2.2 Cloud - basiertes Complex Event Processing 21
Last Variierende Last Statische Ressourcen- bereitstellung Under-Provisioning Elastische Ressourcen- bereitstellung Over-Provisioning Zeit Abbildung 2.3: Statische und Elastische Ressourcenbereitstellung Diese Eigenschaft wird als Elastizität bezeichnet. Abb. 2.3 veranschaulicht den Begriff beispielhaft für die Anpassung der Ressourcen an eine zeitlich variierende Last. Im Vergleich ist die, für kon- ventionelle Rechenzentren typische, statische Bereitstellung von Ressourcen dargestellt. Diese kennt folgende Probleme. Die variierenden Lastanforderungen sind im Allgemeinen nicht bekannt und lassen sich nur schwer abschätzen. Dennoch muss eine Anzahl von Ressourcen festge- legt werden, welche diesen Anforderungen gerecht wird. Eine Unterschätzen (Under - Estimate) der aufkommenden Last kann zu Verletzungen zugesicherter Systemeigenschaften führen. Z. B. kann die Latenzzeit einen maximalen Wert überschreiten. In diesem Fall, in dem die verwen- deten Ressourcen den Anforderungen nicht genügen, wird von Under - Provisioning gesprochen. Darüber hinaus kann eine Überschätzen (Over - Estimate) der notwendigen Ressourcen eine ge- ringere Auslastung der Ressourcen zur Folge haben. Die zur Verfügung stehenden Ressourcen werden nicht effizient genutzt. Dies bezeichnet man mit Over - Provisioning. Aus wirtschaftlicher Sicht sollte Over - Provisioning vermieden werden, indem ungenutzte Ressourcen freigegeben werden. Ideal ist eine dynamische Anpassung der Ressourcen entsprechend dem tatsächlichen Bedarf, so dass einerseits genügend Ressourcen zur Verfügung stehen um den Anforderungen gerecht zu werden und andererseits die Ressourcen wirtschaftlich effizient eingesetzt werden. Diese Ziele werden durch Elastic Provisioning umgesetzt. Aus der Elastizität sowie, der für Cloud Computing charakteristischen Pay - per - Use - Philosophie ergeben sich gegenüber dem Einsatz konventioneller Rechenzentren eine Reihe von Vorteilen und Chancen. Auf der anderen Seite sind neue Herausforderungen und Probleme zu bewältigen. Für die vorliegende Arbeit spielt vor Allem der wirtschaftliche Aspekt, die Einsparung finanzieller Ausgaben eine Rolle. Im Folgenden Abschnitt wird Cloud Computing unter dem Aspekt CEP behandelt. 2.2.2 Cloud - basiertes Complex Event Processing Wirtschaftlichkeit sowie Elastizität sind treibende Faktoren für den Einsatz von Cloud Computing, so auch für CEP. Abb. 2.4 zeigt eine stark vereinfachte Darstellung eines Cloud - basierten CEP - Systems und damit des bestehenden Prototypen. Das System verwendet ein Netzwerk von Ressourcen innerhalb der Cloud um Anfragen der CEP - Anwendung auszuführen. Ereignisströme 22 Kapitel 2 Hintergrund
Anfragen CEP in der Cloud Ereignisströme (eing.) Ereignisströme (ausg.) Ereignisstrom eing.-eingehend ausg.-ausgehend Abbildung 2.4: Cloud - basiertes CEP - System (stark vereinfacht) unterschiedlicher Quellen dienen als Eingangdaten. Als Ergebnis liefert das System wiederum Ereignisströme. Die Last im CEP - System und folglich der Bedarf an Ressourcen sind im Wesentlichen durch zwei Faktoren bestimmt. Zum Einen entsteht durch die kontinuierlich eintreffenden Ereignisse eine Last, welche sich im CEP - System unterschiedlich verteilt. Zum Anderen schwankt die Anzahl der Anfragen im System mit den Anforderung der Benutzer, die diese formulieren. Im Folgenden wird diese Charakteristik als Dynamik des Systems bezeichnet. Elastizität befasst sich mit die- ser Dynamik und kann im Zusammenhang mit CEP auf unterschiedlichen Ebenen verschiedener Granularität abgebildet werden. [Hei11] unterscheidet dabei mit abnehmender Granularität die Abbildung auf Engine-, Anfrage und Operator - Ebene. Für den bestehenden Prototypen wurde die Operator - Ebene gewählt, welche im Folgenden kurz erklärt wird. Beim Hinzufügen einer Anfrage wird den logischen Operatoren jeweils eine Menge von Ope- ratorinstanzen zugeordnet. Der eingehende Ereignisstrom wird dabei partitioniert und auf die Instanzen aufgeteilt. Anschließend werden die Ergebnisse zusammengefasst und den Instan- zen des bzw. der nachfolgenden logischen Operatoren bereitgestellt. In Abschnitt 2.3.3 ist dies in der Abb. 2.7 dargestellt. Im Rahmen der elastischen Ressourcenbereitstellung wird über eine Zuordnung von Operatorinstanzen zu den Cloud - Ressourcen entschieden. Diese Zuord- nung ändert sich aufgrund der Dynamik. Für die nachfolgenden Ausführungen wird der Begriff Momentaufnahme eingeführt. Dieser bezeichnet eine Aufnahme des Zustands des Systems zu einem festgelegten Zeitpunkt. Der Zustand umfasst dabei die Menge der im System laufenden Anfragen, deren Zuordnung und den Auslastungszustand sowie die Verteilung im CEP - System. Als Synonym wird z. T. auch Konstellation des Systems oder Systemzustand verwendet. Der nachfolgende Abschnitt beschreibt den Prototypen als Cloud - basiertes CEP - System mit den für die vorliegende Arbeit relevanten Details. 2.2 Cloud - basiertes Complex Event Processing 23
2.3 PROTOTYP 2.3.1 Überblick Der Prototyp, welcher im Rahmen dieser Arbeit angepasst und erweitert werden soll, realisiert ein verteiltes Cloud - basierentes CEP - System, welches mit variierenden Anforderungen elastisch skaliert. Im vorhergehenden Abschnitt wurde die grundlegende Idee hinter dem Prototypen be- reits skizziert. In diesem Abschnitt werden Details des Prototypen vorgestellt, welche für die vorliegende Arbeit von Interesse sind. Abb. 2.5 gibt einen Überblick über die Struktur des Proto- typen. Die wesentlichen Komponenten sind Anfrage - Optimierung (MQO), Operator - Platzierung, Cloud - basiertes CEP - System und Kostenberechnung (in der Abb. nicht dargestellt). Parameter- Anfrage hinzufügen/entfernen konfiguration Anfrage-Optimierung Operator-Platzierung x (MQO) Auslastungs- Platzierung ereignisse vornehmen Ereignisströme (eing.) Ereignisströme (ausg.) Cloud-basiertes CEP-System Ereignisstrom eing.-eingehend ausg.-ausgehend Abbildung 2.5: Struktur des Prototypen Das Zusammenspiel der einzelnen Komponenten gestaltet sich wie folgt: Benutzer können zur Laufzeit ad - hoc Anfragen hinzufügen bzw. entfernen. Diese Anfragen müssen in der Cloud ge- schickt auf Rechnerknoten platziert werden. Die Komponente Anfrage - Optimierung, welche im Abschnitt 2.3.2 näher beschrieben wird, versucht vor der Platzierung durch Wiederverwendung von bestehenden Anfragen oder Teilen davon eine Optimierung zu erreichen. Für die mit der neuen Anfrage hinzukommenden Operatoren wird anschließend die Zuordnung auf verfügbare Ressourcen berechnet. Dies ist Aufgabe der Komponente Operator - Platzierung. Letztendlich wird die berechnete Zuordnung in Form einer Platzierung in der Cloud vorgenommen. Die Plat- zierung neuer Anfragen als Teil der Operator - Platzierung wird im Folgenden als Initiale Platzie- rung bezeichnet. Durch variierende Lastanforderungen, welche sich im System unterschiedlich verteilt, ist eine dynamische Anpassung der Platzierung erforderlich. Dabei soll nicht vorrangig ein Lastausgleich erzielt werden, sondern eine effiziente Nutzung der Ressourcen im Sinne der elastischen Skalierung. Für die Berechnung der Platzierung sind Laufzeitinformationen über den aktuellen Zustand des Systems notwendig, insbesondere Informationen zur Auslastung der Rech- nerknoten und der darauf platzierten Operatorinstanzen. Dieser Informationsfluss erfolgt über die in Abb. 2.5 ersichtliche Rückkopplung durch Auslastungsereignisse. Die Komponente Operator - Platzierung berechnet aus den Laufzeitinformationen eine neue Platzierung bzw. Zuordnung der Operatorinstanzen. Im Nachfolgenden wird dieser Teil der Operator - Platzierung als Laufzeitplat- zierung bezeichnet. In Abschnitt 2.3.3 werden die Konzepte der Berechnung einer Platzierung nä- her besprochen. In Bezug auf die genannten Aufgaben sieht der Prototyp einen zentralen Ansatz 24 Kapitel 2 Hintergrund
vor. D. h. es werden alle notwendigen Informationen gesammelt und an einer zentralen Stelle verwaltet und ausgewertet. Mit Wirtschaftlichkeit und Kosteneffizienz ist neben der Elastizität ein weiteres wichtiges Ziel gesetzt. Die Berechnung sowie die Überwachung der entstehenden Kosten soll zum Einen Transparenz und zum Anderen eine potentielle Minimierung dieser ermög- lichen. Grundlage bildet ein generisches Kostenmodell, welches in Abschnitt 2.3.4 beschrieben wird. Im anschließenden Abschnitt 2.3.5 wird die Fragestellung zum Thema Kosteneffizienz dis- kutiert, welche durch die vorliegende Arbeit beantwortet werden soll. Zusammenfassend sind die wesentlichen Aspekte, welche durch den Prototypen abgedeckt wer- den: Anfrage - Optimierung, Operator - Platzierung sowie die in dieser Arbeit zu untersuchende Kosteneffizienz. Nachfolgend werden diese Aspekte vorgestellt und deren Relevanz für die vor- liegende Arbeit besprochen. 2.3.2 Anfrage - Optimierung Der Prototyp verwaltet eine Menge von Anfragen durch einen globalen Graphen (vgl. Abschnitt 2.1 ). Dieser Graph ist dynamisch und ändert sich durch Hinzufügen oder Entfernen von Anfragen zur Laufzeit. Dabei stellt sich die Frage, wie Anfragen im System repräsentiert und speziell wie neu hinzukommende Anfragen in den globalen Graphen eingefügt werden können. Letzteres wird als Query Merging bezeichnet. Es ist wahrscheinlich, dass neu hinzukommende Anfragen mit Teilen des bestehenden globalen Graphen überlappen und somit Teilergebnisse wiederver- wendet werden können. Folglich werden Ressourcen effizienter genutzt. Diese Optimierung des globalen Graphen wird in [Ji11] als Multi Query Optimization (MQO) bezeichnet. [Ji11] stellt einen inkrementellen, konservativ erweiternden Ansatz vor und optimiert diesen hin- sichtlich Effizienz und Skalierbarkeit. Abb. 2.6 verdeutlicht das Prinzip des inkrementellen Hin- zufügens einer Anfrage. Im oberen Teil der Abbildung ist der globale Anfragegraph dargestellt, welcher sämtliche im System laufenden Anfragen umfasst. Der untere Teil der Abbildung zeigt die neu hinzukommende Anfrage ebenfalls als Graph. Der MQO - Algorithmus sucht im globalen Graphen nach einer größtmöglichen Überlappung mit der neuen Anfrage. Im Beispiel besteht der größtmögliche Teilgraph, welcher wiederverwendet werden kann, aus der Ereignisquelle Q3 sowie dem nachfolgendem Filter Operator F3. Die Suche basiert auf dem Vergleich der Eigen- schaften der Ereignisströme. Z. B. ist eine Eigenschaft des ausgehenden Ereignisstroms eines Filter - Operators, dass dieser lediglich Ereignisse enthält, welche dem Filter genügen. Globaler Anfragegraph Merge-Punkt neue Anfrage Ereignisstrom Operator Abbildung 2.6: Beispiel für die Anfrage - Optimierung 2.3 Prototyp 25
[Ji11] untersucht Ereignisströme dabei nicht nur auf Gleichheit, sondern auch auf eine etwaige Teilmengenbeziehung (Subsumption). Dadurch lässt sich eine hohe Wiederverwendung errei- chen, selbst dann, wenn sich die Ereignisströme nicht vollständig gleichen. Effizienz erreicht [Ji11] durch verschiedene Strategien. So werden Ereignisströme auf die Menge der erzeugenden Ströme (Basisströme) abgebildet. Die Idee dahinter ist, dass zwei Ereignisströme nur dann ver- glichen werden müssen, wenn diese aus der selben Menge von Basisströmen gebildet wurden. Dadurch wird der Suchraum wesentlich verkleinert. Weiterhin werden Indizes, Tabellenstrukturen und Hash - Kodierung verwendet um die Geschwindigkeit der Suche zu erhöhen. Der in [Ji11] ausgearbeitete MQO - Ansatz reduziert den Ressourcenverbrauch durch Wiederver- wendung von Operatoren und minimiert somit die monetären Kosten. Der Nutzen erhöht sich dabei mit zunehmender Laufzeit der Anfragen. Der MQO - Algorithmus wird vor der Initialen Plat- zierung neuer Anfragen aufgerufen und spielt für die Laufzeitplatzierung keine unmittelbare Rolle. In der vorliegenden Arbeit soll der bestehende Algorithmus wiederverwendet und ggf. angepasst werden. 2.3.3 Operator - Platzierung Generell unterscheidet die Operator - Platzierung zwei Szenarien. Zum Einen müssen neue An- fragen, welche durch die Anfragen - Optimierung bereits im globalen Graphen eingefügt wurden, auf verfügbare Ressourcen verteilt werden. Ggf. müssen neue Ressourcen allokiert werden. Dies wird als Initiale Platzierung bezeichnet. Zum Anderen soll eine dynamische Platzierungs- strategie (Laufzeitplatzierung) eine elastische Skalierung ermöglichen. Wie bereits unter dem Punkt Elastizität in 2.2 beschrieben, ist eine Abbildung auf unterschiedlichen Ebenen möglich. Der bestehende Prototyp setzt eine feingranulare Skalierung auf Operator - Ebene um. Es erfolgt eine Zuordnung von Operatorinstanzen auf Rechnerknoten in der Cloud. Die (logischen) Operato- ren, aus denen einen Anfrage besteht, werden im Sinne einer parallelen Verarbeitung durch eine Menge semantisch equivalenter Operatorinstanzen in der Cloud repräsentiert. Die Verarbeitung der eintreffenden Ereignisse verteilt sich auf diese Operatorinstanzen. Abb. 2.7 skizziert das Pro- blem der Zuordnung bzw. Platzierung sowohl für die Initiale als auch für die Laufzeitplatzierung. In den nachfolgenden zwei Abschnitten werden diese separat diskutiert. Diese Trennung zwischen Initialer und Laufzeitplatzierung wird weiterhin in den nachfolgenden Kapiteln und Abschnitten fortgesetzt. (globaler) Anfragegraph CEP in der Cloud c ... logischer Operator a b Knoten1 Knoten2 Knoten3 Operatorinstanzen von F2 Ereignisstrom Operator Abbildung 2.7: Darstellung des Problems der Platzierung von Operatoren 26 Kapitel 2 Hintergrund
Initiale Platzierung Aufgabe der Initialen Platzierung5 ist die durch den Benutzer hinzugefügte Anfrage in der Cloud zu platzieren. Da im Vorfeld immer eine Optimierung durch den MQO - Algorithmus vorgenom- men wird, müssen lediglich diejenigen Operatoren der neuen Anfrage platziert werden, welche nicht durch Überlappung mit dem globalen Graphen wiederverwendet werden können. Für die Initiale Platzierung stellt sich vor Allem das Problem, dass im Vorfeld die Auslastung der neu hin- zukommenden Operatoren unbekannt ist. Aus diesem Grund ist keine exakte Berechnung der Anzahl der tatsächlich notwendig werdenden Ressourcen möglich. Als Lösung untersucht [Ji11] verschiedene Strategien um die Auslastung der neu hinzukommenden Operatoren abzuschätzen. Zum Einen ist dies eine auf Sampling basierende Methode, welche eine Menge von Samples aus realen Ereignissen abspielt und die Auslastung misst. Zum Anderen ist dies eine Schätzmethode, welche auf Basis von Messungen der Bearbeitungszeit eines Ereignisses sowie der Ereignisrate die Auslastung für den Worst - Case Zustand ableitet. Basierend auf den ermittelten geschätzten Auslastungswerten kann die Frage für die Abbildung der logischen Operatoren auf Operatorin- stanzen beantwortet werden (vgl. Abb. 2.7 a ). Nachdem die Anzahl der Operatorinstanzen pro logischem Operator feststeht, muss eine Zuordnung auf physikalische Ressourcen bzw. Rechner- knoten erfolgen (vgl. Abb. 2.7 b ). Dieses Problem lässt sich als eindimensionales Bin - Packing beschreiben und wird im Abschnitt 2.3.3 vorgestellt. Nach der Berechnung der Zuordnung wer- den die Operatorinstanzen in der Cloud platziert. Die neue Anfrage liefert anschließend gemäß ihrer Deklaration Ergebnisse über die eingehenden Ereignisströme. Die Initiale Platzierung erzielt im Allgemeinen kein Optimum in Bezug auf eine effiziente Ressour- cennutzung. Durch die Messung der Auslastung zur Laufzeit kann eine anschließende Laufzeit- platzierung und somit eine Optimierung erfolgen. Laufzeitplatzierung Die Laufzeitplatzierung6 befasst sich mit der Umstrukturierung und Migration von Operatorenin- stanzen innerhalb der Cloud mit dem Ziel, eine elastische Skalierung zu ermöglichen und Ressour- cen effizienter zu nutzen (vgl. Abb. 2.7 c ). Die Platzierung basiert auf der Messung von Laufzei- tinformationen zur Ressourcennutzung, welche in Form von Auslastungsereignissen übermittelt werden. In regelmäßigen Abständen wird erfolgt die Laufzeitplatzierung um eine Anpassung ent- sprechend der Dynamik im CEP System vorzunehmen. Das Problem gestaltet sich ähnlich der Initialen Platzierung als Bin - Packing mit dem Unterschied, dass sämtliche im System platzierten Operatorinstanzen Gegenstand der Berechnung sind. Ziel ist es, die Operatorinstanzen so zu verteilen, dass so wenig wie möglich Ressourcen verwendet werden. Die Laufzeitplatzierung un- terteilt sich in zwei Schritte. Zunächst werden stark ausgelastete Rechnerknoten identifiziert und eine entsprechende Teimenge von Operatorinstanzen auf andere Knoten migriert. Ggf. erfolgt an dieser Stelle eine Aufwärtsskalierung, indem neue Rechnerknoten angefordert werden. Nach diesem Schritt sind keine Rechnerknoten bezüglich der CPU -Auslastung überlastet. Im anschlie- ßenden Schritt wird versucht, Operatorinstanzen so zu verteilen, dass möglichst viele Ressourcen freigegeben werden können (Abwärtsskalierung). 5 in [Ji11] als Initial Placement bezeichnet 6 in [Ji11] als Runtime Placement bezeichnet 2.3 Prototyp 27
Bin - Packing Bin - Packing kann der kombinatorischen Optimierung zugeordnet werden und beschreibt allge- mein das Problem eine Menge von Objekten unterschiedlicher Größe auf eine minimale Anzahl von Behälter zu verteilen, ggf. unter Berücksichtigung von festgelegten Bedingungen [CGJ97] Die zuvor beschriebene Frage nach einer geschickten Zuordnung von Operatorinstanzen zu Rech- nerressourcen kann als eindimensionales Bin - Packing betrachtet werden. Dabei entsprechen die Rechnerressourcen den Behältern, die Objekte den Operatorinstanzen und die Eigenschaft der Größe der CPU -Auslastung. Weitere Bedingungen, wie z. B. das Einhalten der maximal ver- fügbaren Netzwerkbandbreite, werden explizit geprüft bevor eine Zuordnung getroffen wird. Im Prototypen sind acht verschiedene Varianten des Bin - Packing Algorithmus implementiert. Diese lassen sich unterteilen in First - Fit und Best - Fit Bin - Packing. Die First - Fit (FF) Strategie wählt den ersten Rechnerknoten, welcher den festgelegten Bedingungen genügt. Best - Fit (BF) hinge- gen wählt aus sämtlichen potentiellen Rechnerknoten, denjenigen aus, der nach einer Platzierung den geringsten Wert der noch verbleibenden Auslastung hat. Dadurch wird die Nutzung der Ressourcen maximiert. Im Weiteren gibt es die (nicht exklusiven) Ausprägungen Decreasing (D) und Prioritized (P). Erstere ordnet die Operatorinstanzen nach abnehmender Auslastung, so dass zuerst eine Zuordnung für Instanzen mit großer Auslastung erfolgt. Letztere berücksichtigt Nach- barschaftsbeziehungen der Operatorinstanzen mit dem Ziel, die Netzwerkauslastung sowie die Ende - zu - Ende Latenz zu reduzieren. Die acht implementierten Strategien sind: FF, FFD, FP, FFDP, BF, BFD, BDP, BFDP. 2.3.4 Kostenmodell Grundlage für die Adaption und letztendlich die Minimierung der monetären Kosten ist ein generi- sches Berechnungs- sowie Preismodell. Gemäß der Pay - per - Use - Philosophie und den Vertrags- bedingungen des Cloud - Anbieters entstehen Kosten für das laufenden Cloud - basierte CEP - System. Die Anbieter unterscheiden sich u. a. in der Menge der verfügbaren Ressourcentypen sowie der Abrechnung der Nutzung dieser. Der bestehende Prototyp abstrahiert von einem kon- kreten Anbieter, da ein allgemein gültiger (generischer) Ansatz gefordert ist. Im Folgenden wird dieses Kostenmodell mit den für die vorliegende Arbeit relevanten Details vorgestellt. Mit dem Ziel, ein generisches Kostenmodell zu formulieren, untersucht [Mey12] Preismodelle verschiedener Cloud - Anbieter. Das ausgearbeitete und in dem Prototyp verwendete Preismo- dell legt eine Normierung auf feste Bezugsgrößen fest, welche in der nachfolgenden Auflistung angegeben ist. • Kosten für die Nutzung eines CPU -Kerns pro Stunde • Kosten für die Nutzung von 1 GB Arbeitsspeicher pro Stunde • Kosten für ein- sowie ausgehender Netzwerkverkehr pro GB • einmalige Fixkosten Die Gesamtkosten ergeben sich als Summe der eben aufgelisteten Einzelkosten. Die Berechnung der monetären Kosten erfordert die Angabe eines Gegenstands, eines konkreten Preismodells sowie eines Zeitbezugs. Gegenstand der Berechnung kann u. a. ein logischer Operator, eine ein- zelne Anfrage oder der gesamte Anfragegraph sein. Je nachdem sind die Kosten anteilig, relativ bezogen zu den Gesamtkosten oder absolut. Der Zeitbezug definiert die Zeitspanne (eine Mi- nute, eine Stunde u. a. ), in der die Ressourcennutzung abgerechnet werden soll. Das konkrete Preismodell bildet die Konditionen eines speziellen Anbieters auf dem generischen Preismodell ab. Diese Abbildung besteht insbesondere aus der Normierung auf die bereits genannten Be- zugsgrößen. 28 Kapitel 2 Hintergrund
Die Ressourcennutzung wird über Laufzeitmessungen oder durch eine Schätzung ermittelt. Die Laufzeitmessung wird in Form von Auslastungsereignissen propagiert. Diese Auslastungsereig- nisse enthalten u. a. Informationen über die Auslastung bzw. Nutzung der Ressourcen CPU, Arbeitsspeicher sowie Netzwerk und beziehen sich auf eine Operatorinstanz. Des Weiteren wird auch die Zuordnung einer Operatorinstanz zu einem Rechnerknoten übermittelt. Ein Abbild des aktuellen Laufzeitzustands sämtlicher Operatorinstanzen ist durch die Menge der letzten Ausla- stungsereignisse gegeben. Dieses Abbild zusammen mit der Information über die Anfragen im System wird als Momentaufnahme verstanden und bildet eine wesentliche Grundlage für die Be- rechnung der monetären Kosten. Abb. 2.8 zeigt eine Momentaufnahme von zwei Rechnerknoten in der Cloud. Auf den Rechnerknoten sind Operatorinstanzen der Anfragen 1,2 und 3 platziert. Die Zugehörigkeit ist in der Abbildung farbig dargestellt. Für die Ressourcen CPU, Arbeitsspeicher sowie Netzwerk sind die aktuellen Auslastungen angegeben. Wie dargestellt, verteilt sich die Gesamtauslastung auf sämtliche auf dem Knoten platzierten Operatorinstanzen. So verteilt sich beispielsweise die CPU - Auslastung von 50% auf Rechnerknoten 1 mit 25%, 15% und 10% auf drei Operatorinstanzen. Entsprechend ergeben sich die Kosten für eine Operatorinstanz anteilig aus den Gesamtkosten für den Rechnerknoten, auf dem dieser läuft. Cloud Anbieter berech- nen letztendlich die Nutzung des kompletten Rechnerknotens, unabhängig von der tatsächlichen Auslastung auf diesem. Dies bedeutet wiederum, dass bei der Berechnung der relativen Kosten eine Skalierung der Gesamtauslastung eines Knotens auf 100% erfolgen muss. Z. B. werden die Kosten bezüglich der CPU - Auslastung der ersten Operatorinstanz (von links) auf Rechnerknoten 1 nicht mit 25% sondern mit 50% berechnet. Rechnerknoten 1 Rechnerknoten 2 CPU CPU CPU CPU PCPU PCPU RAM RAM RAM RAM PRAM PRAM Netzwerk Netzwerk Netin Netin Netout Netout Anfrage 1 Anfrage 2 Anfrage 3 Abbildung 2.8: Erklärung der Kostenberechnung Oftmals ist die Frage nach den Kosten einer speziellen Anfrage (für den Benutzer) von Interesse. Diese können als Summe der Kosten der einzelnen Operatorinstanzen berechnet werden. Dabei ist zu beachten, dass Operatorinstanzen von mehreren Anfragen gemeinsam verwendet werden können. Dies ist durch die mit der Anfrage - Optimierung erzielten Wiederverwendung möglich. In diesem Fall werden die Kosten der betreffenden Operatorinstanz zu gleichen Teilen auf die Anfragen verteilt. Weiterhin kann auch der gesamte globale Anfragegraph Gegenstand der Kostenberechnung sein. Dies entspricht der Summe der Kosten sämtlicher im System laufenden Anfragen. Die Kosten- berechnung ist Grundlage für den Vergleich von Kosten und somit auch der Minimierung dieser. 2.3 Prototyp 29
2.3.5 Kosteneffizienz Ziel der vorliegenden Arbeit ist die Steigerung der Kosteneffizienz durch eine geeignete Adaption des bestehenden Prototypen. Die Adaption erfolgt dabei über eine Parametrisierung der Plat- zierung. Die Wahl der Parameterkonfiguration beeinflusst die entstehenden monetären Kosten und somit die Kosteneffizienz. Der bestehende Prototyp arbeitet mit einer statischen Parameter- konfiguration, welche zur Laufzeit unverändert bleibt. Die Konfiguration ist mit Standardwerten gewählt und ist in Bezug auf Kosteneffizienz nicht für alle potentiell möglichen Konstellationen des sich ändernden Systemzustands optimal. Abb. 2.9 verdeutlicht das zu lösende Problem der geeigneten Parameterwahl anhand hypothe- tischer Kostenverläufe, welche sich aus verschiedenen Parameterkonfigurationen ergeben. Die Darstellung vergleicht für drei unterschiedliche Parameterkonfigurationen die Kostenentwicklun- gen über einen festgelegten Zeitraum. Die Kurven sind dabei Annahmen und dienen nur zur Erklärung des Problems. Des Weiteren sind aus Gründen der Darstellung nur drei Konfiguratio- nen aus der ggf. sehr großen Menge an Parameterkonfigurationen abgebildet. Die Abbildung zeigt, dass keine Parameterkonfigurationen zu allen Zeitpunkten optimal bezüglich der Kosten ist. Aufgabe der Adaption ist zu festgelegten Zeitpunkten möglichst effizient eine gute Parameter- konfiguration zu ermitteln. In Abb. 2.10 sind die minimalen Kosten aufgetragen. Die Adaption versucht durch Rekonfiguration des Systems die entstehenden Kosten in Richtung dieses Mini- mums zu verschieben. An dieser Stelle soll der Begriff Kosteneffizienz näher erläutert werden. Allgemein bezeichnet Ef- fizienz das Verhältnis zwischen Nutzen und Aufwand und wird nachfolgend unter dem Aspekt der Wirtschaftlichkeit behandelt. Der Aufwand ist durch die Berechnung und Durchführung der Adap- tion gegeben, der Nutzen entsprechend durch die potentiell mögliche Kostenreduktion. Gleichung 2.1 verdeutlicht diesen Zusammenhang. cohne − cmit ξ= (2.1) cAdaption Die monetären Kosten einer Umsetzung ohne Adaption sind mit cohne , die Kosten nach der hy- pothetischen Durchführung einer Adaption sind mit cmit gegeben. Die mögliche Kostenersparnis entspricht der Differenz der beiden Kostenwerte. Demgegenüber stehen die Kosten, welche für die Berechnung und Durchführung der Adaption aufgewandt werden müssen. Diese sind mit cAdaption bezeichnet. Das angegebene Verhältnis ξ ist ein Maß für die Kosteneffizienz. Ist ξ < 1 sollte eine Adaption verworfen werden, da die Kosten für die Adaption höher sind als deren Nut- zen. Ist ξ = 1 spricht man von Kostendeckung. Mit ξ > 1 ist ein wirtschaftlicher Vorteil gegeben, wenn die Adaption durchgeführt wird. Die Gleichung 2.1 ist nur eine vereinfachte Betrachtung der Zusammenhänge. So ist es allgemein schwierig eine Aussage über die Qualität einer ermittelten Adaption zu machen, da berücksichtigt werden muss, dass sich das System dynamisch ändert. Mit dem bestehenden Prototypen existiert, zum Zeitpunkt der Erstellung der vorliegenden Ar- beit, keine Methode die Kosten cAdaption zu berechnen. Des Weiteren ist keine Aussage über das zukünftige Verhalten des Systems in Form einer Prognose möglich. Eine Untersuchung die- ser beiden Sachverhalte wird in der vorliegenden Arbeit nicht angestrebt. Es werden aus diesem Grund folgende Annahmen getroffen: Die Kosten für eine Adaption werden als vernachlässigbar klein angenommen. D. h., dass für die Entscheidung der Durchführung einer Adaption lediglich die Kostendifferenz cohne − cmit betrachtet wird. Des Weiteren wird eine gewisse Stabilität des Systemverhaltens in Bezug auf die entstehenden Kosten angenommen. Mit diesen Einschrän- kungen ist die Adaption auf Basis einer Momentaufnahme (vgl. 2.2.2) möglich. 30 Kapitel 2 Hintergrund
Abbildung 2.9: Kosten in Abhängigkeit der Parameterkonfiguration Abbildung 2.10: Minimal zu erreichende Kosten 2.3 Prototyp 31
32 Kapitel 2 Hintergrund
3 VERWANDTE ARBEITEN
Sie können auch lesen