Jump to section

Was ist Application Lifecycle Management (ALM)?

URL kopieren

ALM (Application Lifecycle Management) umfasst die Menschen, Tools und Prozesse, die den Lifecycle einer Anwendung von der Entwicklung bis zum Ende verwalten. 

ALM besteht aus verschiedenen Disziplinen, die im Rahmen früher verwendeter Entwicklungsprozesse wie der Wasserfallmethode oft getrennt wurden, beispielsweise Projektmanagement, Anforderungsmanagement, Softwareentwicklung, Testphase, Qualitätssicherung, Deployment und Wartung. 

Bei ALM werden Ansätze einer agilen und DevOps-Entwicklung unterstützt, und zwar durch die Integration aller Disziplinen, was die Zusammenarbeit der Teams in Ihrem Unternehmen viel effizienter macht. 

Die Einführung von ALM ermöglicht dazu eine Continuous Delivery von Software und Updates mit häufigen Releases, zuweilen mehrere am Tag, während komplett neue Releases nur alle paar Monate oder einmal pro Jahr durchgeführt werden.

Dazu bietet ALM den Rahmen für die Softwareentwicklung und macht ein kontinuierliches Management der Software noch einfacher. ALM-Praktiken bestehen aus einem knappen, vorgefertigten Plan und den Anforderungen, die aus einer Idee eine Anwendung machen. 

Bei der Softwareentwicklung mit ALM muss die gesamte Lebensdauer der Anwendung berücksichtigt werden. Wartungsarbeiten sowie zukünftige Updates müssen beachtet werden und auch, wann die Anwendung außer Betrieb genommen und ersetzt werden soll. 

Durch die Kombination dieser Faktoren sorgt ALM für ein beschleunigtes Deployment, verbesserte Transparenz Ihres Workflows, hochwertigere Produkte und eine höhere Entwicklerzufriedenheit.

ALM sorgt für einen transparenten Entwicklungsprozess. Da der Prozess integriert ist, wissen Sie stets, welche Fortschritte gemacht wurden, welche Schritte noch durchgeführt werden müssen, wie viel Zeit Aufgaben in Anspruch nehmen, welche Tests abgeschlossen wurden etc.

Anwendungs-Governance

Governance beschreibt die bezüglich einer Anwendung getroffenen Entscheidungen. Wenn Sie mit der Entwicklung einer neuen Anwendung beginnen, starten Sie mit einer ersten Idee für die App. Sie müssen aber auch bedenken, wie die App mit Ihren geschäftlichen Anforderungen und Zielen zusammenhängt.

Diese Überlegungen führen zu den Anforderungen der neuen Anwendung, die im Rahmen der Governance-Phase definiert und vereinbart werden müssen. 

Auch Ressourcenmanagement, Daten, Sicherheit und Nutzerzugriff gehören zur Anwendungs-Governance. 

Die Standardisierung dieser Prozesse ermöglicht eine Automatisierung der Governance. Dies wiederum beschleunigt die Bereitstellung der Anwendungen.

Anwendungsentwicklung

Nachdem die Anforderungen für eine Anwendung oder ein Update definiert und vereinbart worden sind, kann die Entwicklung beginnen. Teams, die dazu agile Methoden verwenden, führen die Entwicklung und Bereitstellung ggf. einmal oder mehrmals am Tag durch. 

Design, Builds, Tests und Deployment der Anwendung sind Teil der Entwicklungsphase.

Softwaretest

Sobald die neue Anwendung entwickelt ist, müssen vor der Weiterleitung in die Produktionsphase Tests durchgeführt und Bugs behoben werden. 

In agilen und DevOps-Teams muss die Testphase parallel zur Entwicklung stattfinden. Dazu wird kontinuierlich Feedback ans Entwicklungsteam zurückgegeben. 

Die Continuous Integration muss Teil des Prozesses sein, um Konflikte zwischen den häufigen Updates zu vermeiden. 

Das Ziel der Testphase ist es sicherzustellen, dass die mit der Governance definierten Anforderungen erfüllt wurden und die Anwendung vor ihrer Veröffentlichung an den Nutzer wie gewünscht funktioniert.

Betrieb und Wartung

Nachdem alle Tests abgeschlossen und alle Bugs behoben wurden, kann die Anwendung dem Nutzer zur Verfügung gestellt werden. 

In der Betriebs- und Wartungsphase richtet sich ALM auf die komplette Lebensdauer einer Anwendung. Die Arbeit der Operations-Teams endet nicht mit dem Deployment der Anwendung. Regelmäßige Wartungen und Updates müssen berücksichtigt werden. 

Die Außerbetriebnahme von Anwendungen oder Services gehört ebenfalls zur Wartung. Teams sollten festlegen, zu welchem Zeitpunkt eine Anwendung nicht mehr länger unterstützt wird oder eine neue Version zur Verfügung gestellt wird.

ALM im Vergleich zu SDLC

ALM wird manchmal mit SDLC (Software Development Life Cycle) verwechselt, weil beide mit Softwareentwicklung zu tun haben. Der Hauptunterschied ist, dass der Fokus von SDLC primär auf der Entwicklungsphase liegt, während ALM den gesamten Anwendungs-Lifecycle – von der Konzipierung über die Wartung bis hin zur Außerbetriebnahme – berücksichtigt und über die Entwicklung der Anwendung hinausgeht. 

SDLC kann als Teil des Application Lifecycle Managements angesehen werden, insbesondere in der Entwicklungs-, Test- und Deployment-Phase. ALM kann je nach Anwendung mehrere Entwicklungs-Lifecycles umfassen.

ALM-Tools fungieren im Wesentlichen als Projektmanagement-Tools, mit denen Menschen und Prozesse zusammengebracht werden. Suchen Sie nach einem Tool, das Folgendes beinhaltet: Versionskontrolle, die Fähigkeit zur Team-Kommunikation in Echtzeit, Funktionen des Anforderungsmanagements, Schätzungs- und Projektplanung, Quellcode- und Testmanagement.

Es kann sein, dass Sie alle diese Funktionen in einem Tool finden oder dass Sie zusätzliche (z. B. entwicklerspezifische) Tools integrieren müssen. Das ideale ALM-Tool sollte auch Ihren Entwicklungsprozess unterstützen, egal ob agil, Wasserfall, DevOps oder etwas anderes.

Beispiele für ALM-Tools:

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

ALM unterstützt einen DevOps-Ansatz, der wiederum bestens mit Linux®-Containern harmoniert. Container bieten Ihrem Team die zugrunde liegende Technologie für eine cloudnative Entwicklung und unterstützen eine einheitliche Umgebung für die Entwicklung, Bereitstellung, Integration und Automatisierung.

Und Kubernetes ist die moderne Art, Operationen mit Linux-Containern zu automatisieren. Mit Kubernetes können Sie einfach und effizient Cluster verwalten, auf denen Linux-Container in Public, Private oder Hybrid Clouds ausgeführt werden.

Red Hat® OpenShift® ist eine unternehmensfähige Kubernetes-Plattform, die den Entwicklungs- und Operations-Teams eine gemeinsame Plattform und diverse Tools bietet. Damit erhalten Sie die Basis für die Entwicklung, Bereitstellung und Verwaltung containerisierter Anwendungen in der gewünschten Infrastruktur, um Ihre ALM-Ziele zu realisieren. 

Weiterlesen

ARTIKEL

Was ist DevSecOps?

Wenn Sie die Agilität und Reaktionsfähigkeit von DevOps vollständig ausschöpfen möchten, muss die IT-Sicherheit im gesamten Lifecycle Ihrer Apps eine Rolle spielen.

ARTIKEL

Was ist CI/CD?

CI/CD sorgt für eine kontinuierliche Automatisierung und Überwachung über alle Phasen des App-Lifecycles hinweg, von der Integration und Tests bis hin zur Bereitstellung und Implementierung.

ARTIKEL

Was ist ein DevOps-Ingenieur?

DevOps-Ingenieure besitzen verschiedene besondere Fähigkeiten und Kenntnisse, die für eine bessere Zusammenarbeit, mehr Innovationen und kulturelle Verschiebungen innerhalb einer Organisation sorgen können. 

Mehr über DevOps erfahren

Produkte

Red Hat Open Innovation Labs

Ein fokussierter Intensiv-Workshop mit Red Hat Experten, bei dem Sie lernen, eine agile Methodik und Open Source-Tools zu verwenden, um die geschäftlichen Probleme Ihres Unternehmens anzugehen.

Red Hat Consulting

Interaktionen mit unseren strategischen Beratern, die sich ein Gesamtbild von Ihrem Unternehmen machen, Ihre Herausforderungen analysieren und Ihnen helfen, diese mit umfassenden, kosteneffektiven Lösungen zu meistern.

Ressourcen

Checkliste

Unternehmensautomatisierung mit DevOps-Methoden

Whitepaper

Optimierung von CI/CD-Pipelines mit der Red Hat Ansible Automation Platform

Illustration - mail

Möchten Sie mehr zu diesen Themen erfahren?

Abonnieren Sie unseren kostenlosen Newsletter, Red Hat Shares.