Drehbuch für apm Application Performance Management Verfasser: Christoph Denzler Modulanlass: FS / 2016 Datum: 1. 4. 2016 Inhaltsverzeichnis Inhaltsverzeichnis ............................................................................................................................................ 2 1 Funktion im Rahmen der Gesamtausbildung .......................................................................................... 3 1.1 Leitidee ............................................................................................................................................ 3 1.2 Voraussetzungen / Vorkenntnisse ................................................................................................... 3 1.3 Outcome-Kompetenzen der Studierenden (KISA) .......................................................................... 3 2 Unterrichtsorganisation ............................................................................................................................ 4 2.1 Lern- und Arbeitsformen .................................................................................................................. 4 2.2 Zeitaufwand für Studierende (summarisch) .................................................................................... 4 2.3 Leistungsbeurteilung ....................................................................................................................... 4 Arbeitsmittel ................................................................................................................................................. 4 3 Themen der Unterrichtsblöcke ................................................................................................................ 5 3.1 Performance Tuning von J2SE Applikationen ................................................................................. 5 3.2 Application Server installieren ......................................................................................................... 5 3.3 Performance Tuning von JEE Applikationen ................................................................................... 5 4 Drehbuch ................................................................................................................................................. 6 1 Funktion im Rahmen der Gesamtausbildung 1.1 Leitidee Application Performance Management ist ein Module in der Vertiefungsrichtung „Verteilte Software Systeme“. In dieser Vertiefungsrichtung geht es darum, Enterprise Applications auf verteilten Systemen realisieren zu können. Das Modul Application Performance Management befasst sich mit den Möglichkeiten des Performance Tunings solcher Applikationen. Es richtet sich in erster Linie an SoftwareEntwickler, die ein Verständnis benötigen über die Systeme auf denen sie Ihre Software laufen lassen. Entwicklerinnen müssen verstehen, welche Einflüsse das Laufzeitsystem auf die Applikation bezüglich Performance hat. Zudem müssen Entwickler Handbücher für den Betrieb schreiben können, so dass die Software möglichst effizient betrieben werden kann. 1.2 Voraussetzungen / Vorkenntnisse Vorraussetzung: sysad, bsys, algds2 und entmu Empfohlen: swa, dnet1 und vesys Um dem Inhalt folgen zu können sind grundlegende Kenntnisse von Betriebssystemen und Systemadministration nötig. Zudem sollte die Programmiersprache Java auf fortgeschrittenem Level bekannt sein. Einige Themen werden auch ein vertieftes Verständnis von Algorithmen und Entwurfsmuster erfordern. Daneben ist es nützlich etwas über den Bau von Softwaresystemen (Softwareentwurf) und von Datennetzen zu verstehen. Kenntnisse von Verteilten Systemen sind nützlich um das Clustering besser zu verstehen. 1.3 Outcome-Kompetenzen der Studierenden (KISA) Kompetenzen Die Studierenden können einen JEE Applikationsserver für ein Entwicklungsprojekt installieren und betreiben. Indikatoren Sie haben einen Applikationsserver (JBoss) auf ihren Rechnern installiert. Standard K3 Assessment Entsprechende Aufgaben lösen. Spätere Übungen werden darauf aufbauen. Entsprechende Aufgaben auf Papier lösen. Eine Messumgebung aufbauen (Übungen) Die Studierenden können für eine Applikation Performanceziele aus nicht funktionalen Anforderungen ableiten. Sie sind in der Lage die nötigen Performancemessungen zu planen und durchzuführen. Sie können entsprechende Aufgabenstellungen lösen und Messprotokolle vorlegen. K5 Messresultate richtig interpretieren und die daraus notwendigen Massnahmen am Deployment, an der Konfiguration sowie an der Implementation der Applikation vorschlagen können. Sie können Messprotokolle interpretieren und Verbesserungsmassnahmen vorschlagen. K6 Massnahmen werden implementiert und die verbesserte Version läuft optimaler gemäss den definierten Performancezielen. Die Studierenden kennen verschiedene Massnahmen zur Performanceoptimierung und können diese auch effektiv einsetzen Sie sind in der Lage für ein Problem mehrere Optimierungsvarianten vorzuschlagen und auch eine der effektivsten auszuwählen. K4 Entsprechende Übungen lösen inkl. Variantenauswahl und Implementation. 2 Unterrichtsorganisation 2.1 Lern- und Arbeitsformen 42 Stunden werden im Kontaktstudium und begleitetem Selbststudium absolviert, um den Studierenden grundlegendes Wissen des Performance Tunings anschaulich zu vermitteln. Während diese 42 Stunden werden Arbeitsblätter selbstständig bearbeitet. Das vermittelte Wissen wird in 42 Stunden Selbststudium (unbegleitet) erweitert und in Lösungskompetenzen zu Fragestellungen des Performance Tunings vertieft. Hierfür werden vom Studierenden vorgegebene Übungsaufgaben eigenständig gelöst. Zu den Übungsaufgaben wird individuelles Feedback gegeben. Eine Übungsbesprechung dient zur Restklärung. 6 Stunden individuelles Selbststudium dienen der Festigung der Kenntnisse und der Prüfungsvorbereitung. Die Arbeitsform und -inhalte werden vom Studierenden selbst gewählt. 2.2 Zeitaufwand für Studierende (summarisch) Kontaktunterricht KS: Begleitetes Selbststudium BSS: Unbegleitetes Selbststudium während Unterrichtszeit USS: Unbegleitetes Selbststudium während unterrichtsfreier Zeit: Individuelles Selbststudium ISS: 28h 14h 42h 0h 6h Gesamtaufwand: 90h 2.3 Leistungsbeurteilung Assessments Während des Semesters finden zwei bewertete, schriftliche Prüfungen statt. Diese bestehen aus je zwei Teilen: Teil 1: theoretische Fragen, es sind keine Unterlagen erlaubt. Teil 2: praktische Aufgaben. In diesem Teil sind schriftliche Unterlagen erlaubt. In beiden Teilen sind elektronische Hilfsmittel wie Taschenrechner, Computer, Mobiltelefon etc. nicht erlaubt. Es findet KEINE Modulschlussprüfung statt. Arbeitsmittel Literatur ergänzende Literatur von Dozierenden abgegebene Arbeitsmittel spezielle Informatikmittel weitere Arbeitsmittel JBoss in Action, J. Jamae & P. Johnson, Manning 2009 Pro Java EE 5, Performance Management and Optimization, Steven Haines, Apress 2006 Diverse Artikel und Foliensätze Skript Wildfly Eclipse EE JDK 1.8 - 3 Themen der Unterrichtsblöcke 3.1 Performance Tuning von J2SE Applikationen Lernziele • Die Studierenden kennen einige der effektivsten Methoden zur Performancesteigerung bei normalen Java-Applikationen und können diese auch anwenden. • Sie kennen die möglichen Auswirkungen der einzelnen Methoden und können umgekehrt aus Messgrössen auch Rückschlüsse auf verbesserungswürdige Code-Partien schliessen. Inhalte Garbage Collection: Funktionsweise, Algorithmen und Tuningmöglichkeiten Memory Leaks: Aufspüren und vermeiden Java New IO (nio): Unterschiede gegenüber Standard IO 3.2 Application Server installieren Lernziele Die Studierenden können einen JEE Application Server installieren. Sie kennen die wichtigsten Verzeichnisse und deren Inhalte. Sie kennen die Architektur des Application Server. Sie sind in der Lage mehrere Applikationen nebeneinander zu deployen. Versionskonflikte zwischen Class- bzw. Jar-Files können gelöst werden. Inhalte Wildfly 10 Eclipse EE Deployments JMX – MBeans zur Konfiguration von Serverkomponenten Classloaders 3.3 Performance Tuning von JEE Applikationen Lernziele • Die Studierenden kennen die Möglichkeiten von Load Balancing und Clustering. • Sie können diese Werkzeuge zur Skalierung von Applikationen eingesetzen. • Sie wissen welche Auswirkugen Nicht-Funktionale Anforderungen auf Performanceziele haben. • Sie können Performancemessungen gezielt planen, durchführen und auswerten. • Sie sind in der Lage Vorschläge zur Erreichung von Performancezielen aufgrund von Messungen zu machen. Inhalte Load Balancing und High Availability Clustering Messaging Performance Management im Entwicklungsprozess Performancemessungen und Werkzeuge Auswertung/Interpretation von Messungen und Schlussfolgerungen 4 Drehbuch Beinhaltet: Studieninhalte mit Stundenzuteilung über das Semester (Wochenraster) und davor/danach, mit: - Kontaktunterricht/Lehrveranstaltung (KS) - Eigenständige Arbeitsleistung der Studierenden = Selbststudium - angeleitet, d.h. mit Aufgabenstellung des/der Dozierenden - begleitet durch Dozierende (BSS) - unbegleitet vor während und nach dem Semester (USS) - individuell während und vor/nach dem Semester (ISS) Aufwandsplanung Die tatsächliche Reihenfolge der Inhalte kann von der hier angegebenen abweichen. Inhalt/Lernauftrag Aufwand (h) KS BSS USS Garbage Collection Algorithmen 2 1 4 Carbage Collection Tuning 2 1 3 Java nio 2 1 4 Class Loader 2 1 4 Application Server 2 1 4 Performance Management 2 1 3 Load Balancing 2 1 4 Clustering 2 1 4 Caching 2 1 3 Messaging 2 1 4 Performance messen 2 1 2 Auswertung/Interpretation von Messungen 2 1 2 Performance Tuning Lab 1 2 Prüfung 1 1 3 Prüfung 2 2 4 Total 29 14 41 ISS 6