Anmelden / Registrieren Konto

Automatisierung

Was ist Bereitstellungsautomatisierung?

Bereitstellungsautomatisierung bietet die Möglichkeit, Ihre Software mithilfe automatisierter Prozesse zwischen Test- und Produktivumgebungen zu verschieben. Dies wiederum ermöglicht wiederholbare und zuverlässige Bereitstellungen für den gesamten Software-Entwicklungszyklus.

Mit Bereitstellungsautomatisierung können Sie neue Features und Anwendungen schneller und häufiger freigeben, ohne dass dazu manuelle Eingriffe in Anwendungsbereitstellungen erforderlich sind.

 

CI/CD und Bereitstellungsautomatisierung

Die Bereitstellungsautomatisierung ist ein wichtiger Grundstein für DevOps-Praktiken und die Verwaltung einer CI/CD-Pipeline.

CI/CD (Continuous Integration/Continuous Delivery) ist eine Methode zur häufigen Bereitstellung von Anwendungen für Kunden, die auf der fortlaufenden Automatisierung und kontinuierlichen Überwachung über den gesamten Lebenszyklus hinweg basiert, von der Integration über Tests bis hin zur Lieferung und Bereitstellung. 

Continuous Integration bedeutet üblicherweise, dass die App-Änderungen eines Entwicklers automatisch auf Bugs getestet und in ein Repository (wie GitHub oder eine Container-Registry) hochgeladen und von dort aus vom Operations-Team (oder mithilfe von Bereitstellungsautomatisierung) in einer Live-Produktivumgebung bereitgestellt werden können.

Sobald die App-Änderungen eines Entwicklers zusammengeführt wurden, werden sie überprüft. Dazu wird die Anwendung automatisch erstellt. Außerdem werden automatisierte Tests auf verschiedenen Ebenen ausgeführt, in der Regel Einheits- und Integrationstests, um sicherzustellen, dass die Änderungen die App nicht beeinträchtigen.

 

Erfahren Sie, wie Sie mit einer CI/CD-Pipeline die App-Entwicklung teilweise automatisieren können.

 

Continuous Deployment (eine weitere mögliche Definition für „CD") kann sich auf die Nutzung der Bereitstellungsautomatisierung zur Freigabe von Entwickleränderungen vom Repository zur Produktivphase beziehen, wo sie direkt vom Kunden genutzt werden können. 

Da der Produktivphase in der Pipeline kein manuelles Bereitstellungs-Gate vorgeschaltet ist, müssen beim Continuous Deployment die automatisierten Tests immer sehr gut durchdacht sein.

Ein automatisiertes Continuous Deployment soll der Überlastung von Operations-Teams bei manuellen Prozessen entgegenwirken, die die Anwendungsbereitstellung verlangsamen.

Sie baut auf den Vorteilen der Continuous Integration auf, indem sie auch die nächste Phase in der Bereitstellungs-Pipeline automatisiert.

 

Unterstützung von DevOps mit Automatisierung

CI/CD sollte von Entwicklungs- und DevOps-Teams unterstützt werden, die auf agile Weise unter Verwendung eines DevOps- oder SRE-Ansatzes (Site Reliability Engineering) zusammenarbeiten.

Die Einführung agiler Methoden für die Softwareentwicklung sorgt für beschleunigte Release-Zyklen, weniger Ausfallzeiten und die Möglichkeit, auftretende Fehler sofort beheben zu können und nicht auf die neue Version warten zu müssen.

Die Bereitstellungsautomatisierung funktioniert nur, wenn die Methoden des Entwicklungs- und Operations-Teams für das Bereitstellen von Anwendungen oder das Konfigurieren von Umgebungen identisch sind. 

Damit die Umgebung automatisiert werden kann, muss sie konsistent sein. Dabei sollte für jede Umgebung, auch für Ihre Produktivumgebung, derselbe Bereitstellungsprozess verwendet werden. 

Wenn diese Teams nicht aufeinander abgestimmt sind, besteht auch das Risiko, dass das Operations-Team Bereitstellungen manuell abwickelt, was zu Fehlern, Inkonsistenzen und einem längeren Release-Zyklus führt. 

Aus diesem Grund ist es so ungemein wichtig, dass alle Teams zusammenarbeiten und DevOps-Praktiken befolgen. Der Prozess zur Bereitstellungsautomatisierung muss von Ihren Entwicklungs- und Operations-Teams zusammen erstellt werden, damit Konsistenz und die Wiederholbarkeit des Prozesses gewährleistet werden können. 

 

Automatisierung des Software-Bereitstellungsprozesses

Eine Bereitstellungs-Pipeline beseht normalerweise aus drei Hauptschritten (möglicherweise auch mehr): Entwicklung, Test, Bereitstellung. Mit dieser Pipeline soll Ihre Fähigkeit unterstützt werden, den Bereitstellungsprozess zu automatisieren. Außerdem wird sichergestellt, dass Code schnell von der Programmierung zur Bereitstellung übergeht.

  • Entwicklung: Ein Entwickler schreibt Code in ein Software-Repository. Codeänderungen sollten in Umgebungen integriert werden, die der Produktivumgebung entsprechen.
  • Test: Mit einem Tool zur Bereitstellungsautomatisierung wie Jenkins oder Ansible werden der neue Code identifiziert und eine Reihe von Tests ausgelöst. Sobald ein Build alle Tests erfolgreich durchlaufen hat, kann er für die Produktion freigegeben werden. Ohne einen Prozess zur Bereitstellungsautomatisierung muss dieser Schritt manuell durchgeführt werden.
  • Bereitstellung: In dieser Phase wird die Anwendung in der Produktivumgebung bereitgestellt und ist für Nutzer verfügbar.

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

Die Continuous Integration ist ein wichtiger Teil des Entwicklungsprozesses, um Konflikte zwischen diesen häufigen Updates zu vermeiden. Bei einer erfolgreichen CI werden regelmäßig neue Codeänderungen für Apps entwickelt, geprüft und in einem gemeinsamen Repository zusammengeführt.

Sie sollten auch in der Lage sein, Software bei Bedarf in einer Umgebung bereitzustellen. Wenn Sie die Erstellung einer Umgebung beantragen müssen, ist Ihr Prozess nicht automatisiert.

 

Red Hat Ansible Automation Platform für die Bereitstellungsautomatisierung

Red HatⓇ AnsibleⓇ Automation Platform enthält alle erforderlichen Tools zur Implementierung einer unternehmensweiten Automatisierung, darunter Playbooks, ein visuelles Dashboard sowie Analysen.

Mit Red Hat Ansible Automation Platform können Sie mehrschichtige Anwendungen zuverlässig und konsistent in einem gemeinsamen Framework bereitstellen. Dabei haben Sie die Möglichkeit, die erforderlichen Services zu konfigurieren und Anwendungsartefakte von einem gemeinsamen System aus zu übertragen.

Mit Ansible Playbooks, das in YAML programmiert ist, beschreiben Sie den gewünschten Zustand Ihrer Systeme, die normalerweise in der Versionskontrolle gehalten werden. Red Hat Ansible Automation Platform übernimmt die Aufgabe, Ihre Systeme in den gewünschten Zustand zu versetzen, und zwar unabhängig vom aktuellen Status. 

Mit Ansible Playbooks können Sie Ihre Installationen, Upgrades sowie die täglichen Verwaltungsaufgaben wiederholbar und zuverlässig gestalten.

Dazu wurde das Produkt von Forrester Research im Bericht „The Forrester Wave™: Infrastructure Automation Platforms, Q3 2020" zum Leader gekürt.

Unternehmen müssen nicht nur in der Lage sein, schnelle Automatisierungen zu erstellen, sondern auch die Fähigkeit besitzen, die Automatisierung projekt- und teamübergreifend mit der richtigen Governance und Kontrolle zu teilen und wiederzuverwenden. 

Mit der geeigneten Automatisierungslösung lassen sich neue Anwendungen und Services schneller bereitstellen, IT-Infrastrukturen effizienter verwalten und eine gesteigerte Produktivität in Sachen Anwendungsentwicklung realisieren.

Die Tools, die Sie für die Automatisierung benötigen

Red Hat Ansible Automation Platform

Eine einfache agentenlose Plattform zur Entwicklung von IT-Automatisierung in großem Umfang. Zentralisieren und kontrollieren Sie Ihre IT-Infrastruktur mit einem visuellen Dashboard, rollenbasierter Zugriffskontrolle und mehr.

Red Hat Openshift

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. Sie ist daraufhin ausgelegt, die Entwicklerproduktivität zu steigern und Innovationen zu fördern.

Automatisierung hat noch viel mehr zu bieten