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.
Anwendung release Orchestrierung (ARO): Tools, Skripte oder Produkte, die eine bestimmte Version einer Anwendung in einer Zielumgebung automatisch installieren und korrekt konfigurieren, sodass sie einsatzbereit ist. Wird auch als „Bewerbung“ bezeichnet release Automatisierung“ (ARA) oder „kontinuierliche Lieferung und release Automatisierung“ (CDRA).
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 bis zu dem Punkt erhöhen, an dem eine Go/No-Go-Entscheidung getroffen werden kann. Eine Lieferpipeline kann als Ergebnis der Optimierung der release verarbeiten.
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 verarbeiten.
Rückkopplungsschleifen: Die Schaffung eines schnellen und kontinuierlichen Feedbacks zwischen Betrieb und Entwicklung zu Beginn des Softwarebereitstellungsprozesses ist ein wichtiges Grundprinzip DevOps. Auf diese Weise stellen Sie nicht nur sicher, dass Sie den Kunden das bieten, was sie tatsächlich wollen, sondern verringern auch die Belastung für die Entwicklung und verringern die Angst davor deployment, schafft eine bessere Beziehung zwischen Entwicklung und Betrieb und steigert 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 Skripterstellung und/oder die Verwaltung von Arbeitsabläufen erfordert und dass sie auf kontinuierliche Bereitstellung umsteigen müssen. Continuous Delivery nutzt nicht nur Tools für die kontinuierliche Integration, sondern auch für End-to-End release Orchestrierung, Testautomatisierung, Sicherheit, IT-Service-Management 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 jedermann 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 spezifischer Softwareentwicklung und -entwicklung verwendet werden können deploymentprozesse. In einer komplexen Unternehmensumgebung a 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 Software releases von der Entwicklungsphase bis zur eigentlichen Software release sich.
Verschiebung nach links: Mit zunehmender Bereitstellungsgeschwindigkeit steigen Sicherheitsrisiken und Compliance-Probleme in verschiedenen Anwendungen, Teams und Umgebungen. Eine Verschiebung nach links bezieht sich auf die Integration von Risikobewertungs-, Sicherheitstests- und Compliance-Bewertungsprozessen zu einem früheren Zeitpunkt in der Lieferpipeline. Dies macht es kostengünstiger und einfacher, Potenziale anzusprechen release Verzögerungen oder Ausfälle, Sicherheitslücken, die die Produktion gefährden, und Verstöße gegen die IT-Governance, die teure Bußgelder nach sich ziehen.
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 in Nulltoleranz für Fehler in der Produktion. Kunden haben keine Fehlertoleranz. A deployEin Ausfall oder eine Dienstunterbrechung jeglicher Art bei kundenorientierter Software kann katastrophale Auswirkungen auf ein Unternehmen haben, insbesondere in stark regulierten Branchen.