© Excellent backgrounds/Shutterstock.com
Java Magazin
Teil 2: Preproduction

Production-ready?

Im ersten Teil dieser Serie (siehe Java Magazin 11.2014) ging es um das Zusammenspiel zwischen Entwicklern und Betreibern rund um das Themengebiet des Loggings, und wir konnten aufzeigen, wie wichtig es bereits während der Entwicklung ist, gemeinsam zu arbeiten und sich abzustimmen. Dieses Mal werden wir uns mit der Phase der Produktionsvorbereitung beschäftigen. Die Entwicklung hat die benötigen Features und Storys umgesetzt und bereitet sich nun auf die Produktion vor. Was muss ein Team in dieser Situation leisten, um sicherstellen zu können, dass alle relevanten Schrauben korrekt sitzen? Welche Themen müssen berücksichtigt werden, und welche Tools kann man zur Unterstützung einsetzen?

Joachim Arrasz, Sebastian Heib


Stellen wir uns folgendes Szenario vor: Ein Team hat mehrere Wochen/Monate an einem neuen, auf der grünen Wiese entstandenen Softwareprojekt gearbeitet und dabei jede für den Livegang relevante und abnahmepflichtige Story umgesetzt (Abb. 1). Was kommt nun? Was sollte passieren und was passiert üblicherweise?

Abb. 1: Reise durch die Entstehung (das Development) über die Stabilisierungs­phase der Preproduction bis hin zur Produktion

Zunächst wird die komplette Umgebung des Systems mit der zu erwartenden Last konfrontiert. Wichtig ist hierbei, alle Szenarien, die an einem Tag vorkommen können, abzudecken. Wie aber macht man das? Man erstellt Lasttests für alle Herausforderungen, die sich aus verschiedenen Szenarien ergeben (Beispiele s. u.). Hierbei entstehen, anders als bei menschlicher Interaktion, komplett andere Lastszenarien, die es sehr genau zu beobachten gilt.

Was hilft einem ein nächtlicher Batch-ETL-Job, der irgendwann so lange benötigt, dass die Nacht schlicht nicht mehr ausreicht, um alle Aufgaben zu verarbeiten? Die einzelnen Lasttests kann man einfach mit Tools wie JMeter erstellen (Abb. 2), automatisieren und pflegen. Fassen wir also die verschiedenen abzudeckenden Szenarien zusammen:

Durchschnittliche Last, über den Tag verteiltDurchschnittliche Last, über den Tag verteilt, an WochenendenFeierabendlastspitzenGuten-Morgen-LastspitzenLastspitzen durch WerbungVerhalten der Applikation bei Überlastung (Slashdot-Effekt)Session Handling

Abb. 2: Beispielhaftes Apache-JMeter-Set-up

TippIm Team sollten mittlerweile auch dringend Systemadministratoren oder DevOps vorhanden sein. Idealerweise ist ein Team von Beginn an cross-funktional aufgestellt (vgl. Teil 1 der Serie).

Nach den erfolgreich durchgeführten Tests sollte dieses Team die Sicherheit haben, dass das System die zu erwartenden Lastanforderungen im Betrieb erfüllt, inklusive eines Puffers.

TippSessions sind eine althergebrachte Technik zur Identifikation eines Users und seiner applikationsrelevanten Daten. Viele moderne Anwendungen werden auf Basis von Frameworks entwickelt, die „das Session Handling auch erledigen“.Braucht man sie, erzeugt man sie pro Anwender und erst, wenn es unbedingt nötig ist, nicht mit dem ersten Aufruf des Systems, wie es oft üblich ist. Weiterhin ist es unabdingbar, die Größe einer einzelnen Session im Auge zu behalten, da Sessions leider viel zu oft als Ablage für beliebige Daten verwendet werden. Somit kann eine Session schnell ein paar Megabyte an Daten enthalten. Ein kl...

Java Magazin
Teil 2: Preproduction

Production-ready?

Im ersten Teil dieser Serie (siehe Java Magazin 11.2014) ging es um das Zusammenspiel zwischen Entwicklern und Betreibern rund um das Themengebiet des Loggings, und wir konnten aufzeigen, wie wichtig es bereits während der Entwicklung ist, gemeinsam zu arbeiten und sich abzustimmen. Dieses Mal werden wir uns mit der Phase der Produktionsvorbereitung beschäftigen. Die Entwicklung hat die benötigen Features und Storys umgesetzt und bereitet sich nun auf die Produktion vor. Was muss ein Team in dieser Situation leisten, um sicherstellen zu können, dass alle relevanten Schrauben korrekt sitzen? Welche Themen müssen berücksichtigt werden, und welche Tools kann man zur Unterstützung einsetzen?

Joachim Arrasz, Sebastian Heib


Stellen wir uns folgendes Szenario vor: Ein Team hat mehrere Wochen/Monate an einem neuen, auf der grünen Wiese entstandenen Softwareprojekt gearbeitet und dabei jede für den Livegang relevante und abnahmepflichtige Story umgesetzt (Abb. 1). Was kommt nun? Was sollte passieren und was passiert üblicherweise?

Abb. 1: Reise durch die Entstehung (das Development) über die Stabilisierungs­phase der Preproduction bis hin zur Produktion

Zunächst wird die komplette Umgebung des Systems mit der zu erwartenden Last konfrontiert. Wichtig ist hierbei, alle Szenarien, die an einem Tag vorkommen können, abzudecken. Wie aber macht man das? Man erstellt Lasttests für alle Herausforderungen, die sich aus verschiedenen Szenarien ergeben (Beispiele s. u.). Hierbei entstehen, anders als bei menschlicher Interaktion, komplett andere Lastszenarien, die es sehr genau zu beobachten gilt.

Was hilft einem ein nächtlicher Batch-ETL-Job, der irgendwann so lange benötigt, dass die Nacht schlicht nicht mehr ausreicht, um alle Aufgaben zu verarbeiten? Die einzelnen Lasttests kann man einfach mit Tools wie JMeter erstellen (Abb. 2), automatisieren und pflegen. Fassen wir also die verschiedenen abzudeckenden Szenarien zusammen:

Durchschnittliche Last, über den Tag verteiltDurchschnittliche Last, über den Tag verteilt, an WochenendenFeierabendlastspitzenGuten-Morgen-LastspitzenLastspitzen durch WerbungVerhalten der Applikation bei Überlastung (Slashdot-Effekt)Session Handling

Abb. 2: Beispielhaftes Apache-JMeter-Set-up

TippIm Team sollten mittlerweile auch dringend Systemadministratoren oder DevOps vorhanden sein. Idealerweise ist ein Team von Beginn an cross-funktional aufgestellt (vgl. Teil 1 der Serie).

Nach den erfolgreich durchgeführten Tests sollte dieses Team die Sicherheit haben, dass das System die zu erwartenden Lastanforderungen im Betrieb erfüllt, inklusive eines Puffers.

TippSessions sind eine althergebrachte Technik zur Identifikation eines Users und seiner applikationsrelevanten Daten. Viele moderne Anwendungen werden auf Basis von Frameworks entwickelt, die „das Session Handling auch erledigen“.Braucht man sie, erzeugt man sie pro Anwender und erst, wenn es unbedingt nötig ist, nicht mit dem ersten Aufruf des Systems, wie es oft üblich ist. Weiterhin ist es unabdingbar, die Größe einer einzelnen Session im Auge zu behalten, da Sessions leider viel zu oft als Ablage für beliebige Daten verwendet werden. Somit kann eine Session schnell ein paar Megabyte an Daten enthalten. Ein kl...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang