DevOps-Tools, die jeder im Jahr 2020 lernen sollte

Wenden Sie noch heute die besten DevOps-Tools an!





Die DevOps-Revolution hat endlich die Welt erobert und DevOps-Tools sind unglaublich beliebt geworden. Laut Google Trends wächst die Anzahl der Anfragen nach "DevOps-Tools" ständig, und dieser Trend setzt sich fort.



Die DevOps-Methodik erstreckt sich über den gesamten Lebenszyklus der Softwareentwicklung, sodass Experten aus einer Vielzahl von Tools auswählen können. Aber wie Sie wissen, kann kein einzelnes Werkzeug ein universelles Werkzeug für alle werden. Einige Lösungen bieten jedoch eine so breite Palette an Funktionen, dass sie nahezu jede Aufgabe bewältigen können.



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



  • Entwicklungs- und Build-Tools
  • Testautomatisierungstools
  • Tools zum Organisieren der Bereitstellung
  • Laufzeit-Tools
  • Werkzeuge zur Zusammenarbeit.


Die erfolgreiche und intelligente Implementierung von DevOps umfasst Tools aus allen fünf oben aufgeführten Gruppen. Analysieren Sie die aktuellen Tools in Ihrem Projekt, um ein wichtiges Element der CI / CD-Pipeline nicht zu übersehen.



Entwicklungs- und Build-Tools





Dies ist der Kern des CI / CD-Pipeline-Stacks. Hier fängt alles an! 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 Werkzeugen:



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


Im Jahr 2020 hat sich GIT nur positiv bewährt, daher sollte Ihr SCM-Tool eine einwandfreie GIT-Unterstützung bieten. Voraussetzung für CI ist die Fähigkeit, Assemblys in einer isolierten Containerumgebung auszuführen und auszuführen. In Bezug auf die Datenverwaltung ist es erforderlich, Änderungen am Datenbankschema vorzunehmen und die Datenbank gemäß der Version der Anwendung zu verwalten.



SCM + CI-Tool Nr. 1



Gewinner: GitLab und GitLab-CI





Das beste Tool im DevOps-Zyklus 2020 ist ohne Zweifel GitLab, und es wird in naher Zukunft definitiv ein Innovationsführer bleiben.



Die Hauptfunktion von GitLab besteht darin, eine komfortable Verwaltung des Git-Repositorys bereitzustellen. Die Weboberfläche ist intuitiv und einfach zu bedienen. GitLab bietet alles, was Sie brauchen, in einer kostenlosen Version und ist sowohl in SaaS als auch vor Ort erhältlich (mit Ihren eigenen Ressourcen zum Hosten von Software).



Kein anderes SCM-Tool hat Continuous Integration (CI) direkt in Ihrem Repository verwendet, und GitLab hat dies schon lange getan. Um GitLab-CI verwenden zu können, müssen Sie die Datei .gitlab-ci.yml zum Stammverzeichnis Ihres Quellcodes hinzufügen. Alle Änderungen am Projekt lösen Aktionen aus, die auf Ihren Angaben basieren. GitLab und GitLab-CI sind zu Recht als führend auf dem Gebiet der kontinuierlichen Integration (CI-as-Code) anerkannt.



Hauptvorteile



  • Zuverlässigkeit - Das Produkt ist seit 2013 auf dem Markt. stabil; gut in Stand gehalten.
  • Open Source - Die kostenlose Version von GitLab schränkt die grundlegenden Funktionen, die Entwicklungsteams benötigen, nicht ein. Bezahlte Servicepakete bieten Unternehmen mit unterschiedlichen Größen und Anforderungen zusätzliche nützliche Funktionen.
  • Engrained CI - Kein anderes Tool auf dem Markt hat eine kontinuierliche Integration direkt in SCM wie GitLab-CI aufgebaut. Die Verwendung von Docker bietet einen problemlosen Build mit Sandbox und integrierte Berichte erleichtern das Debuggen (Debuggen). Wir brauchen nicht die komplexe Integration und Verwaltung mehrerer Tools gleichzeitig.
  • Unbegrenzte Integrationen - GitLab bietet eine einfache Integration aller benötigten DevOps-Tools. Auf diese Weise können Entwicklungs- und Wartungsteams in jeder Umgebung eine einzige Informationsquelle über ihre Anwendung verwenden.


Konkurrenten haben



gekämpft, aber nicht gewonnen



Es gibt andere beliebte Tools in dieser Kategorie, aber sie sind nicht so gut wie GitLab. Hier ist der Grund:



GitHub„Es ist ein großartiges 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, ist die einzige Lösung auf GitHub die virtuelle .OVA-Maschine ohne HA-Unterstützung. Dies macht es schwierig, On-Prem zu warten. Außerdem ist .OVA nur für mittelständische Unternehmen geeignet, da der Server sonst unter hoher Last einfach abstürzt. Das Fehlen von GitHub-Aktionen (bis vor kurzem und noch nicht vor Ort) 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 jede der GitLab-Versionen.



Jenkins- Während Jenkins standardmäßig als Standard unter den Tools für die kontinuierliche Integration angesehen wird, fehlten ihm immer die 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 nicht gut für eine moderne Web-App und lässt zu wünschen übrig.



BitBucket / Bamboo - Ich muss zugeben, dass es ein automatischer Verlierer ist: Warum zwei Tools, wenn GitLab alles komplett alleine macht. BitBucket Cloud unterstützt GitLab-CI / GitHub Action, aber kein Unternehmen, das größer als ein Startup ist, kann es problemlos implementieren. Der lokale BitBucket-Server unterstützt nicht einmal BitBucket-Pipelines!



Datenverwaltungstool Nr. 1



Gewinner: FlywayDB





Bei der Entwicklung von Webanwendungen wird die Datenbankautomatisierung normalerweise übersehen. Die Idee, Änderungen am Datenbankschema für neue Versionen der Anwendung bereitzustellen, ist verzögert. Schemaänderungen führen häufig zum Hinzufügen und Umbenennen von Spalten oder Tabellen. Wenn die Version der Anwendung nicht mit der Version des Schemas übereinstimmt, kann die Anwendung abstürzen. Das Organisieren von Datenbankänderungen beim Aktualisieren einer Anwendung kann ebenfalls schwierig sein, da es zwei verschiedene Systeme gibt. FlyWayDB löst all diese Probleme.



Hauptvorteile



  • Datenbankversionierung - Mit Flyway können Sie Datenbankversionen erstellen, Datenbankmigrationen verfolgen, Schemaänderungen einfach migrieren oder rückgängig machen, ohne dass dafür ein zusätzliches Tool erforderlich ist.
  • — : Flyway . Flyway , . cmd line ad-hoc, .


Die



Teilnehmer haben an der Schlacht teilgenommen, aber nicht gewonnen.



Es gibt nicht viele Werkzeuge in diesem Bereich. Schauen wir uns einige davon an:



LiquiBase - Liquibase ähnelt FlywayDB. Ich würde es gerne auf Flyway einrichten, wenn es einen Spezialisten in meinem Team gibt, der mehr Erfahrung mit Liquibase hat.



Flocker - Funktioniert möglicherweise nur für Anwendungen in Containern. Für den erfolgreichen Start von Datenbanken in Containern muss alles perfekt geplant sein. Ich empfehle, RDS (Relational Database Service) für Datenbanken zu verwenden, und ich empfehle nicht, vertrauliche Informationen in einem Container zu speichern.



Testen Sie Automatisierungstools





Beginnen wir unsere Diskussion über Testautomatisierungswerkzeuge, indem wir sie anhand der Testpyramide klassifizieren.



Die Testpyramide (Tests) hat 4 Ebenen:



  • - — . - . -, , ( «») .
  • — — / . , .
  • — , .
  • — . , , .


Da Komponententests und Komponententests nur von Entwicklern durchgeführt werden und häufig sprachabhängig sind, werden diese Tools für die DevOps-Domäne nicht bewertet.



# 1 Integrationstest-Tool



Gewinner: Gurke





Cucumber kombiniert Spezifikationen und Testdokumentation in einem einzigen lebenden Dokument. Die Spezifikationen sind immer auf dem neuesten Stand, da sie automatisch von Cucumber getestet werden. Wenn Sie ein automatisiertes Testframework von Grund auf neu erstellen und das Benutzerverhalten in einer Webanwendung simulieren möchten, ist Selenium WebDriver mit Java und Cucumber BDD eine hervorragende Möglichkeit, Cucumber in einem Projekt zu lernen und zu implementieren.



Hauptvorteile



  • BDD- (Behavior Driven Development — “ ” “ ”) — Cucumber BDD-, .
  • — — ! , Cucumber , , .
  • — , Cucumber , .


Konkurrenten nahmen



am Kampf teil, gewannen aber nicht



Unter anderen Frameworks und technologie-spezifischen Tools kann nur Gurke als universelle Lösung angesehen werden.



End-to-End-Testtools



Bei der Durchführung von End-to-End-Tests sind zwei wichtige Punkte zu beachten:



  • Funktionsprüfung
  • Stresstest.


Bei Funktionstests prüfen wir, ob tatsächlich etwas passiert, was wir wollen. Wenn ich beispielsweise auf bestimmte Elemente meines SPA (Single Page Application) klicke, die Formulare ausfülle und "Submit" auswähle, werden die Daten in der Datenbank angezeigt und die Meldung "Success!"



Für uns ist es auch wichtig zu überprüfen, ob eine bestimmte Anzahl von Benutzern, die im selben Szenario arbeiten, fehlerfrei behandelt werden kann.



Das Fehlen dieser beiden Testarten ist ein wesentlicher Nachteil Ihrer CI / CD-Pipeline.



End-to-End-Test-Tool Nr. 1. Funktionsprüfung



Gewinner: SoapUI Pro





SoapUI ist seit langem im Bereich API-Tests tätig, da SOAP-basierte Webdienste der Standard waren. Obwohl wir keine neuen SOAP-Services mehr erstellen und der Name des Tools nicht geändert wurde, bedeutet dies nicht, dass es sich nicht weiterentwickelt hat. SoapUI bietet ein hervorragendes Framework für die Erstellung automatisierter funktionaler Backend-Tests. Tests können problemlos mit Tools für die kontinuierliche Integration kombiniert und als Teil der CI / CD-Pipeline verwendet werden.



Hauptvorteile



  • Detaillierte Dokumentation - SoapUI ist seit langer Zeit auf dem Markt. Daher wurden viele Online-Ressourcen erstellt, um Ihnen das Einrichten von Tests zu erleichtern.
  • Benutzerfreundlichkeit - Obwohl das Tool mehrere Protokolle zum Testen von APIs unterstützt, verfügt SoapUI über eine gemeinsame Schnittstelle für mehrere Dienste, die das Schreiben von Tests erleichtert.


Konkurrenten



kämpften, schlugen aber



Selen nicht - ein weiteres großartiges Werkzeug 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 dies für Nicht-Java-Komponenten umständlich werden.



End-to-End-Test-Tool Nr. 1. Stresstest



Gewinner: LoadRunner





Erläuterung: Wenn es Zeit ist, jedes Element der Anwendung zu testen, kann nur LoadRunner diese Aufgabe ausführen. Ja, es ist anfangs etwas teuer und schwierig, aber LoadRunner ist das einzige Tool, das mir als technischer Architekt das volle Vertrauen gibt, dass der neue Code unter extremen Belastungen funktioniert. Ich denke auch, dass es Zeit ist, LoadRunner für das Entwicklungsteam und nicht für das Testteam verantwortlich zu machen.



Hauptvorteile



  • Umfangreiche Dokumentation - LoadRunner ist seit langer Zeit auf dem Markt. Daher wurden viele Online-Ressourcen erstellt, um Ihnen das Einrichten von Auslastungstests zu erleichtern.
  • Protokollunterstützung - Load Runner unterstützt von ODBC zu AJAX, HTTPS und jedem anderen nicht trivialen Protokoll, das Ihre Anwendung verwenden kann. Wir versuchen, nicht mehrere Tools für Lasttests zu verwenden, da dies den Prozess nur erschwert.


Konkurrenten haben



gekämpft, aber nicht gewonnen.



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



Bereitstellungstools





Bereitstellungstools sind wahrscheinlich der am wenigsten verstandene Aspekt der Entwicklung. Für ein Betriebsteam ist es schwierig, solche Tools zu verwenden, ohne den Anwendungscode und die Funktionalität genau zu verstehen. Für Entwickler ist die Verwaltung der Bereitstellung eine neue Aufgabe, sodass sie noch nicht genug Erfahrung mit solchen Tools haben.



Lassen Sie uns zunächst alle Bereitstellungstools in drei Unterkategorien unterteilen:



  • Artefaktmanagement
  • Konfigurationsmanagement
  • bereitstellen.


Artefakt-Management-Tool Nr. 1



Gewinner: Nexus





Das Nexus Artifact Repository unterstützt nahezu alle wichtigen Technologien, von Java über NPM bis hin zu Docker. Mit diesem Tool können wir alle verwendeten Artefakte speichern. Das Proxying von Remote-Paketmanagern beschleunigt außerdem den CI-Erstellungsprozess erheblich, indem Pakete für die Erstellung verfügbarer gemacht werden. Ein weiterer Vorteil ist die Möglichkeit, ein vollständiges Bild aller in mehreren Softwareprojekten verwendeten Pakete zu erhalten, indem unsichere Open Source-Pakete blockiert werden (sie können als Angriffsvektor fungieren).



Hauptvorteile



  • Technischer Support - Zuverlässiges Produkt; gut in Stand gehalten.
  • Open Source - Die kostenlose Version schränkt die Kernfunktionen, die Entwicklungsteams benötigen, nicht ein.


Konfigurationsmanagement-Tool Nr. 1



Gewinner: Ansible



Ansible ist aus einem einfachen Grund führend: staatenlos. Bisher konzentrierten sich solche Tools auf die Verwaltung des Konfigurationsstatus. Beim Start versucht ein solches Tool, nachdem es die gewünschte Konfiguration erhalten hat, die aktuelle Konfiguration der Anwendung zu korrigieren. Und mit dem neuen Ansatz sind nur zustandslose Komponenten vorhanden. Neue Versionen des Codes sind Artefakte, die bereitgestellt werden, um vorhandene zu ersetzen. Dies kann als eine Art kurzlebiges, kurzfristiges Umfeld angesehen werden.



Hauptvorteile



  • Statuslos - Playbook wird vom Bereitstellungscomputer gestartet und auf Zielservern ausgeführt. Ich mache mir keine Sorgen über den Status des Remote-Objekts, indem ich ein Tool wie Packer verwende, um bereitstellbare Objekte zu erstellen.
  • — CentOS, Ansible RedHat. , .
  • Molecule ( Ansible) — — , , . Molecule Ansible , , CI/CD-, .
  • YAML — , YAML . , , , DevOps-, — .


Konkurrenten kämpften



, schlugen aber



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



Puppet - Puppet hatte noch nie viele Fans, besonders im Vergleich zu Chef und Ansible. Es eignet sich hervorragend für die Bereitstellung und das Arbeiten mit Hardware, es fehlt jedoch die moderne Unterstützung für das Konfigurationsmanagement für eine Webanwendung.



Bereitstellungstool Nr. 1



Gewinner: Terraform





Terraform löst das Problem, Ihre Infrastruktur als Code zu beschreiben, von Netzwerkkomponenten bis hin zu vollständigen Server-Images. Dieses Produkt hat seit seiner ersten Veröffentlichung einen langen Weg zurückgelegt, mit einer großen Anzahl von Plugins und einer so starken Community, dass es Ihnen definitiv bei jedem Bereitstellungsszenario helfen wird. Die Fähigkeit, jede Art von Umgebung (lokal, in der Cloud oder anderswo) zu unterstützen, ist unübertroffen. Schließlich bietet die neueste Version die meisten Logikfunktionen und -klassen in der HCL wie jede andere traditionelle Programmiersprache - Entwickler sind schnell zu verstehen und können Terraform problemlos beherrschen.



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 dienen. Dies bedeutet, dass ich nur ein Werkzeug lerne und dann überall arbeiten kann.
  • Open Source - Schwer zu schlagende kostenlose Tools! Community-Unterstützung auf höchstem Niveau.


Mitbewerber haben



am Scrum teilgenommen,



AWS CloudFormation jedoch nicht geschlagen - Selbst wenn Sie nur in der AWS Cloud arbeiten, verfügt Ihr nächster Job möglicherweise über ein anderes Tool. 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 werden.



Laufzeit-Tools







Das ultimative Ziel eines jeden Entwicklungsprojekts ist es, die Anwendung in die Produktion zu bringen. In der DevOps-Welt möchten wir umfassend über alle möglichen Probleme mit unserer Umgebung informiert sein und manuelle Eingriffe minimieren. Die Auswahl der richtigen Runtime-Tools ist entscheidend, um bei der Entwicklung Ihrer Anwendung Nirvana zu erreichen.



Unterkategorien der Laufzeit-Tools:



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


X-as-a-Service-Tool Nr. 1



Gewinner: Amazon Web Services





Amazon war schon immer führend im Bereich Cloud Computing, aber es hört hier nicht auf: Die Vielfalt der neuen Dienste für Entwickler ist überwältigend. Übertragen Sie alle Technologien und Vorlagen auf AWS und sie werden erstellt und gestartet. 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



  • Prävalenz - Wenn Sie Erfahrung mit dem Erstellen von Anwendungen in AWS haben, können Sie überall arbeiten. Unternehmen lieben AWS und Startups schätzen auch die geringen Kosten.
  • — , AWS . , , , - . .


Konkurrenten haben



gekämpft, aber



Azure nicht geschlagen - Azure hat seit seiner ersten Veröffentlichung einen langen Weg zurückgelegt, und das ist lobenswert. Trotzdem hat der Wunsch, sich von Gleichaltrigen zu unterscheiden, zu seltsamen Namen für Dienstleistungen geführt, was die Arbeit oft erschwert. Was bedeutet Blob-Speicherung? Während .NET-Code im Microsoft-Ökosystem eine bessere Leistung erbringt, ist es unwahrscheinlich, dass Sie .NET nur für jede Komponente Ihrer Anwendung verwenden.



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



Orchestrierungsinstrument Nr. 1



Gewinner: OpenShift





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 Orchestrierungsframework funktioniert einfach nicht. Der Kubernetes-Kern (K8s) ist in Bezug auf Sicherheit und Instrumentierung konkurrenzlos. OpenShift ist die einzige Kubernetes-basierte Plattform, die Source2Image erstellen, automatisierte Pod-Bereitstellungen unterstützen sowie verfolgen und überwachen kann. OpenShift kann gleichzeitig vor Ort, in der Cloud oder vor Ort und in der Cloud ausgeführt werden.



Hauptvorteile



  • — K8s . ! , OpenShift, .
  • « » — K8s, , OpenShift . , CI/CD, , . - , , API, , . K8s, OpenShift Kubernetes. !


Konkurrenten kämpften,



schlugen aber



Docker Swarm nicht - Docker Swarm versuchte, K8s zu vereinfachen, indem er viele Dinge loswurde. Es funktioniert hervorragend für kleine Anwendungen, aber nicht für Unternehmensanwendungen. Darüber hinaus verfolgen Lösungen wie AWS ECS einen ähnlichen Ansatz, erleichtern jedoch die Arbeit mit anderen Diensten, mit denen ich auch interagieren kann (Lambda, IAM usw.).



Überwachungstool Nr. 1



Gewinner: Neues Relikt





Frühe Versionen von New Relic haben eines gut gemacht - Application Performance Monitoring (APM). Es ist jetzt ein voll ausgestattetes Überwachungstool zur Überwachung der Server-, Container-, Datenbankleistung, Überwachung der Endbenutzererfahrung und natürlich der Überwachung der Anwendungsleistung.



Hauptvorteile



  • Benutzerfreundlichkeit - Als Systemingenieur habe ich viele Überwachungstools verwendet, bin aber nie auf etwas so Einfaches und Benutzerfreundliches gestoßen wie New Relic. Es ist SaaS, Sie müssen es also nicht selbst installieren.
  • — . , , , . New Relic , .


Konkurrenten nahmen



an der Schlacht teil, gewannen aber nicht



Zabbix - mein erstes und beliebtestes Überwachungssystem, aber es ist in der Vergangenheit geblieben, da es an Entwicklungstechnologien für Cloud-Technologien und an der Überwachung der Leistung von APM-Anwendungen mangelt. Zabbix funktioniert immer noch gut mit der herkömmlichen Überwachung der Serverinfrastruktur, aber das war es auch schon.



DataDog - Zu viel Fokus auf den Prozess der Verwaltung der Produktionsumgebung der Anwendung und nicht auf den Code selbst. Bei DevOps-Teams, an denen Entwickler beteiligt sind, müssen wir uns nicht auf komplexe Tools verlassen, um erstklassigen Support zu bieten.



Protokollierungswerkzeug Nr. 1



Gewinner: Splunk





Splunk ist schwer zu konkurrieren! Lange Zeit ist er führend im Holzeinschlag und tut es weiterhin am besten. Mit On-Prem- und SaaS-Angeboten können Sie Splunk überall verwenden. Der Hauptnachteil ist der Preis: Splunk ist immer noch verdammt teuer!



Hauptvorteile



  • Prävalenz - Unternehmen lieben Splunk und Unternehmen haben das Geld, um es zu kaufen.
  • Obwohl Startups versuchen, die Kosten wieder hereinzuholen, können viele Funktionen dank ihrer Open-Source-Gegenstücke gelöst werden.
  • Wartbarkeit - Einfach ausgedrückt, Splunk funktioniert und macht es gut. Es kommt mit vielen Standardeinstellungen und gebrauchsfertigen 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.


Konkurrenten haben gekämpft



, aber



ELK Stack (ElasticSearch, LogStash und Kibana) nicht geschlagen - Diese Tools scheinen Favoriten zu sein, da Sie nicht einmal Leber verkaufen müssen, um sie zu verwenden. Mit dem Anwachsen des Protokollsatzes und der Zunahme der Anzahl der an Bord befindlichen Anwendungen wird die Arbeit jedoch immer schwieriger. Im Vergleich zu Splunk habe ich mit ELK Stack viel mehr Zeit damit verbracht, das Toolkit einzurichten, als jemals zuvor Dashboards erstellt zu haben.



Werkzeuge zur Zusammenarbeit





Bei DevOps geht es hauptsächlich um den Kulturwandel innerhalb einer Organisation. Durch den Kauf eines Tools werden gewohnheitsmäßige Praktiken nicht über Nacht geändert, aber es kann sicherlich die Zusammenarbeit und neue Interaktionsweisen fördern.



Unterkategorien für Tools für die Zusammenarbeit:



  • Aufgabenverfolgung
  • ChatOps
  • Dokumentation.


# 1 Issue Tracking Tool



Gewinner: Jira





Jira behauptet eine führende Position, obwohl der Wettbewerb in diesem Bereich zunimmt. Dank der unglaublichen Flexibilität von Jira können Entwicklungs- und Wartungsteams Projektarbeiten und Sprintaufgaben verwalten. Integrierte Standards mit agiler Terminologie erleichtern den Übergang von herkömmlichen Arbeitsmethoden zu effizienteren Prozessen.



Hauptvorteile



  • Popularität - Wie viele andere Tools wird Jira fast überall verwendet. Kleine Teams verwenden eine billigere, günstigere Version und erhalten alles, was sie benötigen, während große Unternehmen sich eine höhere Lizenz leisten können.
  • — Jira — . , Jira , , . Jira , , .


Konkurrenten müssen Trello treten,



aber nicht



schlagen - Trello gewann dank seines kostenlosen Kanban-Tools schnell an Popularität. Sobald die Prozesse skaliert sind und Sie von Dutzenden von Aufgaben zu Tausenden wechseln, ist Trello jedoch schwer zu navigieren, zu suchen und zu melden.



Pivotal Tracker - Ich war ein großer Fan dieses Tools, als ich für ein Startup arbeitete. Pivotal Tracker konzentriert sich jedoch eher auf das Produktmanagement als auf technische Aufgaben. Obwohl die Verwaltung eines Produkts in Jira etwas komplexer ist, kann es dort ohne Verwendung eines zusätzlichen Tools implementiert werden.



ChatOps-Tool Nr. 1



Gewinner: MatterMost





Erklärung: Vielleicht die größte Überraschung für Sie in meiner Sammlung, und das sind großartige Neuigkeiten! MatterMost gewann an Popularität, indem es das Beste aus früheren Instrumenten herausholte, diese aber vor Ort einbezog. Dies ist für Unternehmen sehr wichtig: Mit MatterMost können Sie die Daten steuern und in Tools integrieren, die vor Ort arbeiten. Wir müssen nicht mehr außerhalb der Firewall gehen, um Arbeits-Chats zu überprüfen.



Hauptvorteile



  • Open Source - Die Open Source-Version von MatterMost eignet sich sowohl für mittlere als auch für große Teams. Im Gegensatz zum kostenlosen Slack-Plan, mit dem Ihr Nachrichtenverlauf gelöscht wird, bedeutet das Ausführen eines eigenen Servers, dass Sie alle Ihre Daten speichern.
  • Integrationen - Da die API fast zu 100% auf der Slack-API basiert, können fast alle Slack-Integrationen direkt mit MatterMost verwendet werden.


Die



Teilnehmer haben an der Schlacht teilgenommen, aber



Slack nicht geschlagen - Slack ist cool, aber diese Jungs sind so stark gewachsen, dass sie nach Gewinn suchten. Die Phase der Amortisation von Unternehmen rückt näher, was ihren Hauptwert beeinträchtigt: Slack erbrachte kostenlose Dienstleistungen; Der wichtigste Nachteil der kostenlosen Version ist das Löschen des Chat-Verlaufs.



Microsoft-Teams - Versuchen Sie, ein Microsoft-Produkt in etwas zu integrieren, das nicht von Microsoft stammt ... Viel Glück! Das ist alles, was ich zu diesem Tool sagen möchte!



Dokumentationswerkzeug Nr. 1



Gewinner: Zusammenfluss





Das Erstellen und Verwalten hochwertiger technischer Dokumentationen ist ein komplexer Prozess, unabhängig vom verwendeten Tool. Obwohl es in letzter Zeit viele SaaS-Dokumentationstools auf dem Markt gab, wäre es für mich schwierig, die Speicherung technischer Dokumentation für kritische Anwendungen an Dritte auszulagern. Das Speichern von Daten und Dokumenten ist dem On-Prem-Speichern vorzuziehen. So löst Confluence das Problem.



Hauptvorteile



  • Einfache Bedienung - Die meisten eigenständigen Tools können etwas schwierig einzurichten und zu bedienen sein und erfordern einige Kenntnisse, um sie zu warten. Confluence Server funktioniert sofort für 10 oder 10.000 Benutzer.
  • Plugins - Dank Confluence für die sofort einsatzbereite und einfache Navigation und die Möglichkeit, ein Plugin für nahezu alles hinzuzufügen, eröffnet sich das Potenzial als Wiki.


Konkurrenten haben



gekämpft, aber nicht gewonnen



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



MarkDown - Ideal für die Dokumentation von Code, aber aufgrund der spezifischen Formatierung von MarkDown ist es schwierig, Architektur, Prozesse oder andere Arten von Dokumentation hier zu hosten.



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



Fassen wir zusammen



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



Vergessen Sie nicht, Werkzeuge aus allen fünf Kategorien auszuwählen:



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


Top Empfehlung: Alles automatisieren!



Vielen Dank an Zach Shapiro!



All Articles