Was ist Application Lifecycle Management (ALM)?

URL kopieren

Application Lifecycle Management (ALM) steht für eine Kombination von Personen, Tools und Prozessen, die den Lifecycle einer Anwendung von der Entwicklung bis zum End of Life verwalten. 

ALM setzt sich aus mehreren Disziplinen zusammen, die in früheren Entwicklungsprozessen oft getrennt waren. Zu diesen gehören beispielsweise die Wasserfall-Entwicklungsmethode, Projektmanagement, Anforderungsmanagement, Softwareentwicklung, Tests und Qualitätssicherung sowie Deployment und Wartung. 

Das Application Lifecycle Management überschneidet sich mit dem Bereich Plattform Engineering und ergänzt agile Methoden und DevOps, damit Teams in Ihrem Unternehmen effektiver zusammenarbeiten können.

Die Einführung von ALM führt auch zu Continuous Delivery von Software und Updates mit häufigen Releases, manchmal sogar mehrmals täglich, im Gegensatz zu neuen Releases, die nur alle paar Monate oder einmal im Jahr erscheinen.

Application Lifecycle Management bietet ein Framework für die Softwareentwicklung und unterstützt Sie gleichzeitig dabei, Ihre Software langfristig zu managen. Die Anwendung von ALM-Praktiken umfasst einen leichtgewichtigen, vorab festgelegten Plan und Anforderungen, um eine Idee in eine Anwendung umzusetzen. 

Bei der Softwareentwicklung mit ALM müssen Sie die gesamte Lebensdauer der Anwendung berücksichtigen. Die Wartung und zukünftige Updates sollten berücksichtigt werden, einschließlich des Zeitpunkts, zu dem die Anwendung eingestellt und ersetzt werden muss. 

Durch die Zusammenführung dieser Komponenten kann ALM für schnellere Deployments, mehr Transparenz in Ihren Workflows, qualitativ hochwertigere Produkte und eine höhere Zufriedenheit im Entwicklungsteam sorgen.

Mit ALM lässt sich der Entwicklungsprozess transparenter gestalten. Da der Prozess integriert ist, können Sie sehen, welche Fortschritte erzielt wurden, welche Schritte noch zu erledigen sind, wie lange die einzelnen Schritte dauern, welche Tests bereits abgeschlossen sind und vieles mehr.

Anwendungs-Governance

Mit Governance werden die Entscheidungen bezeichnet, die über eine Anwendung getroffen werden. Wenn Sie mit der Entwicklung einer neuen Anwendung beginnen, starten Sie mit der ersten Idee für die App und müssen auch überlegen, wie diese zu Ihren geschäftlichen Anforderungen und Zielen passt.

Dies trägt zu den Anforderungen für die neue Anwendung bei, die im Rahmen der Governance-Phase definiert und vereinbart werden müssen. 

Ressourcenmanagement, Daten und Sicherheit sowie Benutzerzugriff sind weitere Komponenten der Anwendungs-Governance. 

Die Standardisierung dieser Prozesse ermöglicht eine automatisierte Governance. Die Automatisierung dieser Governance-Prozesse beschleunigt die Anwendungsbereitstellung.

Anwendungsentwicklung

Nachdem die Anforderungen für die Anwendung oder das Update definiert und vereinbart wurden, kann die Entwicklung beginnen. Teams, die bei der Entwicklung die agile Methodik anwenden, entwickeln und stellen möglicherweise einmal oder sogar mehrmals täglich Anwendungen bereit. 

Design, Entwicklung, Tests und Deployment der Anwendung können als Teil der Entwicklungsphase betrachtet werden.

Softwaretests

Sobald die neue Anwendung entwickelt wurde, muss sie getestet werden. Außerdem müssen Fehler behoben werden, bevor sie in die Produktion übergehen kann. 

Für agile und DevOps-Teams sollte das Testen gleichzeitig mit der Entwicklung erfolgen. Das Feedback sollte kontinuierlich an das Entwicklungsteam weitergeleitet werden. 

Continuous Integration sollte Teil des Entwicklungsprozesses sein, damit diese häufigen Updates nicht miteinander in Konflikt stehen. 

In der Testphase soll sichergestellt werden, dass die während der Governance festgelegten Anforderungen erfüllt wurden und die Anwendung entsprechend funktioniert, bevor sie für Nutzende freigegeben wird.

Betrieb und Wartung

Nachdem die Tests abgeschlossen und die erforderlichen Fehler behoben wurden, kann die Anwendung für die Nutzenden bereitgestellt werden. 

Während der gesamten Lebensdauer einer Anwendung liegt der Schwerpunkt von ALM auf der Betriebs- und Wartungsphase. Die Betriebsphase endet jedoch nicht mit dem Deployment einer Anwendung. Regelmäßige Wartungen und Updates müssen berücksichtigt werden. 

Die Stilllegung einer Anwendung oder eines Diensts sollte ebenfalls als Teil der Wartung betrachtet werden. Teams sollten festlegen, ab wann eine Anwendung nicht mehr unterstützt wird oder eine neuere Version verfügbar ist.

ALM im Vergleich zu SDLC

ALM wird manchmal mit dem Softwareentwicklungs-Lifecycle (SDLC) verwechselt, weil sich beide mit dem Prozess der Softwareentwicklung befassen. Der Hauptunterschied besteht darin, dass SDLC in erster Linie auf die Entwicklungsphase ausgerichtet ist, während ALM den gesamten Anwendungs-Lifecycle von der Konzeption über die Wartung bis zur Stilllegung umfasst und auch nach der Entwicklung der Anwendung fortgesetzt wird. 

SDLC kann als Teil des Anwendungs-Lifecyclemanagements betrachtet werden, das vor allem die Entwicklungs-, Test- und Deployment-Phasen umfasst. ALM kann mehrere Entwicklungs-Lifecycles für eine bestimmte Anwendung umfassen.

Mehr über die Sicherheit im Softwareentwicklungs-Lifecycle erfahren

Red Hat Ressourcen

ALM-Tools fungieren im Wesentlichen als Projektmanagementtools, mit denen Sie Personen und Prozesse zusammenführen können. Wählen Sie ein Tool, das Versionskontrolle, Echtzeitkommunikation für Teams, Funktionen für das Anforderungsmanagement, Schätzungen und Projektplanung, Quellcodeverwaltung sowie Testmanagement umfasst.

Vielleicht finden Sie alle benötigten Funktionen in einem einzigen Tool, vielleicht müssen Sie aber auch zusätzliche Tools, wie etwa entwicklungsspezifische Tools, integrieren. Das von Ihnen gewählte ALM-Tool sollte auch Ihren Entwicklungsprozess unterstützen, unabhängig davon, ob Sie agil, nach dem Wasserfall- oder DevOps-Modell oder einem anderen Modell arbeiten.

Beispiele für ALM-Tools:

  • Atlassian Jira
  • ALM-Lösungen von IBM
  • CA Agile Central
  • Microsoft Azure DevOps Server
  • Tuleap
  • Basecamp

Red Hat ist ein führender Anbieter und aktiver Entwickler von Anwendungstechnologien und bietet wichtige Tools für die Sicherheit, Vereinfachung und automatische Aktualisierung Ihrer Infrastruktur.

Mit Red Hat® OpenShift® können Ihre Entwicklungsteams neue Anwendungen erstellen, hosten und in der Cloud bereitstellen – mit der Skalierbarkeit, Kontrolle und Orchestrierung, die eine gute Idee schnell und einfach in ein neues Business-Modell umsetzen. Wenn Sie Ihre Anwendungs-Workloads in einem gemanagten Cloud Service bereitstellen oder dorthin verschieben möchten, ist Red Hat OpenShift auch als cloudnativer Service auf Amazon Web Services (AWS)Microsoft AzureGoogle CloudIBM Cloud und bei anderen Anbietern verfügbar.

Basierend auf den Grundlagen von Red Hat OpenShift können Sie Red Hat Advanced Cluster Management und Red Hat Ansible® Automation Platform zusammen verwenden, um mehrere Deployments in verschiedenen Regionen und Umgebungen, einschließlich Public Cloud, On-Premise und am Edge, effizient bereitzustellen und zu managen.

Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Was ist GitOps? | Definition, Vorteile und Best Practices

Erfahren Sie, was GitOps ist, wie es DevOps-Prozesse optimiert und warum es für Automatisierung, CI/CD und Infrastructure as Code wichtig ist.

Was ist ein DevOps Engineer? | Rolle & Aufgaben erklärt

Erfahren Sie, was ein DevOps Engineer macht, welche Fähigkeiten erforderlich sind und wie man ein DevOps Engineer wird. Red Hat Kurse und Zertifizierung

Was ist CI/CD? | Automatisierung in der Softwareentwicklung

Erfahren Sie, wie Continuous Integration & Continuous Deployment funktionieren, was eine CI/CD-Pipeline ist und ihre Bedeutung in der Softwareentwicklung.

Ressourcen zu DevOps

Verwandte Artikel