Inhaltsübersicht
Die Wahl des richtigen offenen eine Quelldatei oder -lösung für Ihren speziellen Anwendungsfall zu finden, kann aufgrund der großen Auswahl auf GitHub und anderen Plattformen eine Herausforderung sein. Hilfe wird immer sehr geschätzt, besonders in den frühen Phasen Ihrer Automatisierungsreise, wenn viele Fragen unbeantwortet oder unklar sind.
Dieser Blog führt Sie durch einige grundlegende Dinge, auf die Sie bei der Auswahl Ihres Werkzeugkastens achten sollten.
Legen wir los! 🎯
Programmieren
Wenn es um Automatisierung geht, ist die erste und wichtigste Anwendung, die Sie benötigen, eine Entwicklungsumgebung. Meiner Meinung nach gibt es zwei Werkzeuge, die Sie sich ansehen sollten. Jedes hat einzigartige Vorteile, Nachteile und Anwendungsfälle:
Während ich IDEA für Infrastructure as Code (insbesondere mit Terraform und Unterstützung für Variablen- und Modulabhängigkeiten) sowie die umfangreiche Git-Unterstützung liebe, bietet VS Code weitaus mehr Integrationen.
Ich bevorzuge IDEA für Terraform-bezogene Aufgaben und VSCode für PowerShell DSC-bezogene Programmierung.
Ganz egal, wofür Sie sich entscheiden, versuchen Sie, so viele Verknüpfungen wie möglich zu lernen, um Ihren Arbeitsablauf zu beschleunigen. Für die meisten Automatisierungsaufgaben benötigen Sie nichts weiter, da Inline-Hilfe für Befehle, Dokumentation mit Markdown, Git-Integration sowie Debugging- und Testfunktionen praktisch vollständig integriert sind, um Ihnen den Einstieg zu erleichtern.
Abonnieren Sie GitHub Copilot (etwa $10 pro Monat), was die Geschwindigkeit beim Programmieren durch Code-Vervollständigung erheblich steigern und bei der Dokumentation helfen wird.
GitHub Copilot verkürzt die Zeit, die Sie für das Schreiben von Code und Dokumentation aufwenden müssen.
Und für den unwahrscheinlichen Fall, dass Sie sich verlaufen und nicht wissen, wie Sie mit dem Programmieren beginnen sollen, fragen Sie einfach ChatGPT. Es hat mir schon oft geholfen – sogar dann, wenn unsere Entwickler nicht weiterwussten. Erwarte aber nicht zu viel; die Lösungen funktionieren oft nicht vollständig und müssen etwas angepasst werden. Manchmal liefert Google bessere Beispiele.
Dokumentation
Wie erwähnt im letzten Blog, Dokumentation ist unerlässlich für das Verständnis der Voraussetzungen und Anforderungen eines Automatisierungsskripts sowie für die Beschreibung aller Funktionen und Parameter..
Die Markdown-Leitfaden gibt Ihnen einen guten Überblick über die Sprache. Wenn Sie ein separates Team haben, das Dokumentationen für Sie schreibt, überprüfen Sie Autorenseite.
Speichern Sie die Dokumentation immer direkt neben Ihrem Code, um Änderungen nebeneinander mit dem Code zu ermöglichen.
Wenn Sie zusätzlich zur Speicherung einer README-Datei neben Ihrem Code eine Dokumentationswebseite für Ihr Team erstellen möchten, prüfen Sie die folgenden Tools zur Erstellung von Webseiten aus Ihren Markdown-Code: Hugo und MkDocs.
Implementierung von Änderungsmanagement und Versionskontrolle
Versionskontrolle ist die Grundlage Ihrer Automatisierungsreise, daher machen sicher für eine robuste Systemimplementierung für die Zukunft. Sie können beginnen einfach indem Sie ein Repository für Ihr erstes Skript erstellen und dann schrittweise die Funktionalität erweitern, je weiter Ihre Anforderungen und Ihr Wissen wachsen.
Ein guter Ausgangspunkt ist Git. Um die Dinge am Anfang nicht zu kompliziert zu machen, ein Repository erstellen auf GitHub und machen Sie sich mit den Funktionen und Möglichkeiten vertraut. Wenn Sie an Azure DevOps-Abonnement, Sie könnten Azure Repos auch für diesen Zweck verwenden. Abhängig von Ihrem Anwendungsfall, du solltest gründlich untersuchen Ihre Bedürfnisse.
Bei XOAP sind wir zunächst von Azure Repos abgewichen, da GitHub weitaus mehr Flexibilität und Erweiterungen für Änderungsmanagement, Versionierung, Dokumentation und Änderungsbereitstellung bietet.
Definition von Entwicklungs- und Kodierungsrichtlinien
Weil der Veränderungsprozess immer beim Entwickler beginnt und endet (ja, Sie‘Sie sind jetzt ein Entwickler., Sie sollten Richtlinien implementieren, bevor der Code überhaupt in das Repository gelangt. Es gibt einige Tools, die Sie sich ansehen sollten.
Das erste ist pRe-Commit-Hooks. Es prüft den Code auf einfache Probleme wie fehlende Semikolons, nachgestellte Leerzeichen und mehr. Das nächste, was Sie im Auge behalten sollten, ist das Thema Linting mit Riesendarm. Es analysiert die Konsistenz Ihres Codes, Ihrer IAC, Konfiguration und Skripte in Ihren Repository-Quellen, um sicherzustellen, dass alle von Ihre Projektquellen sind sauber und korrekt. formatiert.
Implementieren tfsec um die Sicherheit Ihres Terraform-Codes während die Entwicklung von Modulen.
Nach diesen Ausgangswerten, Sie müssen Ihren gewünschten Change-Management-Flow überprüfen. Dieser hängt von Ihrem spezifischen Anwendungsfall und dem, was Sie bereitstellen möchten, ab.. Denk mal darüber nach!
Außerdem nimm ein Blick auf Git-Flow oder GitHub-Flow. Abgesehen davon, Eine gute Versionierung Ihrer Skripte und Module ist entscheidend, um Änderungen mit Ihren Commits zu verfolgen. Sie können GitHub-Aktionen um automatisch neue Versionen zu erstellen, wenn du einen Pull-Request erstellst. Schau dir das an Semantische Versionsdokumentation wissen Wie Versionsnummern aussehen sollten.
Ein gutes Versionskontrollsystem wird die Produktivität erheblich steigernction-Bereitstellungen, insbesondere in IaC-bezogen Automatisierungsprojekte - durch die Ermöglichung einer fortschrittlicheren Steuerung von Modulen und Stacks.
Zuletzt muss ich erwähnen die Commit-Meldungen Sie oder Ihre Kollegen geben ein wenn pusheneingehen eine Änderung am Repository oder eine Erstellungeingehen ein Pull-Request. Das zwingt dich dazu, dir den Code tatsächlich anzusehen, um die Änderungen zu prüfen und zu genehmigen. Vor diesem Hintergrund, wWir sollten unser Leben so einfach wie möglich gestalten und den Aufwand reduzieren.
Da‘nichts ist ärgerlicher alsaWenn man in den Kommentaren zu einem Commit etwas wie “Fix” oder ”Fix für fix“ liest.
Definition der Werkzeuge
Dies hängt stark von Ihren Bedürfnissen ab und ist eine der schwierigsten Methoden, um zu einem bestimmten Zeitpunkt eine Anbieterbindung zu vermeiden. Obwohl es einfach erscheinen mag, alles zu nutzen, was Ihr bevorzugter Anbieter oder Cloud-Anbieter unterstützt und anbietet, wird es schwieriger, wenn sich etwas Wesentliches ändert und Sie eine Lösung finden müssen.
Das ist einer der Gründe, warum wir Terraform für unsere Infrastruktur verwenden und einer der Gründe, warum ich oft darauf verweise. Pulumi ist eine großartige Alternative in diesem Bereich, die Sie in Betracht ziehen können, wenn Sie über eine starke Entwicklerbasis in Ihrem Unternehmen verfügen.
Es hängt auch stark davon ab, was für ein Geschäft Sie haben. Unterstützen Sie andere Unternehmen oder nur Ihr eigenes? Wenn Sie ein MSP sind, achten Sie genau auf die Lizenzierung Ihrer Werkzeuge und was erlaubt ist. Die jüngsten BSL-Änderungen von Terraform haben beispielsweise in einigen Unternehmen große Probleme verursacht.
Open-Source-Lizenzen können sich ändern – das haben wir schon mehrmals erlebt. Beachten Sie dies.
Welche Infrastrukturschicht möchten Sie automatisieren? XOAP unterscheidet zwischen Image Management, Platform Management, Configuration Management und Application Management. Jede Schicht verfügt über einen eigenen Satz an Werkzeugen, die Sie zur Unterstützung der jeweiligen Schicht nutzen können.
Ich helfe Ihnen beim Einstieg, ohne ins Detail zu gehen. Einige der oben genannten Tools können mehrere Ebenen unterstützen, aber ich habe sie der Ebene hinzugefügt, die am besten geeignet erscheint.
Image Management
Platform Management
Plattformunabhängig
Plattformspezifisch
Configuration Management
Application Management
Die folgenden Tools sind Anwendungspackaging-Tools, die immer eine Art von Vehicle auf Nodes installiert benötigen. Für Linux-Die Installationen der zugehörigen Anwendungen beziehen sich auf die Configuration Management-Tools.
Abschließende Überlegungen
Es gibt noch viele weitere Themen zu behandeln, darunter Staging, Pipelines, Monitoring, Logging, Sicherheit sowie Details zu Scrum und Kanban. Das werde ich ein anderes Mal ausführlich behandeln. Vorerst hoffe ich, dass die obigen Informationen Ihnen helfen, die Auswirkungen und worauf Sie bei Ihrer Reise achten sollten, zu verstehen.
Diesen Blog geliebt? Teilen Sie ihn mit einem anderen IT-Automatisierungs-Enthusiasten. 🙌
Bild von Freepik


