DevOps ist eine sich entwickelnde Philosophie mit zugehörigem Framework für eine schnellere und bessere Applikationsentwicklung sowie eine schnellere Freigabe neuer bzw. revidierter Softwarefunktionen oder -produkte.
DevOps fördert eine reibungslose, kontinuierliche Kommunikation, Zusammenarbeit, Integration sowie Sichtbarkeit und Transparenz zwischen Applikationsentwicklungsteams (dem Development – Dev) und den zugehörigen IT-Betriebsteams (Operations – Ops).
Diese engere Arbeitsbeziehung zwischen „Dev“ und „Ops“ durchdringt jede Phase des DevOps-Lebenszyklus von der anfänglichen Softwareplanung über das Codieren, Entwickeln, Testen und Freigeben bis hin zu den Phasen Bereitstellung, Betrieb und laufende Überwachung. Rückmeldungen von Kunden fließen kontinuierlich in Abläufe zur Optimierung, Entwicklung, Überprüfung und Implementierung ein. Ein Ergebnis dieser Anstrengungen kann die schnellere, kontinuierliche Bereitstellung der notwendigen Funktionsänderungen oder -ergänzungen sein.
Die DevOps-Ziele lassen sich vier Kategorien zuordnen: Kultur, Automatisierung, Messung und Weitergabe (Culture, Automation, Measurement, Sharing – CAMS). In all diesen Bereichen können DevOps-Tools sinnvoll eingesetzt werden. Durch die Tools werden Effizienz und Zusammenarbeit bei Softwareentwicklung und -betrieb gefördert; zeitaufwendige manuelle oder statische Aufgaben im Zusammenhang mit Integration, Entwicklung, Tests, Implementierung und Monitoring lassen sich automatisieren.
Im Kern geht es bei DevOps darum, die Kundenzufriedenheit zu steigern und einen schnelleren Nutzen zu ermöglichen. Dazu sollen Kommunikations- und Kooperationsbarrieren zwischen den für Entwicklung und IT-Betrieb zuständigen Teams überwunden werden. DevOps ist außerdem darauf ausgelegt, geschäftliche Innovationen und kontinuierliche Prozessverbesserungen zu fördern.
Das DevOps-Verfahren ermöglicht eine schnellere, bessere und sicherere Bereitstellung von geschäftlicher Wertschöpfung für die Endkunden von Unternehmen. Die Wertschöpfung kann sich beispielsweise aus einer häufigeren Veröffentlichung neuer Produktversionen, Funktionen oder Updates ergeben. Neue Produktversionen bzw. -funktionen sind für Kunden dann schneller nutzbar – immer mit angemessener Qualität und Sicherheit. Der Schwerpunkt kann auch darauf liegen, Probleme oder Fehler schneller zu erkennen und zu beheben.
Die zugrunde liegende Infrastruktur unterstützt DevOps mit nahtloser Performance, Verfügbarkeit und Zuverlässigkeit der Software von der Entwicklung über die Testphase bis hin zur Produktionsfreigabe.
Unternehmen können einige gängige DevOps-Methoden einsetzen, um die Entwicklung und Produktfreigabe zu beschleunigen und zu verbessern. Beispiele dafür sind die beliebten Verfahren Scrum, Kanban und Agile:
Nutzer von DevOps-Verfahren setzen im Rahmen ihrer DevOps-Toolchain oft bestimmte DevOps-freundliche Tools ein. Ziel dieser Tools ist es, die verschiedenen Phasen des Workflows zur Softwarebereitstellung (auch als Pipeline bezeichnet) noch stärker zu straffen, zu verkürzen und zu automatisieren. Viele derartige Tools sind auch an wesentlichen DevOps-Grundsätzen wie Automatisierung, Zusammenarbeit und Integration zwischen Entwicklungs- und Betriebsteam ausgerichtet. Hier einige Beispiele für Tools, die in unterschiedlichen Phasen des DevOps-Lebenszyklus genutzt werden.
Die DevOps-Verfahren sind an der Vorstellung einer kontinuierlichen Optimierung und Automatisierung ausgerichtet. Bei zahlreichen dieser Praktiken stehen eine oder mehrere Phasen des Entwicklungszyklus im Mittelpunkt. Hier einige Beispiele:
Verfechter von DevOps führen verschiedene geschäftliche und technische Vorteile an, die oftmals die Kundenzufriedenheit steigern können. Hier einige Beispiele:
Viele DevOps-Methoden für eine effizientere Softwareentwicklung und -bereitstellung haben eine frühe Grundlage in der agilen Softwareentwicklung und schlanken Programmierung. Allerdings entwickelte sich DevOps ursprünglich aus unterschiedlichen Basisbewegungen zur Harmonisierung der Aktivitäten von Entwicklern und ihren Kollegen im Betriebsteam.
In den frühen 2000er-Jahren wurde es notwendig, die Verfügbarkeit beliebter Websites wie Google und Flickr vor massiven Einbrüchen zu schützen. So kam es zum Einsatz von Software Reliability Engineers (SREs) – im Softwarebetrieb tätigen Mitarbeitern, die in enger Zusammenarbeit mit Entwicklern dafür sorgen, dass die Websites nach der Produktionsfreigabe von Code einsatzbereit bleiben.
Im Jahr 2009 präsentierten die Flickr-Engineers John Allspaw und Paul Hammond ihre DevOps-artige Methodik auf einer Konferenz. Der Titel: „10+ Deploys per Day: Dev and Ops Cooperation at Flickr“ (Mehr als zehn Bereitstellungen pro Tag: Kooperation zwischen Dev und Ops bei Flickr). Im gleichen Jahr veranstaltete Patrick Debois den ersten „DevOps Day“ in Belgien. Das Hashtag #DevOps entstand, und rund um den Globus fanden weitere DevOps Days statt.
In den folgenden Jahren wurden branchenspezifische Tools und Frameworks (auch in Open-Source-Form) entwickelt und vorgeschlagen, um die DevOps-Ziele zu unterstützen.
NetApp fördert bessere Geschäftsergebnisse durch DevOps: Betriebsteams stellen mit weniger technischem Aufwand eine automatisierte Infrastruktur bereit, und Entwickler arbeiten reibungsloser in einer zuverlässigen Umgebung. Mit NetApp-Technologie können die im Unternehmen benötigten Services und Funktionen problemlos bereitgestellt werden, um die Entwicklerproduktivität in On-Premises- und Cloud-Umgebungen zu maximieren.
NetApp erleichtert Entwicklern, Testern, Qualitätsprüfern und Betriebsteams die Nutzung von Infrastrukturressourcen (etwa persistentem Storage) als Code, immer über vertraute Tools in der DevOps-Pipeline. Beispiele dafür sind NetApp Storage-APIs und IaC-Integrationen in Kombination mit Tools wie Puppet, Ansible, Docker, Kubernetes und OpenShift.
NetApp macht es aber nicht nur für Entwickler einfach, Storage als Code einzusetzen. Technologie von NetApp sorgt auch dafür, dass Betriebsteams problemlos Ressourcen für Mitarbeiter im Entwicklungs- und Testbereich provisionieren und bereitstellen können. Entwickler und Tester haben dann die Möglichkeit, die Codierungs- und Testzyklen durch Selbstprovisionierung schneller, zeitsparender Storage-Funktionen etwa für Snapshots oder Cloning zu beschleunigen. Mit derartigen Funktionen können Kopien von Echtzeit-Produktionsdaten oder Codesets binnen weniger Sekunden oder Minuten als Code provisioniert werden, sodass die Entwicklung und der Qualitätssicherungsworkflow schneller werden. NetApp Lösungen passen perfekt zu DevOps – informieren Sie sich über die Hintergründe.
Weshalb NetApp Lösungen ideal für DevOps sind
Das Engagement von NetApp erstreckt sich auch auf thePub. Diese Entwickler-Community regt zur Zusammenarbeit an und bietet Tipps, Tricks sowie Ideen rund um die neuesten DevOps-Praktiken und -Protokolle.
Bei der DevOps-Kultur stehen kleine interdisziplinäre Teams im Mittelpunkt, die unabhängig arbeiten können und gemeinsam für das Anwendererlebnis bei einem Softwareprodukt verantwortlich sind.