Performance engineering


Performance Engineering umfasst die während a angewendeten Techniken Lebenszyklus für Systementwicklung um die zu gewährleisten Nicht-funktionale Anforderungen für die Leistung (wie z. Durchsatz, Latenz, oder Erinnerung Verwendung) wird erfüllt. Es kann alternativ als als bezeichnet werden Systeme Performance Engineering innerhalb Systemtechnik, und Software Performance Engineering oder Anwendungsleistungstechnik innerhalb Softwareentwicklung.

Da der Zusammenhang zwischen Anwendungserfolg und Geschäftserfolg weiterhin anerkannt wird, insbesondere im mobilen Raum, hat die Anwendungsleistung Engineering ein Prävention und Perfektiv für die Bekämpfung des mobilen Bereichs übernommen[1] Rolle im Lebenszyklus der Softwareentwicklung. Daher wird der Begriff typischerweise verwendet, um die Prozesse, Personen und Technologien zu beschreiben, die erforderlich sind, um nicht funktionsfähige Anforderungen effektiv zu testen, die Einhaltung der Servicestufen sicherzustellen und die Anwendungsleistung vor dem Einsatz zu optimieren.

Der Begriff Performance Engineering umfasst mehr als nur die Software und unterstützende Infrastruktur, und als solcher ist der Begriff Performance Engineering aus einer Makroansicht vorzuziehen. Die Einhaltung der nicht funktionsfähigen Anforderungen wird auch nach Überwachung der Produktionssysteme nach der Absetzung validiert. Dies ist Teil von IT Service Management (siehe auch Itil).

Performance Engineering ist bei einer Reihe großer Unternehmen zu einer separaten Disziplin geworden, wobei die Aufgabe getrennt, aber parallel zur Systemtechnik ist. Es ist allgegenwärtig, bei denen Menschen aus mehreren Organisationseinheiten einbezogen werden. aber vorwiegend innerhalb der Informationstechnologie Organisation.

Performance Engineering -Ziele

  • Steigern Sie die Geschäftseinnahmen, indem Sie sicherstellen, dass das System Transaktionen innerhalb des erforderlichen Zeitrahmens verarbeiten kann
  • Beseitigen Sie den Systemfehler, der das Schrott und das Schreiben des Systementwicklungsaufwands aufgrund eines Leistungszielfehlers erfordert
  • Beseitigen Sie die verspätete Systembereitstellung aufgrund von Leistungsproblemen
  • Vermeidbare System -Nacharbeit aufgrund von Leistungsproblemen beseitigen
  • Vermeidbare Systemstimmungsbemühungen beseitigen
  • Vermeiden Sie zusätzliche und unnötige Kosten für die Erwerb von Hardware
  • Erhöht reduzieren Software-Wartung Kosten aufgrund von Leistungsproblemen in der Produktion
  • Reduzieren Sie erhöhte Software -Wartungskosten aufgrund von Software, die durch Ad -hoc -Leistungskorrekturen beeinflusst wird
  • Reduzieren Sie zusätzlichen operativen Overheads für das Handhabungssystemprobleme aufgrund von Leistungsproblemen
  • Identifizieren Sie zukünftige Engpässe durch Simulation über Prototypen
  • Erhöhen Sie die Serverfähigkeit

Performance Engineering -Ansatz

Da diese Disziplin innerhalb mehrerer Methoden angewendet wird, treten die folgenden Aktivitäten in unterschiedlich festgelegten Phasen auf. Wenn jedoch die Phasen der rational einheitlicher Prozess (RUP) werden als Rahmen verwendet, dann treten die Aktivitäten wie folgt auf:

Während der ersten konzeptionellen Phase eines Programms oder Projekts kritisch Geschäftsprozesse sind identifiziert. In der Regel werden sie basierend auf dem Umsatzwert, den Kosteneinsparungen oder einem anderen zugewiesenen Geschäftswert als kritisch eingestuft. Diese Klassifizierung erfolgt von der Geschäftseinheit, nicht von der IT -Organisation. Hohe Risiken, die sich auf die Systemleistung auswirken können, werden zu diesem Zeitpunkt identifiziert und beschrieben. Ein Beispiel könnte für ein bestimmtes Lieferantensystem bekannt sein. Schließlich werden für die Ausarbeitungsphase Leistungsaktivitäten, Rollen und Leistungen ermittelt. Aktivitäten und Ressourcenbelastungen werden in die Projektpläne für Ausarbeitungsphase einbezogen.

Ausarbeitung

Während dieser definierenden Phase werden die kritischen Geschäftsprozesse zu kritisch zersetzt Anwendungsfälle. Sondenfälle werden nach Bedarf auf einseitige (Bildschirm-) Übergänge zerlegt. Dies sind die Anwendungsfälle, die Skripts ausgesetzt werden Leistungstest.

Die Art der Anforderungen, die sich auf die Leistungstechnik beziehen, sind die nicht funktionsfähigen Anforderungen oder NFR. Während sich eine funktionale Anforderung bezieht, welche Geschäftsbetriebe durchgeführt werden sollen, bezieht sich eine leistungsbezogene nicht funktionsfähige Anforderung darauf, wie schnell dieser Geschäftsbetrieb unter definierten Umständen funktioniert.

Konstruktion

Zu Beginn dieser Phase sind eine Reihe von Aktivitäten im Zusammenhang mit Leistungstools erforderlich. Diese beinhalten:

  • Identifizieren Sie die Mitglieder des wichtigsten Entwicklungsteams als Fach Experten für die ausgewählten Tools.
  • Angeben a Profilerstellung Werkzeug für die Testumgebung für Entwicklungs-/Komponenteneinheiten.
  • Geben Sie ein automatisiertes Einheit (Komponenten-) Leistungstest -Tool für die Umgebung für Entwicklungs-/Komponentenentests an; Dies wird verwendet, wenn noch keine GUI vorhanden ist, um die in der Entwicklung befindlichen Komponenten voranzutreiben.
  • Geben Sie ein automatisiertes Tool für die Fahrt Server-Side-Einheit (Komponenten) für die Entwicklungs-/Komponenten-Unit-Testumgebung an.
  • Geben Sie ein automatisiertes Multi-Benutzer-fähiger Skript-gesteuerter End-to-End-Tool für die Testumgebung für Entwicklungs-/Komponenteneinheiten an; Dies wird verwendet, um Screen-gesteuerte Anwendungsfälle auszuführen.
  • Identifizieren Sie ein Datenbanktest -Datenlast -Tool für die Umgebung für Entwicklungs-/Komponenten -Unit -Test. Dies ist erforderlich, um sicherzustellen, dass der Datenbankoptimierer korrekte Ausführungspfade auswählt und die Neuinitialisierung und Neulade der Datenbank nach Bedarf ermöglicht.
  • Stellen Sie die Leistungstools für das Entwicklungsteam ein.
  • Präsentationen und Schulungen müssen den Mitgliedern des Entwicklungsteams in den ausgewählten Tools gegeben werden.

Das Leistungstestteam führt normalerweise keine Leistungstests in der Entwicklungsumgebung aus, sondern in einer speziellen Vorablagerungsumgebung, die so konfiguriert ist, dass sie der geplanten Produktionsumgebung so nah wie möglich ist. Dieses Team wird ausführen Leistungstest gegen TestfälleValidierung, dass die kritischen Anwendungsfälle den angegebenen nicht funktionsfähigen Anforderungen entsprechen. Das Team wird ausführen Lastprüfung gegen eine normalerweise erwartete (mittlere) Last sowie eine Spitzenlast. Sie rennen oft Stresstests Dadurch werden die System -Engpässe identifiziert. Die gesammelten Daten und die Analyse werden an die Gruppe zurückgeführt, die dies tut Leistungsstimmung. Bei Bedarf wird das System so abgestimmt, dass nicht konforme Tests mit den nicht funktionsfähigen Anforderungen konformieren.

Wenn die Leistungstechnik in jeder Iteration und Phase des Projekts bis zu diesem Zeitpunkt ordnungsgemäß angewendet wurde, reicht dies hoffentlich aus, um das System zu ermöglichen, Leistungszertifizierung zu erhalten. Wenn jedoch aus irgendeinem Grund (möglicherweise nicht angewandte Arbeitspraktiken für Leistungstechniken angewendet wurden) Tests, die nicht in die Konformität eingestellt werden können, müssen Teile des Systems zur Entwicklung zum Wiederaufbaurückgang zurückgegeben werden. In einigen Fällen kann das Problem mit zusätzlicher Hardware behoben werden, aber das Hinzufügen weiterer Hardware führt schnell zu einer Abnahme der Renditen.

Übergang

Während dieser letzten Phase wird das System in der Produktionsumgebung eingesetzt. Eine Reihe von vorbereitenden Schritten ist erforderlich. Diese beinhalten:

  • Konfigurieren der Betriebssysteme, des Netzwerks, der Server (Anwendung, Web, Datenbank, Ladeauslager usw.) und jeder Nachrichtenwarteschlangensoftware gemäß den Basis -Checklisten und der in der Leistungstestumgebung identifizierten Optimierungen
  • Sicherstellen, dass die gesamte Leistungsüberwachungssoftware bereitgestellt und konfiguriert wird
  • Ausführungsstatistiken in der Datenbank nach Abschluss der Produktionsdatenlast

Sobald das neue System bereitgestellt ist, werden laufende Vorgänge Leistungsaktivitäten aufnehmen, einschließlich:

  • Die Validierung dieser wöchentlichen und monatlichen Leistungsberichte zeigt an, dass kritische Anwendungsfälle innerhalb der angegebenen nicht funktionalen Anforderungen erfolgen
  • Wenn Anwendungsfälle außerhalb der NFR -Kriterien fallen, senden Sie Mängel
  • Identifizieren Sie prognostizierte Trends aus monatlichen und vierteljährlichen Berichten und vierteljährlich aus, um auszuführen Kapazitätsplanung Managementaktivitäten

Service-Management

In der Betriebsdomäne (Post -Production -Bereitstellung) konzentriert sich Performance Engineering hauptsächlich innerhalb von drei Bereichen: Dienstleistungsverwaltung, Kapazitätsmanagement, und Problemmanagement.

Dienstleistungsverwaltung

Im Bereich Service Level Management befasst sich Performance Engineering mit Service Level Agreements und die zugehörige Systemüberwachung, die zur Validierung der Einhaltung der Serviceebene dient, Probleme erkennen und Trends identifizieren. Wenn beispielsweise eine reale Benutzerüberwachung bereitgestellt wird, ist es möglich, sicherzustellen, dass Benutzertransaktionen im Einklang mit den festgelegten nicht funktionsfähigen Anforderungen ausgeführt werden. Die Transaktionsantwortzeit wird in einer Datenbank angemeldet, sodass Abfragen und Berichte gegen die Daten ausgeführt werden können. Dies ermöglicht eine Trendanalyse, die für das Kapazitätsmanagement nützlich sein kann. Wenn Benutzertransaktionen aus dem Band fallen, sollten die Ereignisse Warnmeldungen generieren, damit auf die Situation aufmerksam werden kann.

Kapazitätsmanagement

Für das Kapazitätsmanagement konzentriert sich Performance Engineering darauf, sicherzustellen, dass die Systeme in der Leistungseinhaltung bleiben. Dies bedeutet auszuführen Trend analysen Bei der historischen Überwachung erzeugten Daten, so dass die zukünftige Zeit der Nichteinhaltung vorhersehbar ist. Wenn beispielsweise ein System einen Trend zur Verlangsamung der Transaktionsverarbeitung (die möglicherweise auf wachsende Datensatzgrößen oder die zunehmende Anzahl gleichzeitiger Benutzer oder andere Faktoren zurückzuführen ist) zeigt, erfüllt das System irgendwann nicht mehr die darin angegebenen Kriterien, Die Service -Level -Vereinbarungen. Das Kapazitätsmanagement wird mit der Gewährleistung der zusätzlichen Kapazität vor diesem Punkt (zusätzlicher CPUs, mehr Speicher, neuer Datenbankindexierung usw.) berechnet, damit die Trendlinien zurückgesetzt werden und das System im angegebenen Leistungsbereich bleibt.

Problemmanagement

Innerhalb der Problemverwaltungsdomäne konzentrieren sich die Leistungstechnikpraktiken auf die Lösung der Hauptursache für leistungsbezogene Probleme. In der Regel handelt es sich um die Systemabstimmung, das Ändern von Betriebssystem- oder Geräteparametern oder sogar die Wiederbelebung der Anwendungssoftware, um die schlechte Leistung aufgrund schlechter Designs oder schlechter Codierungspraktiken zu beheben.

Überwachung

Um sicherzustellen, dass ein ordnungsgemäßes Feedback validiert, dass das System den NFR -angegebenen Leistungsmetriken erfüllt, benötigt jedes wichtige System ein Überwachungssubsystem. Die Planung, Design, Installation, Konfiguration und Steuerung des Überwachungssubsystems werden durch einen angemessen definierten Überwachungsprozess angegeben. Die Vorteile sind wie folgt:

  • Es ist möglich, Service -Level -Vereinbarungen auf Anwendungsfallebene festzulegen.
  • Es ist möglich, die Überwachung an regelmäßigen Stellen einzuschalten und die Überwachung auszuschalten oder die Problemlösung zu unterstützen.
  • Es ermöglicht die Erzeugung regulärer Berichte.
  • Es ermöglicht die Möglichkeit, Trends im Laufe der Zeit zu verfolgen, z. B. die Auswirkungen der Erhöhung der Benutzerbelastung und des Wachstums von Datensätzen auf die Leistung von Anwendungsfallebene.

Die Trendanalysekomponente davon kann nicht unterbewertet werden. Diese ordnungsgemäß implementierte Funktionalität ermöglicht die Vorhersage, wenn eine bestimmte Anwendung, die sich allmählich erhöht, Benutzerlasten und wachsende Datensätze die angegebenen nicht funktionalen Leistungsanforderungen für einen bestimmten Anwendungsfall überschreiten. Dies ermöglicht eine ordnungsgemäße Budgetierung, Erfassung und Bereitstellung der erforderlichen Ressourcen, um das System in den Parametern der nicht funktionalen Leistungsanforderungen ausgeführt zu werden.

Siehe auch

Verweise

  1. ^ "Bankenindustrieunterricht, die in Outsourcing -Testdiensten gelernt haben", Gartner. 2. August 2012.

Weitere Lektüre