Anmelden / Registrieren Konto

DevOps

Was ist Application Lifecycle Management (ALM)?

Jump to section

ALM 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, Testen, Qualitätssicherung, Bereitstellung 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 eine beschleunigte Bereitstellung, verbesserte Transparenz Ihres Workflows, hochwertigere Produkte und eine höhere Entwicklerzufriedenheit.

 

ALM-Phasen

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 Bereitstellung 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 findet die Testphase parallel zur Entwicklung statt.Dazu wird kontinuierlich Feedback ans Entwickler-Team 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 der Bereitstellung 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-Lebenszyklus – von der Konzipierung über die Wartung bis hin zur Außerbetriebnahme – berücksichtigt und nicht mit der Bereitstellung der Anwendung endet. 

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

 

Tools des Application Lifecycle Managements

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

 

Unternehmenstechnologie und ALM

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 Entwickler- und Operations-Teams eine gemeinsame Plattform und diverse Tools bietet. Damit erhalten Sie die Basis für die Entwicklung, Implementierung und Verwaltung containerisierter Anwendungen in Ihrer gewünschten Infrastruktur, um Ihre ALM-Ziele zu realisieren. 

Die Tools, die Sie für das Anwendungsmanagement benötigen

Red Hat OpenShift product logo

Eine unternehmensfähige Kubernetes-Containerplattform, auf der Operationen für den gesamten Stack automatisiert werden, um Hybrid- und Multi-Clouds noch einfacher verwalten zu können. 

Red Hat Ansible Automation

Eine einfache, agentenlose IT-Automatisierungstechnologie, mit der sich Ihre aktuellen Prozesse verbessern, Anwendungen migrieren und optimieren lassen und die nur eine Sprache für sämtliche DevOps-Verfahren in Ihrem Unternehmen verwendet.

DevOps hat noch viel mehr zu bieten