Vollständiges Periodensystem der DevOps-Tools
13:04, 12.06.2024
Erforschung des DevOps-Periodensystems
Nachdem wir nun verstanden haben, worum es bei DevOps geht, wollen wir uns genauer ansehen, was das Periodensystem von DevOps bedeutet. Das DevOps-Periodensystem ist eine Tabelle, die alle DevOps-Tools für den Softwareentwicklungszyklus enthält. Es ist die ultimative Branchenquelle, um die neuesten Technologien in diesem Bereich zu finden. Es wurde im Jahr 2020 von DevOps-Experten erstellt, die mehr als 400 Tools zur Aufnahme in die Tabelle eingereicht haben.
Man kann das DevOps-Periodensystem nutzen, um schnell Tools für die Pipeline zu finden und zu verwenden, um das Projekt zu beginnen, Methoden zu ersetzen oder neue einzubinden. Die Tabelle enthält Kategorien von Lösungen, die nach verschiedenen Aspekten wie Funktionalität, Art und Kosten sortiert sind: z. B. kostenlos, Open Source, Freemium, kostenpflichtig, Enterprise usw. Das Periodensystem ist eine ultimative Navigationsplattform, die direkt darauf hinweist, wo Sie die genannten Softwarelösungen für Überwachung, Automatisierung, Tests und andere Zwecke herunterladen können.
Generell kann das DevOps-Periodensystem dabei helfen, Prozesse zu automatisieren und ein Gleichgewicht zwischen den Fachleuten aus Entwicklung, Betrieb und Produktmanagement herzustellen. Das Hauptziel von DevOps ist es, die Häufigkeit von Software-Releases zu erhöhen, Prozesse so weit wie möglich zu automatisieren, die Umgebung zu überwachen und die Abläufe innerhalb der Umgebung zu verbessern.
Jede Kategorie im DevOps-Periodensystem umfasst Tools, die verschiedene Bedürfnisse abdecken können.
1. AIOps und Analytics-Kategorien
In der Vergangenheit waren AIOps und Analytics zwei verschiedene Kategorien innerhalb eines DevOps-Stammverzeichnisses. Die KI-Kategorie umfasste Big Data-Analysen, KI-Technologien und maschinelles Lernen. Zu den Analysen gehören Tools, die dabei helfen, die von der Anwendung gesammelten Daten zu analysieren und auf der Grundlage der Ergebnisse aufschlussreiche Berichte zu erstellen.
In der aktuellen Version des DevOps-Periodensystems wurde die Kategorie "Analytics" zusammen mit den KI-Tools selbst in den Bereich AIOps eingeordnet.
Tools in der AIOps-Kategorie werden verwendet, um große Datenmengen zu verarbeiten und mithilfe von künstlicher Intelligenz und maschinellem Lernen Erkenntnisse zu gewinnen, die von Management-, Betriebs- und Entwicklungsteams weiterverwendet werden können.
Zu den Tools in dieser Kategorie gehören:
- Datadog - SaaS-basierte Überwachungs- und Analyseplattform;
- Big Panda - ein Tool zur Umwandlung von IT-Daten in umsetzbare Informationen;
- Instana - KI-gestütztes APM für moderne dynamische Anwendungen in Containern;
- Splunk - ein Diagrammgenerator, der Berichte, Warnungen, Dashboards und Visualisierungen auf der Grundlage von Echtzeitdaten erstellt;
- AppDynamics - ein Tool für das Leistungsmanagement (APM) und die Analyse des IT-Betriebs;
- Kibana - Dashboard-Software zur Datenvisualisierung;
- Dynatrace - Werkzeug zur Pipeline-Automatisierung;
- New Relic - SaaS-Echtzeitüberwachungssoftware für Web- und mobile Anwendungen;
- Grafana - Analyseplattform für alle Datenquellen;
- Elastik ELK Stack (Elasticsearch, Logstash, und Kibana);
2. Klassifizierung der Artefakt- und Paketverwaltung
Die Paketverwaltung umfasst die Verwaltung von Anwendungen, Abhängigkeiten und Server-Artefakten. Sie ist auch ein Teil des Entwicklungsprozesses.
Grundsätzlich wird alles, was "gepackt" wird, d. h. Archive, Bibliotheken, Skripte, Module, Binärdateien, Snippets, Metadaten und Datensätze, zu einem Objekt der Paketverwaltung. Im DevOps-Periodensystem sind die folgenden Tools für die Verwaltung von Artefakten und Paketen enthalten:
- Docker Hub - ein Cloud-basierter Registrierungsdienst für die Erstellung und den Versand von Anwendungen oder Service-Containern;
- npm - Standard-Paketmanager für die JavaScript-Laufzeitumgebung Node.js.;
- JFrog Artifactory - universeller Artifact Repository Manager;
- Yarn - ein Paketverwalter;
- NuGet - freier und quelloffener Paketmanager für die Microsoft-Entwicklungsplattform;
- Sonatype Nexus - ein Tool, das dabei hilft, Risiken zu erkennen, Richtlinien durchzusetzen und Schwachstellen in jeder Phase des SDLC zu beheben;
3. Cloudbasierte Lösungen
Auch wenn Cloud-Lösungen nicht zum DevOps-Stammbaum gehören, empfehlen wir die Nutzung der Cloud als Speicherlösung. Sie erleichtert den Zugriff auf Daten von jedem Ort und zu jeder Zeit und gewährt anderen Benutzern Zugriffsrechte. Sie können jede Anwendung oder Software in der Cloud bereitstellen und von dort aus mit ihr arbeiten.
Es gibt viele Anbieter von Cloud-Speicher, die beliebtesten sind jedoch AWS, Google Cloud, Azure, OpenStack und IBM Cloud.
4. Methoden der Konfigurationsautomatisierung
Konfigurationsautomatisierung ist ein Begriff, der die Überwachung, Gestaltung, Verwaltung und natürlich die Automatisierung von Konfigurationsprozessen umfasst. Zur Konfiguration gehört das Verständnis der Systemkomponenten (Anwendungen, Netzwerke, Server) und des Zustands des Systems als Ganzes. Bei der Konfiguration geht es darum, alles innerhalb des Systems auszubalancieren, damit es besser funktionieren kann.
Im Hinblick auf die Konfiguration bietet uns das DevOps-Periodensystem die folgenden Tools:
- Red Hat Ansible - eine Open-Source-Softwareplattform für die Konfiguration und Verwaltung von Computern über SSH;
- HashiCorp Terraform - ein Tool für den sicheren und effizienten Aufbau einer kombinierten und startenden Infrastruktur;
- HashiCorp Consul - eine Service-Networking-Lösung zur Verbindung und Sicherung von Diensten über jede Laufzeitplattform hinweg;
- HashiCorp Packer - freie und quelloffene Software zur Erstellung identischer Maschinenabbilder oder Container aus einer einzigen Quellkonfiguration;
- Chef - ein Konfigurationsmanagement-Tool, das die Aufgabe der Konfiguration und Wartung von Unternehmensservern vereinfacht;
- AWS Cloud Formation - ein Tool zur Automatisierung der Verwaltung und Bereitstellung von Anwendungsstapeln;
- Puppet - ein Open-Source-Dienstprogramm für die Konfigurationsverwaltung;
5. Container-Technologien
Containertechnologien werden verwendet, um den Code mit seinen Abhängigkeiten zu verpacken und einzuschließen. Dies geschieht mit dem Ziel, die reibungslose und konsistente Ausführung der Anwendung in verschiedenen Umgebungen zu gewährleisten.
Zu den bekannten DevOps-Container-Lösungen gehören:
- Docker - ein Open-Source-Projekt, das die Bereitstellung von Anwendungen in Software-Containern automatisiert;
- Docker Enterprise - die einzige unternehmenstaugliche Container-Plattform;
- Red Hat Openshift - eine einheitliche Plattform zum Erstellen, Modernisieren und Bereitstellen von Anwendungen in großem Umfang;
- Kubernetes - ein Open-Source-System zur Verwaltung von containerisierten Anwendungen auf mehreren Hosts;
- Amazon Eks - ein Tool, das die Ausführung von Kubernetes auf AWS erleichtert;
- Azure Aks - ein Tool, das die Bereitstellung eines verwalteten Kubernetes-Clusters in Azure erleichtert;
- Amazon ECS - ein Container-Orchestrierungsdienst, der Docker-Container und containerisierte Anwendungen auf AWS unterstützt;
- Helm - ein Tool für die Verwaltung von Kubernetes-Anwendungen;
6. Ansätze zur kontinuierlichen Integration
Kontinuierliche Integration oder kurz KI ist ein Softwareentwicklungsansatz, der vorsieht, dass jedes Teammitglied seine Arbeit an jedem Arbeitstag einmal pro Tag einreichen und integrieren muss. Ein solcher Ansatz ermöglicht es, das Projekt schrittweise zu aktualisieren und so Fehler schnell zu entdecken.
Zum Ansatz der kontinuierlichen Integration gehören die folgenden Anwendungen:
- Jenkins - ein Open-Source-Tool zur kontinuierlichen Integration für die Softwareentwicklung;
- Azure DevOps Code - ein Dienst, der die Erstellung und Bereitstellung von Anwendungen rationalisiert und die Teamzusammenarbeit bei der Codeentwicklung unterstützt;
- GitLab CI - eine Webanwendung mit einer API, die ihren Status in einer Datenbank speichert und Projekte verwaltet;
- Travis CI - ein als Open-Source gehosteter verteilter kontinuierlicher Integrationsdienst, der zum Erstellen und Testen von auf GitHub gehosteten Projekten verwendet wird;
- CircleCI - die weltweit größte gemeinsame Plattform für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD);
- Maven - ein Build-Automatisierungstool, das hauptsächlich für Java-Projekte verwendet wird;
- Atlassian Bamboo - ein kontinuierlicher Integrationsserver, der Builds in jeder Programmiersprache und mit jedem Build-Tool unterstützt;
- GitHub Actions - ein Tool, das Software-Workflows automatisiert und das Erstellen, Testen und Bereitstellen von Code direkt von GitHub aus ermöglicht;
- AWS CodeBuild - ein vollständig verwalteter Build-Service, der Quellcode kompiliert, Tests ausführt und Softwarepakete erstellt;
- CodeFresh - eine Cloud-native Plattform für kontinuierliche Integration und Bereitstellung;
7. Datenbank-Management-Systeme
Die Datenbank ist ein wesentlicher Bestandteil der meisten Unternehmensanwendungen. Sie ist in jedem Unternehmen auf irgendeiner Ebene vorhanden. Die Verwaltung von Datenbanken ist also eine wesentliche DevOps-Fähigkeit. Um diese Fähigkeit zu beherrschen, kann man Tools wie Liquibase verwenden:
- Liquibase - eine datenbankunabhängige Open-Source-Bibliothek zur Verfolgung, Verwaltung und Anwendung von Datenbankschemaänderungen;
- Delphix - Software zur Vereinfachung des Aufbaus, Testens und Upgrades von Anwendungen, die auf relationalen Datenbanken basieren;
- Redgate Flyway - ein Tool, das Einzelpersonen, Teams und Unternehmen dabei unterstützt, Prozesse zur Anwendungsbereitstellung aufzubauen, um die Datenbankentwicklung zu automatisieren;
- Quest Toad - ein Tool zur Verwaltung relationaler und nicht-relationaler Datenbanken mit SQL;
8. Strategien für den Einsatz
Wenn die Anwendung wächst und expandiert, muss sie in bestimmten Phasen bereitgestellt werden, z. B. in der Entwicklung, beim Testen, in der Produktion usw.
Das DevOps-Periodensystem bietet Tools zur Vereinfachung der Bereitstellung:
- Azure DevOps Pipelines - Software, die Dienste zur Unterstützung von Teams bei der Code-Entwicklung sowie der Erstellung und Bereitstellung von Anwendungen bereitstellt;
- Digital.ai Deploy - ein agentenloses Tool zur Automatisierung der Bereitstellung, das Unternehmen dabei hilft, in komplexen Middleware-Umgebungen 10-mal schneller Werte zu liefern;
- UrbanCode Deploy - ein Tool zur Automatisierung von Anwendungsimplementierungen in Ihren Umgebungen;
- OpxMx - eine CI/CD-Lösung für die Sicherheit der Software-Lieferkette und die Verwaltung der DevOps-Sicherheitslage;
- Harness - eine Continuous-Delivery-as-a-Service-Plattform, die den Continuous-Delivery-Prozess automatisiert und absichert;
- Spinnaker - eine Open-Source Multi-Cloud Continuous-Delivery-Plattform für die Freigabe von Softwareänderungen;
- Octopus Deploy - ein Server für die automatisierte Bereitstellung und Freigabeverwaltung;
- Flux - ein Tool zur Synchronisierung von Kubernetes-Clustern mit Konfigurationsquellen;
- Tekton - ein Open-Source-Framework zur Erstellung von CI/CD-Systemen, mit dem Entwickler Anwendungen erstellen, testen und bereitstellen können;
- AWS CodeDeploy - ein Service, der Code-Bereitstellungen auf jeder Instanz automatisiert, einschließlich Amazon EC2-Instanzen (und Instanzen vor Ort);
9. Agile Planungsrahmen für Unternehmen
Agile Planungstools bieten eine Perspektive, wie Organisationen agile Methoden besser umsetzen können. Sie umfassen geschäfts-, akteurs- und kundenorientierte Methoden sowie Grundsätze der Zusammenarbeit.
Im Vergleich zum traditionellen Application Development Life Cycle Management (ADLM) sind die agilen Planungstools progressiver und projektorientierter.
In der Tabelle finden Sie die folgenden agilen Planungstools:
- Atlassian Jira Align - eine Unternehmenslösung, die es der Unternehmensleitung ermöglicht, aktuelle Entwicklungen mit den Geschäftsergebnissen zu verknüpfen, ohne die Arbeit der agilen Teams zu unterbrechen;
- Digital.ai Agility - ein Tool, das helfen soll, potenzielle Geschäfts- und Produktprobleme zu identifizieren und die Softwarequalität zu verbessern;
- Planview - unterstützt Unternehmen bei der Umsetzung von Strategien in den heutigen schnelllebigen, hochgradig disruptiven Märkten;
- Broadcom Rally - eine speziell entwickelte Plattform der Unternehmensklasse für die Skalierung agiler Entwicklungspraktiken;
- Atlassian Jira - ein proprietäres Produkt zur Fehlerverfolgung, das Funktionen zur Fehlerverfolgung und zum Projektmanagement bietet;
10. Problemverfolgung und ITSM-Systeme
Problemverfolgungssysteme (ITSM) verfolgen und überwachen den Fortschritt jedes vom Benutzer gemeldeten Problems, bis dieses behoben ist.
Beliebte Tools für die Problemverfolgung in DevOps sind:
- ServiceNow - spezialisiert auf IT-Service-Management-Anwendungen (ITSM), die auf den ITIL-Standards basieren;
- BMC Helix ITSM - ein vorausschauendes IT-Service-Management für Unternehmen;
- PagerDuty - eine automatisierte Software zur Verwaltung von Vorfällen;
11. Serverlose und PaaS-Angebote
Das Ziel des Einsatzes von serverlosen und PaaS-Lösungen ist die Verwaltung der Cloud-Infrastruktur, einschließlich Servern, Netzwerken, Betriebssystemen und Speicher. Sie bieten einfachere Bereitstellungen und Skalierbarkeit für Anwendungen und ermöglichen es den Nutzern, nur für die Funktionen zu zahlen, die sie auch nutzen.
Einige der PaaS-Lösungen sind:
- AWS Lambda - ein Tool, das die Ausführung von Code ohne Bereitstellung oder Verwaltung von Servern ermöglicht;
- Azure Functions - ein Tool, das eine schnellere Anwendungsentwicklung mit einer serverlosen Architektur unterstützt;
- Heroku - eine Cloud Platform as a Service (PaaS), die mehrere Programmiersprachen unterstützt;
- Google Firebase - Software mit Analysen, Datenbanknachrichten und Absturzberichten zur Rationalisierung des Entwicklungsprozesses;
- Cloud Foundry - eine Open-Source-Cloud-Computing-Plattform als Service (PaaS), entwickelt von VMware;
12. Quellcode-Verwaltungsplattformen
Die Verwaltung und Aktualisierung des Quellcodes ist für das ordnungsgemäße Funktionieren der Anwendung unerlässlich. Plattformen zur Verwaltung des Quellcodes ermöglichen die Überwachung der von verschiedenen Benutzern vorgenommenen Änderungen und deren Verlauf.
Die folgenden Plattformen können Sie dabei unterstützen:
- Git - ein verteiltes Revisionskontrollsystem zur Beschleunigung der Datenintegrität und zur Unterstützung verteilter Arbeitsabläufe;
- GitHub - ein webbasierter Dienst zum Hosten von Git-Repositories, der alle Funktionen der verteilten Revisionskontrolle und des Quellcode-Managements (SCM) von Git anbietet und darüber hinaus eigene Funktionen bietet;
- GitLab SCM - eine Lösung, die Softwareentwicklungsteams bei der Zusammenarbeit und Kommunikation unterstützt, um Probleme schnell zu lösen und neue Funktionen zu liefern;
- Atlassian Bitbucket - ein webbasierter Hosting-Service für Projekte, die entweder das Mercurial- oder das Git-Revisionskontrollsystem verwenden;
- Compureware ISPW - ein durchgängiges Quellcode-Management- und Release-Automatisierungstool, mit dem Entwickler Geschäftsanforderungen erfüllen und die Codequalität optimieren können;
13. Testen von Frameworks
Testen ist ein wichtiger Teil der Anwendungsentwicklung, da man sicherstellen muss, dass die erstellte Anwendung so funktioniert, wie sie soll. Das Testen von Software umfasst mehrere Phasen, darunter Einheitstests, Integrationstests, Systemtests und Akzeptanztests.
Das DevOps-Periodensystem umfasst die folgende Software für das Testen:
- Tricentis Tosca - eine Testplattform, die das Testen beschleunigt, um mit Agile und DevOps Schritt zu halten;
- Selenium - ein portables Softwaretest-Framework für Webanwendungen;
- JUnit - ein Unit-Test-Framework für die Programmiersprache Java;
- Sauce Labs - eine Cloud-basierte automatisierte Testplattform für Web- und Mobilanwendungen;
- Compuware Topaz - ein automatisiertes Testtool, das Tests fast unmittelbar nach der Aktualisierung eines Codeteils ermöglicht, um sicherzustellen, dass keine unbeabsichtigten Änderungen in die Codebasis eingeführt wurden;
- Appium - ein Open-Source-Framework zur Testautomatisierung für native Hybrid- und mobile Webanwendungen;
- Squash TM - ein Test-Repository-Manager für die quelloffene Squash-Suite;
- Cucumber - ein Softwaretool für automatisierte Akzeptanztests, die im Stil der verhaltensgesteuerten Entwicklung (BDD) geschrieben werden;
- JMeter - ein Tool für Lasttests zur Analyse und Messung der Leistung einer Vielzahl von Diensten mit Schwerpunkt auf Webanwendungen;
- Parasoft - Software mit statischer und Laufzeitanalyse, Funktions- und API-Einheitstests sowie Service-Virtualisierung;
- Digital.ai - ein Tool, das Teams hilft, die Testabdeckung zu erhöhen und datengesteuerte Entscheidungen zu treffen;
14. Wertstrommanagement-Techniken
Das Wertstrommanagement umfasst das Erkennen und Überwachen der wertvollen Eigenschaften der spezifischen Software. Es umfasst die Aufgaben, die für die Lieferung an den Kunden erforderlich sind. Der Wertstromansatz ist die effizienteste Methode zur Messung der Werte der Anwendung.
Werkzeuge, die zum Wertstrommanagement gehören, sind:
- Digital.ai - ein Tool, das es ermöglicht, Sichtbarkeit über Teams, Tools und Prozesse hinweg zu erlangen, und mit dem Unternehmen den Wert sinnvoll messen können;
- Planview Viz - ermöglicht es CIOs, Transformations- und Agilitätsmanagern sowie Entwicklungs- und Produktleitern, Wertströme zu messen und Engpässe aufzudecken;
- Plutora - Software, die den tatsächlichen Wert durch verbesserte Effizienz bei der Bereitstellung von Roadmap-Funktionen abziehen kann;
Zusammengefasst
Das Periodensystem von DevOps ist ein großartiges Tool, das DevOps-Fachleuten helfen kann, ihre Arbeit schneller und effizienter zu erledigen. Es wurde von Entwicklern auf der Grundlage der Probleme, mit denen sie konfrontiert waren, und der Lösungen, die sie fanden, erstellt.
Mit den richtigen Tools wird die Optimierung von Entwicklung und Produktion einfacher. Und Sie können auf die Quelle mit vielen hilfreichen DevOps-Lösungen zugreifen - das DevOps-Periodensystem.