gemeinsam DevOps Nutzungsbedingungen

Hier ist eine Liste von gemeinsamen DevOps Begriffe, die man kennen muss, um im Unternehmen effektiv zu sein DevOps.

Inhaltsverzeichnis

Abnahmetests: In der Regel werden umfassende Tests des gesamten Systems durchgeführt, um festzustellen, ob die Gesamtqualität sowohl neuer als auch bestehender Funktionen gut genug ist, damit das System in Produktion gehen kann.

Orchestrierung der Anwendungsfreigabe (ARO): Tools, Skripte oder Produkte, die eine bestimmte Version einer Anwendung automatisch in einer Zielumgebung installieren und richtig konfigurieren, sodass sie sofort einsatzbereit ist. Wird auch als „Application Release Automation“ (ARA) oder „Continuous Delivery and Release Automation“ (CDRA) bezeichnet.

Black-Box-Tests: eine Test- oder Qualitätssicherungspraxis, die keine Kenntnis der inneren Abläufe des getesteten Systems voraussetzt und daher versucht, das äußere und nicht das innere Verhalten oder den Zustand zu verifizieren.

Build-Agent: Ein Agententyp, der bei der kontinuierlichen Integration verwendet wird und lokal oder remote in Bezug auf den Continuous-Integration-Server installiert werden kann. Es sendet und empfängt Nachrichten über die Handhabung von Software-Builds.

Build-Automatisierung: Tools oder Frameworks, die es ermöglichen, Quellcode automatisch in veröffentlichbare Binärdateien zu kompilieren. Umfasst normalerweise Unit-Tests auf Codeebene, um sicherzustellen, dass sich einzelne Codeteile wie erwartet verhalten.

Konfiguration als Code: eine Systemkonfigurationsverwaltungstechnik, bei der die Konfiguration für Maschinen, Anwendungen, Jobs usw. im Code angegeben und in der Versionskontrolle gehalten wird, sodass Teams Anwendungen/Systeme/Jobs in Sekundenschnelle konfigurieren können.

Konfigurationsdrift: Ein Begriff für die allgemeine Tendenz von Software- und Hardwarekonfigurationen, aufgrund manueller Ad-hoc-Änderungen (wie Hotfixes), die nicht wieder in die Vorlage übernommen werden, von der Vorlagenversion des Systems abzuweichen oder inkonsistent zu werden.

Container: Ähnlich, aber leichter als eine virtuelle Maschine, sind Container eigenständige, ausführbare Pakete, die alles enthalten, was zum Ausführen einer Software erforderlich ist: Code, Laufzeit, Systemtools, Systembibliotheken, Einstellungen und so weiter.

Kontinuierliche Bereitstellung (CD): Eine Reihe von Prozessen und Praktiken, die Verschwendung aus Ihrem Softwareproduktionsprozess radikal beseitigen, eine schnellere Bereitstellung hochwertiger Funktionen ermöglichen und eine schnelle und effektive Feedbackschleife zwischen Ihrem Unternehmen und Ihren Benutzern einrichten.

Kontinuierliche Integration (CI)Eine Entwicklungspraxis, bei der Entwickler mehrmals täglich Code in ein gemeinsam genutztes Repository integrieren müssen. Jeder Check-in wird dann durch einen automatisierten Build überprüft, sodass Teams Probleme frühzeitig erkennen können.

Lieferpipeline: eine Abfolge orchestrierter, automatisierter Aufgaben zur Implementierung der Softwarelieferung Prozess für eine neue Anwendungsversion. Jeder Schritt in der Pipeline soll das Vertrauen in die neue Version so weit steigern, dass eine Go/No-Go-Entscheidung getroffen werden kann. Eine Lieferpipeline kann als Ergebnis der Optimierung des Release-Prozesses einer Organisation betrachtet werden.

DevOps – Entwicklung + Betrieb: ein Portmanteau aus Entwicklung und Betrieb, DevOps ist eine Reihe von Prozessen, Praktiken und Tools, die die Kommunikation, Zusammenarbeit und Prozesse zwischen den verschiedenen Rollen im Softwareentwicklungszyklus verbessern und so zu einer schnelleren und stabileren Bereitstellung besserer Software führen.

DevSecOps: die Praxis der Integration von Sicherheit in die DevOps

Rückkopplungsschleifen: Die Schaffung eines schnellen und kontinuierlichen Feedbacks zwischen Betrieb und Entwicklung zu Beginn des Softwarebereitstellungsprozesses ist ein wichtiges Grundprinzip DevOpsAuf diese Weise stellen Sie nicht nur sicher, dass Sie Ihren Kunden das bieten, was sie wirklich wollen, sondern Sie verringern auch die Entwicklungslast, verringern die Angst vor der Bereitstellung, schaffen eine bessere Beziehung zwischen Entwicklung und Betrieb und steigern die Produktivität.

Governance: In der IT bezeichnet Governance den Prozess, mit dem Organisationen ihre Technologieinvestitionen bewerten und sicherstellen, dass sie die erwartete Leistung erbringen und keine neuen Risiken mit sich bringen. Ein formeller Governance-Prozess hilft Unternehmen auch dabei, sicherzustellen, dass die IT-Aktivitäten mit den Geschäftszielen übereinstimmen, und stellt gleichzeitig sicher, dass alles den gängigen Standards entspricht, wie z. B. OWASP, PCI 3.2 und CWE/SANS.

Infrastruktur als Code: eine Technik zur Systemkonfigurationsverwaltung, bei der Maschinen, Netzwerkgeräte, Betriebssysteme, Middleware usw. in einem vollständig automatisierbaren Format spezifiziert werden. Die Spezifikation oder „Blaupause“ wird als Code betrachtet, der von Bereitstellungstools ausgeführt wird, der Versionskontrolle unterliegt und im Allgemeinen denselben Praktiken unterliegt, die auch für die Entwicklung von Anwendungscode verwendet werden.

Infrastruktur als Service (IaaS): In der Cloud gehostete virtualisierte Maschinen, die in der Regel nach dem Prinzip „Pay as you go“ abgerechnet werden. Benutzer haben die volle Kontrolle über die Maschinen, müssen jedoch die erforderliche Middleware und Anwendungen selbst installieren und konfigurieren.

Jenkins: Jenkins, der in Java geschriebene Open-Source-Automatisierungsserver, ist seit langem der De-facto-Standard für kontinuierliche Integration. Mit Jenkins können Entwickler ihren Code mehrmals täglich in ein gemeinsames Repository integrieren. Wenn Unternehmen ihre Softwarebereitstellungsprozesse skalieren möchten, stellen sie häufig fest, dass Jenkins zu viel Skripting und/oder die Wartung von Workflows erfordert und dass sie auf kontinuierliche Bereitstellung erweitern müssen. Kontinuierliche Bereitstellung nutzt nicht nur Tools für kontinuierliche Integration, sondern auch für End-to-End-Release-Orchestrierung, Testautomatisierung, Sicherheit, IT-Servicemanagement und mehr.

Lesen: „Lean Manufacturing“ oder „Lean Production“ ist ein Ansatz oder eine Methodik, die darauf abzielt, Verschwendung in einem Produktionsprozess zu reduzieren, indem der Schwerpunkt auf der Werterhaltung liegt. Lean-Konzepte basieren weitgehend auf von Toyota im Automobilbau entwickelten Praktiken und wurden als Teil agiler Methoden auf die Softwareentwicklung angewendet. Die Wertstromkarte, die versucht, wertvolle und verschwenderische Prozessschritte visuell zu identifizieren, ist ein wichtiges Lean-Tool.

Nichtfunktionale Anforderungen (NFRs): die Spezifikation von Systemeigenschaften wie Benutzerfreundlichkeit, Klarheit des Designs, Latenz, Geschwindigkeit und Fähigkeit, mit einer großen Anzahl von Benutzern umzugehen, die beschreiben, wie einfach oder effektiv eine Funktionalität genutzt werden kann, und nicht nur, ob sie vorhanden ist. Diese Eigenschaften können auch mithilfe der Continuous Delivery-Feedbackschleife angesprochen und verbessert werden.

Open Source: bezieht sich auf ein Programm oder eine Anwendung mit Quellcode, der von jedem geändert werden kann. Es gibt eine Vielzahl von Open-Source-Frameworks wie AngularJS und React, Open-Source-Tools wie Gradle und Jenkins und Open-Source-Bibliotheken wie JHipster, die zur Verbesserung bestimmter Softwareentwicklungs- und Bereitstellungsprozesse verwendet werden können. In einer komplexen Unternehmensumgebung kann ein DevOps Die Plattform kann Open-Source-Tools integrieren und sie in die Lieferpipeline integrieren.

Plattform als Service (PaaS): In der Cloud gehostete Anwendungslaufzeiten, die in der Regel nach dem Prinzip „Pay as you go“ abgerechnet werden. Kunden stellen den Anwendungscode und begrenzte Konfigurationseinstellungen bereit, während Middleware, Datenbanken usw. Teil der bereitgestellten Laufzeit sind.

Bereitstellung: der Prozess der Vorbereitung neuer Systeme für Benutzer. In einem Continuous-Delivery-Szenario wird diese Arbeit normalerweise von Entwicklungs- oder Testteams durchgeführt. Die Systeme werden grundsätzlich virtualisiert und bei Bedarf instanziiert. Die Konfiguration der Maschinen zur Installation von Betriebssystemen, Middleware usw. wird von automatisierten Systemkonfigurationsmanagement-Tools übernommen, die auch überprüfen, ob die gewünschte Konfiguration beibehalten wird.

Regressionstests: Testen des End-to-End-Systems, um sicherzustellen, dass Änderungen an einer Anwendung keine negativen Auswirkungen auf die vorhandene Funktionalität haben.

Release Management: der Prozess der Verwaltung von Softwareversionen von der Entwicklungsphase bis zur eigentlichen Softwareversion.

Verschiebung nach linksMit zunehmender Liefergeschwindigkeit steigen auch die Sicherheitsrisiken und Compliance-Probleme in verschiedenen Anwendungen, Teams und Umgebungen. „Shifting Left“ bedeutet, dass Prozesse zur Risikobewertung, Sicherheitstests und Compliance-Bewertung früher in die Lieferpipeline integriert werden. Auf diese Weise können potenzielle Verzögerungen oder Fehler bei der Veröffentlichung, Sicherheitslücken, die die Produktion bedrohen, und Verstöße gegen die IT-Governance, die zu teuren Bußgeldern führen, kostengünstiger und einfacher behoben werden.

Testgetriebene Entwicklung (TDD): Eine Entwicklungspraxis, bei der kleine Tests zur Überprüfung des Verhaltens eines Codeabschnitts vor dem Code selbst geschrieben werden. Die Tests schlagen zunächst fehl, und das Ziel des/der Entwickler(s) besteht dann darin, Code hinzuzufügen, um sie zum Erfolg zu führen.

Gerätetest: Tests auf Codeebene (d. h. für die Ausführung ist kein vollständig installiertes End-to-End-System erforderlich), um das Verhalten einzelner Codeteile zu überprüfen. Bei der testgetriebenen Entwicklung werden in großem Umfang Unit-Tests eingesetzt, um das beabsichtigte Verhalten zu beschreiben und zu überprüfen.

Wertstromanalyse: eine Technik zur Verbesserung der Prozessvisualisierung, die häufig in Lean-Manufacturing- und Engineering-Ansätzen eingesetzt wird. Wertstromkarten werden verwendet, um wesentliche Prozessschritte gegenüber „Verschwendung“ zu identifizieren, die schrittweise aus dem Prozess eliminiert werden können.

Versionskontrollsystem (VCS): ein System, das Änderungen an einer Datei oder einem Satz von Dateien im Laufe der Zeit aufzeichnet, sodass Sie bestimmte Versionen später abrufen können. (GitHub, GitLab, Subversion usw.)

Virtualisierung: Ein Systemverwaltungsansatz, bei dem Benutzer und Anwendungen keine physischen Maschinen verwenden, sondern simulierte Systeme, die auf tatsächlicher, „echter“ Hardware ausgeführt werden. Solche „virtuellen Maschinen“ können in Sekundenschnelle automatisch erstellt, gestartet, gestoppt, geklont und verworfen werden, was den Abläufen eine enorme Flexibilität verleiht.

White-Box-Test: Eine Test- oder Qualitätssicherungspraxis, die auf der Überprüfung der korrekten Funktion der Interna eines Systems durch Untersuchung seines (internen) Verhaltens und Zustands während der Ausführung basiert.

Null Toleranz: wie etwa Nulltoleranz für Fehler in der Produktion. Kunden haben Nulltoleranz für Fehler. Ein Bereitstellungsfehler oder jede Art von Serviceunterbrechung bei kundenorientierter Software kann katastrophale Auswirkungen auf ein Unternehmen haben, insbesondere in stark regulierten Branchen.