DevOps-Tools, die jeder im Jahr 2020 lernen sollte

Nutzen Sie noch heute die besten DevOps-Tools!

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Die DevOps-Revolution hat endlich die Welt erobert und DevOps-Tools erfreuen sich unglaublicher Beliebtheit. Laut Dienst .Die Zahl der Anfragen nach „DevOps-Tools“ nimmt stetig zu und dieser Trend hält an.

Die DevOps-Methodik deckt den gesamten Softwareentwicklungslebenszyklus ab, sodass Fachleute aus einer Vielzahl von Tools wählen können. Aber wie Sie wissen, kann kein Werkzeug ein universelles Werkzeug für alle werden. Allerdings bieten manche Lösungen einen so großen Funktionsumfang, dass sie nahezu jede Aufgabe bewältigen können.

Teilen wir DevOps-Tools in Kategorien ein und vergleichen sie mit Analoga:

  • Entwicklungs- und Build-Tools
  • Testautomatisierungstools
  • Tools zur Organisation des Einsatzes
  • Laufzeittools
  • Werkzeuge zur Zusammenarbeit.

Gelungene und durchdachte Umsetzung DevOps-Praktiker umfasst Instrumente aus allen fünf oben aufgeführten Gruppen. Analysieren Sie die aktuellen Tools in Ihrem Projekt, um kein wichtiges Element der CI/CD-Pipeline zu verpassen.

Entwicklungs- und Build-Tools

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Dies ist die Grundlage des CI/CD-Pipeline-Stacks. Hier beginnt alles! Die besten Tools in dieser Kategorie können mehrere Ereignisströme verwalten und problemlos in andere Produkte integrieren.

In dieser Phase des Entwicklungslebenszyklus gibt es drei Gruppen von Tools:

  • Versionskontrollsystem (SCM)
  • Kontinuierliche Integration (CI)
  • Datenmanagement

GIT hat im Jahr 2020 eine positive Erfolgsbilanz vorzuweisen, daher sollte Ihr SCM-Tool GIT nahtlos unterstützen. Voraussetzung für CI ist die Fähigkeit, Builds in einer isolierten Containerumgebung auszuführen und auszuführen. Bei der Datenverwaltung ist die Fähigkeit erforderlich, Änderungen am Datenbankschema vorzunehmen und die Datenbank entsprechend der Anwendungsversion zu verwalten.

SCM + CI-Tool Nr. 1

Gewinner: GitLab und GitLab-CI

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Das beste Tool des DevOps-Zyklus 2020 ist ohne Zweifel GitLab, und es wird auch in naher Zukunft definitiv weiterhin Innovationen vorantreiben.

Die Hauptfunktion von GitLab besteht in der komfortablen Verwaltung eines Git-Repositorys. Die Weboberfläche ist intuitiv und einfach zu bedienen. GitLab bietet alles, was Sie brauchen, in einer kostenlosen Version und ist als SaaS und On-Premise (unter Verwendung Ihrer eigenen Ressourcen zum Hosten der Software) erhältlich.

Kein anderes SCM-Tool hat die kontinuierliche Integration (CI) direkt in Ihrem Repository verwendet, und GitLab macht dies schon seit langem. Um GitLab-CI zu verwenden, müssen Sie eine .gitlab-ci.yml-Datei zu Ihrem Quellcode-Stammverzeichnis hinzufügen, und alle Änderungen am Projekt lösen Aktionen aus, die genau auf Ihren Angaben basieren. GitLab und GitLab-CI gelten zu Recht als führend im Bereich der kontinuierlichen Integration (CI-as-Code).

Hauptvorteile

  • Zuverlässigkeit – Das Produkt ist seit 2013 auf dem Markt; stabil; gut unterstützt.
  • Open Source – Die kostenlose Version von GitLab schränkt die Kernfunktionalität, die Entwicklungsteams benötigen, nicht ein. Bezahlte Servicepakete bieten zusätzliche nützliche Funktionen für Unternehmen unterschiedlicher Größe und Bedürfnisse.
  • Integriertes CI – Kein anderes Tool auf dem Markt hat eine kontinuierliche Integration direkt in SCM integriert wie GitLab-CI. Die Verwendung von Docker gewährleistet problemlose isolierte Builds und integrierte Berichte erleichtern das Debuggen. Wir benötigen keine komplexe Integration und Verwaltung mehrerer Tools gleichzeitig.
  • Unbegrenzte Integrationen – GitLab bietet eine einfache Integration aller DevOps-Tools, die Sie benötigen. Dadurch wird sichergestellt, dass Entwicklungs- und Wartungsteams in jeder Umgebung eine einzige Informationsquelle über ihre Anwendung haben.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Es gibt andere beliebte Tools in dieser Kategorie, aber sie sind nicht so gut wie GitLab. Und deshalb:

GitHub — Dies ist ein hervorragendes SaaS-Versionskontrollsystem für kleine Unternehmen und frühe Entwicklungsstadien. Für große Unternehmen, die IP-Adressen in ihrem eigenen Netzwerk behalten müssen, war die einzige Lösung von GitHub die virtuelle .OVA-Maschine ohne Unterstützung für Hochverfügbarkeitssysteme. Dies erschwert die On-Prem-Wartung, außerdem ist .OVA nur für mittelständische Unternehmen geeignet, da der Server sonst bei höherer Auslastung einfach abstürzt. Das Fehlen von GitHub Actions (bis vor kurzem und noch nicht in einer On-Prem-Version) oder CI-as-Code bedeutet, dass Sie ein separates CI-Tool auswählen und diese Integration dann verwalten müssen. Schließlich ist GitHub viel teurer als beide Versionen von GitLab.

Jenkins — Obwohl Jenkins standardmäßig als Standard unter den Continuous-Integration-Tools gilt, fehlten ihm schon immer Funktionen zur Versionskontrolle. Es stellt sich heraus, dass Sie Jenkins plus eine Art SCM-Tool verwenden. Es ist zu schwierig, wenn GitLab beides kann. Mittelmäßiges UX-Design ist für eine moderne Webanwendung nicht geeignet und lässt zu wünschen übrig.

BitBucket/Bambus — Ich muss ihn als automatischen Verlierer erkennen: Warum zwei Tools, wenn GitLab alles völlig unabhängig macht. BitBucket Cloud unterstützt die GitLab-CI-/GitHub-Action-Funktionalität, aber kein Unternehmen, das größer als ein Startup ist, kann sie problemlos implementieren. Der lokale BitBucket-Server unterstützt nicht einmal BitBucket-Pipelines!

Nr. 1 unter den Datenverwaltungstools

Gewinner: FlywayDB

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Bei der Entwicklung von Webanwendungen wird der Datenbankautomatisierung normalerweise keine Bedeutung beigemessen. Die Idee, Datenbankschemaänderungen für neue Versionen der Anwendung bereitzustellen, kommt spät. Schemaänderungen führen häufig dazu, dass Spalten oder Tabellen hinzugefügt und umbenannt werden. Wenn die Anwendungsversion nicht mit der Schemaversion übereinstimmt, kann die Anwendung abstürzen. Darüber hinaus kann die Verwaltung von Datenbankänderungen beim Aktualisieren einer Anwendung eine Herausforderung darstellen, da es zwei verschiedene Systeme gibt. FlyWayDB löst all diese Probleme.

Hauptvorteile

  • Datenbankversionierung – Mit Flyway können Sie Datenbankversionen erstellen, Datenbankmigrationen verfolgen und Schemaänderungen einfach übertragen oder rückgängig machen, ohne hierfür ein zusätzliches Tool zu benötigen.
  • Binär oder eingebettet – Wir können Flyway als Teil der Anwendung oder als binäre ausführbare Datei ausführen. Flyway prüft beim Start die Versionskompatibilität und startet die entsprechenden Migrationen, um die Datenbank- und Anwendungsversionen synchron zu halten. Durch die Ausführung des Ad-hoc-Befehls „cmd line“ bieten wir Flexibilität für vorhandene Datenbanken, ohne die gesamte Anwendung neu erstellen zu müssen.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

In diesem Bereich gibt es nicht viele Tools. Schauen wir uns einige davon an:

LiquiBase — Liquibase ähnelt FlywayDB. Ich würde es gerne zusätzlich zu Flyway einrichten, wenn ich jemanden in meinem Team hätte, der mehr Erfahrung mit Liquibase hat.

Flocker – Funktioniert nur für Containeranwendungen. Um containerisierte Datenbanken erfolgreich zu betreiben, muss alles perfekt geplant sein. Ich empfehle die Verwendung von RDS (Relational Database Service) für Datenbanken und rate davon ab, wichtige Informationen in einem Container zu speichern.

Testautomatisierungstools

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Beginnen wir unsere Diskussion über Testautomatisierungstools mit deren Klassifizierung anhand der Testpyramide.

Die Testpyramide (Tests) hat 4 Ebenen:

  • Unit-Tests – Dies ist die Grundlage des gesamten automatisierten Testprozesses. Im Vergleich zu anderen Testarten sollte es mehr Unit-Tests geben. Entwickler schreiben und führen Unit-Tests durch, um sicherzustellen, dass ein Teil einer Anwendung (als „Einheit“ bezeichnet) ihrem Design entspricht und sich wie erwartet verhält.
  • Komponententests – Der Hauptzweck von Komponententests besteht darin, das Eingabe-/Ausgabeverhalten des Testobjekts zu überprüfen. Wir müssen sicherstellen, dass die Funktionalität des Testobjekts entsprechend der Spezifikation korrekt umgesetzt wird.
  • Integrationstests – Eine Testart, bei der einzelne Softwaremodule kombiniert und als Gruppe getestet werden.
  • End-to-End-Tests – Dieser Schritt ist selbsterklärend. Wir überwachen die gesamte Anwendung und stellen sicher, dass sie wie geplant funktioniert.

Da Unit-Tests und Komponententests nur von Entwicklern durchgeführt werden und oft programmiersprachenspezifisch sind, werden wir diese Tools nicht für die DevOps-Domäne evaluieren.

Nr. 1 unter den Integrationstesttools

Gewinner: Gurken

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Cucumber vereint Spezifikationen und Testdokumentation in einem einzigen lebenden Dokument. Die Spezifikationen sind immer aktuell, da sie von Cucumber automatisch getestet werden. Wenn Sie ein automatisiertes Testframework von Grund auf erstellen und das Benutzerverhalten in einer Webanwendung modellieren möchten, ist Selenium WebDriver mit Java und Cucumber BDD eine hervorragende Möglichkeit, Cucumber zu erlernen und in einem Projekt zu implementieren.

Hauptvorteile

  • BDD-Ansatz (Behavior Driven Development – ​​„Entwicklung durch Verhalten“ im Gegensatz zum Ansatz „testgetriebene Entwicklung“) – Cucumber ist für BDD-Tests konzipiert und wurde ursprünglich für genau diese Aufgabe entwickelt.
  • Lebendige Dokumentation – Dokumentation ist immer eine Qual! Da Ihre Tests als Code geschrieben sind, testet Cucumber die automatisch generierte Dokumentation, um sicherzustellen, dass Tests und Dokumentation synchron sind.
  • Support – Wir können aus vielen Tools wählen, aber Cucumber verfügt über die notwendigen finanziellen Ressourcen und ein gut organisiertes Support-System, um Benutzern in jeder schwierigen Situation zu helfen.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Neben anderen Frameworks und technologiespezifischen Tools kann nur Cucumber als universelle Lösung angesehen werden.

End-to-End-Testtools

Bei der Durchführung von End-to-End-Tests müssen Sie sich auf zwei wichtige Punkte konzentrieren:

  • Funktionsprüfung
  • Belastbarkeitstest.

Beim Funktionstest überprüfen wir, ob tatsächlich alles passiert, was wir wollen. Wenn ich beispielsweise auf bestimmte Elemente meiner SPA (Einzelseitenanwendung) klicke, die Formulare ausfülle und „Senden“ wähle, erscheinen die Daten in der Datenbank und die Meldung „Erfolgreich!“ erscheint auf dem Bildschirm.

Für uns ist es außerdem wichtig zu prüfen, dass eine bestimmte Anzahl von Benutzern, die dasselbe Szenario ausführen, fehlerfrei verarbeitet werden kann.

Das Fehlen dieser beiden Testarten wird einen erheblichen Nachteil in Ihrer CI/CD-Pipeline darstellen.

Das führende End-to-End-Testtool. Funktionsprüfung

Gewinner: SoapUI Pro

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
SoapUI ist seit langem im API-Testbereich tätig, da SOAP-basierte Webdienste der Standard waren. Obwohl wir keine neuen SOAP-Dienste mehr erstellen und sich der Name des Tools nicht geändert hat, heißt das nicht, dass es sich nicht weiterentwickelt hat. SoapUI bietet ein hervorragendes Framework zum Erstellen automatisierter Backend-Funktionstests. Tests können problemlos mit kontinuierlichen Integrationstools kombiniert und als Teil einer CI/CD-Pipeline verwendet werden.

Hauptvorteile

  • Ausführliche Dokumentation – SoapUI ist schon seit geraumer Zeit auf dem Markt, daher gibt es viele Online-Ressourcen, die Ihnen helfen können, zu verstehen, wie Sie Tests einrichten.
  • Benutzerfreundlichkeit – Obwohl das Tool mehrere Protokolle zum Testen von APIs unterstützt, erleichtert das Vorhandensein einer gemeinsamen Schnittstelle für mehrere Dienste durch SoapUI das Schreiben von Tests.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Selenium ist ein weiteres großartiges Instrument in dieser Gruppe. Ich empfehle die Verwendung, wenn Sie eine Java-basierte Anwendung erstellen und ausführen. Wenn Sie jedoch eine vollständige Webanwendung mit mehreren Technologien erstellen, kann es für Nicht-Java-Komponenten unhandlich werden.

Das führende End-to-End-Testtool. Belastbarkeitstest

Gewinner: LoadRunner

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Erklärung: Wenn es an der Zeit ist, jedes Element Ihrer Anwendung einem Lasttest zu unterziehen, kann nur LoadRunner diese Aufgabe erledigen. Ja, das ist zunächst teuer und schwierig, aber LoadRunner ist das einzige Tool, das mir als technischem Architekten völlige Sicherheit gibt, dass der neue Code unter extremen Lastbedingungen funktioniert. Außerdem denke ich, dass es an der Zeit ist, dass LoadRunner von Entwicklungsteams und nicht von Testteams übernommen wird.

Hauptvorteile

  • Umfangreiche Dokumentation – LoadRunner ist schon seit geraumer Zeit auf dem Markt, daher gibt es viele Online-Ressourcen, die Ihnen helfen, zu verstehen, wie Sie Lasttests einrichten.
  • Protokollunterstützung – Load Runner unterstützt alles von ODBC bis AJAX, HTTPS und jedes andere nicht triviale Protokoll, das Ihre Anwendung möglicherweise verwendet. Wir versuchen, nicht mehrere Tools für Lasttests zu verwenden, da dies den Prozess nur verkompliziert.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Auch hier gibt es nicht viele universelle Tools in diesem Bereich. Daher ist die beste Lösung eine, die in jeder Umgebung und mit jeder Technologie funktioniert.

Bereitstellungstools

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Bereitstellungstools sind wahrscheinlich der am wenigsten verstandene Aspekt der Entwicklung. Für ein Betriebsteam ohne tiefes Verständnis des Codes und der Funktionalität der Anwendung ist es schwierig, solche Tools zu verwenden. Für Entwickler ist das Deployment Management eine neue Aufgabe, daher verfügen sie noch nicht über genügend Erfahrung im Umgang mit solchen Tools.

Teilen wir zunächst alle Bereitstellungstools in drei Unterkategorien ein:

  • Artefaktmanagement
  • Konfigurationsmanagement
  • einsetzen.

Nr. 1 unter den Artefaktverwaltungstools

Gewinner: Nexus

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Das Nexus-Artefakt-Repository unterstützt nahezu jede wichtige Technologie, von Java über NPM bis hin zu Docker. Mit diesem Tool können wir alle von uns verwendeten Artefakte speichern. Durch das Proxying von Remote-Paketmanagern wird auch der CI-Erstellungsprozess erheblich beschleunigt, sodass Pakete für die Erstellung leichter zugänglich sind. Ein weiterer Vorteil ist die Möglichkeit, einen vollständigen Überblick über alle in mehreren Softwareprojekten verwendeten Pakete zu erhalten und unsichere Open-Source-Pakete zu blockieren (sie können als Angriffsvektor fungieren).

Hauptvorteile

  • Technischer Support – Zuverlässiges Produkt; gut unterstützt.
  • Open Source – Die kostenlose Version schränkt die Kernfunktionalität, die Entwicklungsteams benötigen, nicht ein.

Nr. 1 unter den Konfigurationsmanagement-Tools

Gewinner: Ansible

Ansible ist aus einem einfachen Grund führend: staatenlos. Zuvor konzentrierten sich ähnliche Tools auf die Verwaltung des Konfigurationsstatus. Beim Start versucht ein solches Tool, nachdem es die gewünschte Konfiguration erhalten hat, die aktuelle Anwendungskonfiguration zu korrigieren. Und mit dem neuen Ansatz sind nur noch zustandslose Komponenten vorhanden. Neue Codeversionen sind Artefakte, die bereitgestellt werden, um vorhandene zu ersetzen. Dies kann als eine Art vergängliche, kurzfristige Umgebung betrachtet werden.

Hauptvorteile

  • Zustandslos – Das Playbook wird vom Bereitstellungscomputer gestartet und auf den Zielservern ausgeführt. Ich muss mir keine Gedanken über den Status des Remote-Objekts machen, wenn ich ein Tool wie Packer verwende, um bereitstellbare Objekte zu erstellen.
  • Open Source – Wie CentOS wird auch Ansible von RedHat unterstützt. Es trägt zur Aufrechterhaltung der Community bei und bietet hochwertige, benutzerfreundliche Module.
  • Testen mit Molecule (einem Ansible-Framework) – Da es sich bei der Konfigurationsverwaltung wie bei allem anderen um Code handelt, sind Tests unerlässlich. Das Ansible-Rollentest-Framework von Molecule funktioniert einwandfrei und stellt sicher, dass die Konfiguration die gleiche Qualität aufweist und der gleichen CI/CD-Pipeline folgt wie der Anwendungscode.
  • YAML – Im Vergleich zu anderen Tools ist YAML einfacher zu verstehen. Da das Konfigurationsmanagement für diejenigen, die DevOps-Praktiken implementieren, in der Regel eine neue Herausforderung darstellt, ist Einfachheit sein Trumpf.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

OpsCode-Chef — Ich habe meine DevOps-Karriere als Kochbuchentwickler begonnen. Ruby und Chef liegen mir natürlich sehr am Herzen, aber sie lösen einfach nicht die Probleme moderner zustandsloser, Cloud-nativer Anwendungen. OpsCode Chef ist ein großartiges Tool für traditionellere Anwendungen, aber in diesem Artikel konzentrieren wir uns auf die Zukunft.

Marionette — Puppet hatte noch nie viele Fans, insbesondere im Vergleich zu Chef und Ansible. Es eignet sich hervorragend für die Bereitstellung und Arbeit mit Hardware, es fehlt jedoch die Unterstützung für modernes Konfigurationsmanagement für eine Webanwendung.

Bereitstellungstool Nr. 1

Gewinner: Terraform

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Terraform löst das Problem der Beschreibung Ihrer Infrastruktur als Code, von Netzwerkkomponenten bis hin zu vollständigen Server-Images. Dieses Produkt hat seit seiner Erstveröffentlichung einen langen Weg zurückgelegt, es wurden so viele Plugins erstellt und eine so starke Community aufgebaut, dass Sie in jedem Bereitstellungsszenario sicher Hilfe erhalten. Die Fähigkeit, jede Art von Umgebung (lokal, in der Cloud oder anderswo) zu unterstützen, ist beispiellos. Schließlich bietet die neueste Version viele der gleichen Logikfunktionen und Klassen in HCL wie jede andere traditionelle Programmiersprache, sodass Terraform für Entwickler schnell und einfach zu verstehen ist.

Hauptvorteile

  • Umgebungsunabhängig – Terraform verwendet Funktionen, die als Schnittstelle zwischen Ihrem Terraform-Code, allen APIs und der internen Logik für die Kommunikation mit dem Infrastrukturanbieter fungieren. Das bedeutet, dass ich nur ein Werkzeug beherrsche und dann überall arbeiten kann.
  • Open Source – Kostenlose Tools sind kaum zu schlagen! Community-Unterstützung auf höchstem Niveau.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

AWS CloudFormation — Selbst wenn Sie nur in der AWS-Cloud-Umgebung arbeiten, wird Ihr nächster Job möglicherweise ein anderes Tool verwenden. Es ist eine kurzsichtige Entscheidung, all Ihre Zeit und Energie nur einer Plattform zu widmen. Darüber hinaus sind viele neue AWS-Services häufig als Terraform-Module verfügbar, bevor sie in CloudFormation verfügbar sind.

Laufzeittools

DevOps-Tools, die jeder im Jahr 2020 lernen sollte

Das ultimative Ziel jedes Entwicklungsprojekts ist die Einführung der Anwendung in die Produktion. In der DevOps-Welt möchten wir uns aller möglichen Probleme in unserer Umgebung vollständig bewusst sein und außerdem manuelle Eingriffe minimieren. Um das Nirvana der Anwendungsentwicklung zu erreichen, ist die Auswahl der richtigen Laufzeittools von entscheidender Bedeutung.

Unterkategorien von Laufzeittools:

  • X-as-a-Service (XaaS)
  • Orchestrierung
  • Überwachung
  • Protokollierung.

X-Tool-as-a-Service #1

Gewinner: Amazon Web Services

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Amazon war schon immer führend bei Cloud-Technologien, aber das ist noch nicht alles: Die Vielfalt an neuen Diensten für Entwickler ist aufschlussreich. Bringen Sie jede beliebige Technologie und Vorlage zu AWS und sie wird erstellt und ausgeführt. Die Kosten für das Tool sind durchaus angemessen: Vergleichen Sie es mit der Montage, Verwaltung und Wartung von Geräten in Ihrem eigenen Rechenzentrum. Mit der kostenlosen Version können Sie experimentieren und die richtige Entscheidung treffen, bevor Sie Geld ausgeben.

Hauptvorteile

  • Verbreitung – Wenn Sie Erfahrung in der Entwicklung von Anwendungen in AWS haben, können Sie überall arbeiten. Unternehmen lieben AWS und auch Start-ups schätzen die geringen Kosten.
  • Die kostenlose Version ist ein wirklich wichtiger Faktor, der AWS von seinen Mitbewerbern unterscheidet. Lassen Sie mich den Service ausprobieren und sehen, wie er funktioniert, bevor ich eine Kaufentscheidung treffe. Ich möchte nicht Tausende von Dollar für etwas Unnötiges ausgeben. Die kostenlose Version reicht mir immer, um jedes Konzept zu testen.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Azure „Azure hat seit seiner ersten Veröffentlichung einen langen Weg zurückgelegt, und das ist lobenswert. Der Wunsch, anders zu sein, hat jedoch zu seltsamen Namen für Dienstleistungen geführt, was die Arbeit oft erschwert. Was bedeutet „Blobspeicher“? Und obwohl .NET-Code im Microsoft-Ökosystem eine bessere Leistung erbringt, ist es unwahrscheinlich, dass Sie für jede Komponente Ihrer Anwendung nur .NET verwenden.

Heroku — Aufgrund der geringen Zuverlässigkeit und Transparenz würde ich nie etwas anderes als ein persönliches Projekt auf Heroku durchführen, daher sollten Unternehmen es nicht als Plattform nutzen. Heroku eignet sich hervorragend, um etwas auf einem Blog zu demonstrieren, aber für den praktischen Gebrauch – „Nein, danke!“

Nr. 1 unter den Orchestrierungstools

Gewinner: OpenShift

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Sie verwenden wahrscheinlich Docker oder andere Container in Ihrem Anwendungsstapel. Serverlose Anwendungen sind großartig, passen aber möglicherweise nicht zu jeder Architektur. Das Ausführen von Containern ohne Orchestrierungsplattform funktioniert einfach nicht. Kubernetes Core (K8s) ist in Bezug auf Sicherheit und Tools konkurrenzlos. OpenShift ist die einzige Kubernetes-basierte Plattform, die Source2Image sammeln kann, die automatisierte Bereitstellung auf Pods sowie Tracking und Überwachung unterstützt. OpenShift kann vor Ort, in der Cloud oder gleichzeitig vor Ort und in der Cloud ausgeführt werden.

Hauptvorteile

  • Integrierte Sicherheit – Für die Verwaltung der K8-Sicherheit ist möglicherweise ein höherer Abschluss erforderlich. Jedes Detail muss sorgfältig durchdacht und berücksichtigt werden! Die standardmäßig in OpenShift integrierten Sicherheitsmechanismen entlasten Entwickler und bieten eine sicherere Plattform für Anwendungen.
  • All-in-One-Lösung – Im Gegensatz zu den Basisversionen von K8, die standardmäßig keine Lastausgleichstools enthalten, bietet OpenShift alles. Ich kann damit Container erstellen und hosten, CI/CD-Tools ausführen, externe Prozesse verwalten, Schlüssel verwalten und vieles mehr. Obwohl die grafische Benutzeroberfläche noch lange nicht perfekt ist, kann durch den API-basierten Ansatz alles in einem Skript beschrieben werden. Im Gegensatz zu anderen GUIs für K8s erleichtert OpenShift das Erlernen der Grundlagen von Kubernetes erheblich. Sie müssen nicht einmal einen Abschluss machen!

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Hafenschwarm – Docker Swarm hat versucht, K8s zu vereinfachen, indem es viele Dinge weggelassen hat. Für kleine Anwendungen ist es großartig, aber für Unternehmensanwendungen funktioniert es einfach nicht. Darüber hinaus verfolgen Lösungen wie AWS ECS einen ähnlichen Ansatz, erleichtern jedoch die Zusammenarbeit mit anderen Diensten, mit denen ich ebenfalls interagieren kann (Lambda, IAM usw.).

Überwachungstool Nr. 1

Gewinner: Neues Relikt

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Frühe Versionen von New Relic haben eines gut gemacht: APM-Überwachung (Application Performance Monitoring). Es handelt sich nun um ein Überwachungstool mit vollem Funktionsumfang, mit dem Sie die Server-, Container- und Datenbankleistung, die Überwachung der Endbenutzererfahrung und natürlich die Überwachung der Anwendungsleistung überwachen können.

Hauptvorteile

  • Benutzerfreundlichkeit – Als ich als Systemingenieur arbeitete, habe ich viele Überwachungstools verwendet, aber ich habe noch nie eines erlebt, das so einfach und leicht zu verwenden war wie New Relic. Da es sich um SaaS handelt, müssen Sie es nicht selbst installieren.
  • Durchgängige Sichtbarkeit – Andere Tools versuchen, ein bestimmtes Element Ihrer Anwendung zu überwachen. Zum Beispiel eine Metrik der Prozessorauslastung oder des Netzwerkverkehrs. All dies muss jedoch umfassend überwacht werden, damit die Anwendung ordnungsgemäß funktioniert. New Relic bietet Ihnen die Möglichkeit, alle Ihre Daten zusammenzuführen, um einen umfassenden Überblick über das Geschehen zu erhalten.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Zabbix — Mein erstes und beliebtestes Überwachungssystem, aber aufgrund der mangelnden Entwicklung von Cloud-Technologien und im Bereich der APM-Anwendungsleistungsüberwachung gehört es der Vergangenheit an. Zabbix eignet sich immer noch gut zur Überwachung der herkömmlichen Serverinfrastruktur, aber das ist auch schon alles.

DataDog – Der Fokus liegt zu sehr auf dem Prozess der Verwaltung der Produktionsumgebung der Anwendung und nicht auf dem Code selbst. Mit DevOps-Teams, an denen Entwickler beteiligt sind, sind wir nicht auf schwer zu verwendende Tools angewiesen, um erstklassigen Support zu bieten.

Protokollierungstool Nr. 1

Gewinner: Splunk

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Es ist schwer, mit Splunk zu konkurrieren! Er bleibt lange Zeit führend im Holzeinschlag und macht es weiterhin besser als alle anderen. Mit On-Prem- und SaaS-Angeboten können Sie Splunk überall nutzen. Der große Nachteil ist der Preis: Splunk ist immer noch verdammt teuer!

Hauptvorteile

  • Verbreitung – Unternehmen lieben Splunk und Unternehmen haben das Geld, es zu kaufen.
  • Obwohl Startups versuchen, die Kosten wieder hereinzuholen, können viele Funktionen dank Open-Source-Analoga gelöst werden.
  • Wartbarkeit – Einfach ausgedrückt: Splunk funktioniert und macht es gut. Es verfügt über viele gebrauchsfertige Standardeinstellungen und Funktionen. Sie müssen keine Zeit damit verschwenden, die Dokumentation zu lesen und zu versuchen, Splunk zum Laufen zu bringen oder etwas zu entschlüsseln.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

ELK Stack (ElasticSearch, LogStash und Kibana) „Diese Hilfsmittel scheinen die Favoriten zu sein, weil man nicht einmal die Leber verkaufen muss, um sie zu nutzen.“ Allerdings wird die Arbeit mit zunehmender Protokollmenge und zunehmender Anzahl an Bordanwendungen immer schwieriger. Im Vergleich zu Splunk habe ich mit ELK Stack viel mehr Zeit mit der Einrichtung der Tools verbracht, bevor ich Dashboards erstellt habe, als jemals zuvor.

Werkzeuge zur Zusammenarbeit

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Bei DevOps geht es in erster Linie darum, die Kultur innerhalb einer Organisation zu verändern. Der Kauf eines Tools wird die aktuellen Praktiken nicht über Nacht ändern, aber er kann sicherlich die Zusammenarbeit und neue Formen der Interaktion fördern.

Unterkategorien von Kollaborationstools:

  • Aufgabenverfolgung
  • ChatOps
  • Dokumentation.

Das Nr. 1-Tool zur Problemverfolgung

Gewinner: Jira

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Jira behauptet seine Führungsposition, obwohl der Wettbewerb in diesem Bereich zunimmt. Dank der unglaublichen Flexibilität von Jira können Entwicklungs- und Wartungsteams Projektarbeit und Sprintaufgaben verwalten. Integrierte Standards unter Verwendung der Agile-Terminologie erleichtern den Übergang von traditionellen Arbeitsweisen zu effizienteren Prozessen.

Hauptvorteile

  • Beliebtheit – Wie viele andere Tools wird Jira fast überall verwendet. Kleine Teams nutzen die günstigere, zugänglichere Version und bekommen alles, was sie brauchen, während größere Unternehmen sich eine teurere Lizenz leisten können.
  • Integrationen – Jira ist ein Pionier auf seinem Gebiet. Diese Tatsache und die schnelle Entwicklung des Produkts führen dazu, dass andere Unternehmen Jira für die Erstellung eigener Integrationen wählen und so den Wert des Tools steigern. Wir können Jira mit ein wenig Konfiguration sofort in alle in diesem Artikel aufgeführten Tools integrieren.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Trello — Trello gewann dank seines kostenlosen Kanban-Tools schnell an Popularität. Sobald jedoch die Prozesse skaliert werden und Sie von Dutzenden auf Tausende von Aufgaben umsteigen, wird es schwierig, in Trello zu navigieren, zu suchen und Berichte darüber zu erstellen.

Pivotal Tracker — Ich war ein großer Fan dieses Tools, als ich für ein Startup arbeitete. Allerdings konzentriert sich Pivotal Tracker mehr auf das Produktmanagement als auf technische Aufgaben. Obwohl das Produktmanagement in Jira etwas komplexer ist, lässt es sich dort dennoch ohne den Einsatz eines zusätzlichen Tools umsetzen.

ChatOps-Tool Nr. 1

Gewinner: MatterMost

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Erklärung: Vielleicht die größte Überraschung für Sie in meiner Auswahl, und das sind gute Nachrichten! MatterMost gewann an Popularität, indem es das Beste aus früheren Tools nutzte, es aber vor Ort bereitstellte. Das ist für Unternehmen sehr wichtig: MatterMost ermöglicht Ihnen die Kontrolle über Ihre Daten und hilft Ihnen auch bei der Integration mit lokal laufenden Tools. Wir müssen die Firewall nicht mehr verlassen, um geschäftliche Chats zu überprüfen.

Hauptvorteile

  • Open Source – Die Open-Source-Version von MatterMost eignet sich hervorragend für mittlere und große Teams. Im Gegensatz zum kostenlosen Plan von Slack, der Ihren Nachrichtenverlauf löscht, bedeutet der Betrieb Ihres eigenen Servers, dass Sie alle Ihre Daten behalten.
  • Integrationen – Da die API fast zu 100 % auf der Slack-API basiert, können fast alle Slack-Integrationen direkt mit MatterMost verwendet werden.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Slack — Slack ist cool, aber diese Jungs sind so stark gewachsen, dass sie angefangen haben, nach Gewinn zu suchen. Die Amortisationsphase des Unternehmens naht, was ihnen den größten Wert nimmt: Slack stellte die Dienste kostenlos zur Verfügung; Der wichtigste Nachteil der kostenlosen Version ist das Löschen des Chatverlaufs.

Microsoft Teams — Versuchen Sie, ein Microsoft-Produkt mit etwas zu integrieren, das nicht Microsoft gehört ... Viel Glück! Das ist alles, was ich über dieses Tool zu sagen habe!

Dokumentationstool Nr. 1

Gewinner: Zusammenfluss

DevOps-Tools, die jeder im Jahr 2020 lernen sollte
Die Erstellung und Pflege hochwertiger technischer Dokumentation ist ein komplexer Prozess, unabhängig davon, welches Tool Sie verwenden. Obwohl in letzter Zeit viele SaaS-Dokumentationstools auf den Markt gekommen sind, würde es mir schwerfallen, die Speicherung der technischen Dokumentation über geschäftskritische Anwendungen an einen Dritten auszulagern. Es ist vorzuziehen, Daten und Dokumente vor Ort zu speichern, und Confluence löst dieses Problem auf diese Weise.

Hauptvorteile

  • Einfach zu bedienen – Die meisten eigenständigen Tools können etwas komplex in der Einrichtung und Bedienung sein und erfordern einige Kenntnisse für die Wartung. Confluence Server funktioniert sofort einsatzbereit für 10 oder 10,000 Benutzer.
  • Plugins – Ein großes Lob an Confluence für die schöne, benutzerfreundliche Navigation, die sofort einsatzbereit ist, und die Möglichkeit, für fast alles ein Plugin hinzuzufügen, eröffnet Wiki-ähnliches Potenzial.

Konkurrenz

Nahm an der Schlacht teil, gewann aber nicht

Lesen Sie die Dokumente — Cool für Open Source, aber denken Sie nicht einmal daran, kritisches Wissen hier zu speichern.

Abschlag - Ideal zum Dokumentieren von Code, aber aufgrund der spezifischen Formatierung von MarkDown ist es schwierig, Architektur, Prozesse oder andere Arten von Dokumentation zu veröffentlichen.

Jekyll — Wenn ich technisches Wissen dokumentiere, möchte ich keine neue statische Site erstellen, die bei jeder Änderung bereitgestellt wird. Das einfache Versionskontrollsystem von Confluence vereinfacht die interne Dokumentation erheblich.

Summieren

Es gibt buchstäblich Hunderte von DevOps-Tools auf dem Markt, was es schwierig macht, zu wissen, welche man verwenden und wann sie implementiert werden sollten. Befolgen Sie diese einfache Anleitung zur Auswahl von DevOps-Tools für eine vollständige CI/CD-Pipeline.

Wählen Sie unbedingt Werkzeuge aus allen fünf Kategorien aus:

  • Entwicklungs- und Build-Tools
  • Testautomatisierungstools
  • Bereitstellungstools
  • Laufzeittools
  • Werkzeuge zur Zusammenarbeit.

Hauptempfehlung: Automatisieren Sie alles!

Danke Zach Shapiro!

Source: habr.com

Kommentar hinzufügen