Informationen zu GitHub Actions für Unternehmen
GitHub Actions ist eine Plattform für Continuous Integration und Continuous Delivery (CI/CD), mit der du deine Build-, Test- und Bereitstellungspipeline automatisieren kannst. Mit GitHub Actions kann dein Unternehmen deine Softwareentwicklungs-Workflows wie Tests und Bereitstellungen automatisieren, anpassen und ausführen. Weitere Informationen findest du unter Informationen zu GitHub Actions für Unternehmen.
Bevor du GitHub Actions in einem großen Unternehmen einführst, musst du die Einführung zuerst planen und Entscheidungen darüber treffen, wie das Unternehmen GitHub Actions verwenden soll, um seine besonderen Anforderungen optimal zu unterstützen.
Governance und Einhaltung
Du solltest einen Plan erstellen, um das Verwenden von GitHub Actions in deinem Unternehmen zu steuern und deine Complianceverpflichtungen zu erfüllen.
Bestimme, welche Aktionen und wiederverwendbare Workflows deine Entwicklerinnen verwenden dürfen. Entscheide zunächst, ob du Drittanbieteraktionen und wiederverwendbare Workflows zulässt, die nicht von GitHub erstellt wurden. Du kannst die Aktionen und wiederverwendbaren Workflows konfigurieren, die auf Repository-, Organisations- und Unternehmensebenen ausgeführt werden dürfen. Außerdem kannst du auch nur Aktionen zulassen, die von GitHub erstellt wurden. Wenn du Drittanbieteraktionen und wiederverwendbare Workflows zulässt, kannst du zulässige Aktionen auf diejenigen beschränken, die von überprüften Autorinnen erstellt wurden oder die in einer Liste mit bestimmten Aktionen und wiederverwendbaren Workflows aufgeführt sind.
Weitere Informationen findest du unter Verwalten von GitHub Actions-Einstellungen für ein Repository, GitHub Actions für deine Organisation Deaktivieren oder Einschränken und Erzwingen von Richtlinien für GitHub Actions in deinem Unternehmen.
Erwäge, OpenID Connect (OIDC) mit wiederverwendbaren Workflows zu kombinieren, um konsistente Bereitstellungen in deinem Repository, deiner Organisation oder deinem Unternehmen zu erzwingen. Dies erreichst du durch das Definieren von Vertrauensbedingungen für Cloudrollen basierend auf wiederverwendbaren Workflows. Weitere Informationen findest du unter Verwenden von OpenID Connect mit wiederverwendbaren Workflows.
Über die Überwachungsprotokolle deines Unternehmens kannst du auf Informationen zu Aktivitäten im Zusammenhang mit GitHub Actions zugreifen. Wenn deine geschäftlichen Anforderungen voraussetzen, dass diese Informationen länger aufbewahrt werden als die Daten der Überwachungsprotokolle, plane das Exportieren und Speichern dieser Daten außerhalb von GitHub. Weitere Informationen findest du unter Exportieren der Überwachungsprotokollaktivität für dein Unternehmen und Streamen des Überwachungsprotokolls für ein Unternehmen.
Sie können das Prinzip der geringsten Rechte ausüben, indem Sie benutzerdefinierte Organisationsrollen für den Zugriff auf Einstellungen in Ihrer GitHub Actions CI/CD-Datenpipeline verwalten. Weitere Informationen zu benutzerdefinierten Organisationsrollen finden Sie unter „Informationen zu benutzerdefinierten Organisationsrollen“.
Sicherheit
Du solltest deine Herangehensweise an die Sicherheitshärtung von GitHub Actions planen.
Sicherheitshärtung einzelner Workflows und Repositorys
Plane, gute Sicherheitspraktiken für Personen mit Features von GitHub Actions innerhalb deines Unternehmens zu erzwingen. Weitere Informationen zu diesen Methoden findest du unter Sicherheitshärtung für GitHub Actions.
Du kannst auch das Wiederverwenden von Workflows unterstützen, deren Sicherheit bereits bewertet wurde. Weitere Informationen findest du unter Innersourcing.
Absichern des Zugriffs auf Geheimnisse und Bereitstellungsressourcen
Du solltest planen, wo du deine Geheimnisse speicherst. Es wird empfohlen, Geheimnisse auf GitHub zu speichern, aber du kannst Geheimnisse auch bei einem Cloudanbieter speichern.
Auf GitHub kannst du Geheimnisse auf Repository- oder Organisationsebene speichern. Geheimnisse auf Repositoryebene können auf Workflows in bestimmten Umgebungen beschränkt werden, z. B. Produktion oder Test. Weitere Informationen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.
Du solltest erwägen, eine Schutzfunktion mit manueller Genehmigung für vertrauliche Umgebungen hinzuzufügen, sodass Workflows genehmigt werden müssen, bevor auf die Geheimnisse der Umgebungen zugegriffen werden kann. Weitere Informationen findest du unter Verwalten von Umgebungen für die Bereitstellung.
Sicherheitsaspekte für Aktionen von Drittanbietern
Es besteht ein erhebliches Risiko, wenn Aktionen aus Drittanbieterrepositorys in GitHub ausgeführt werden. Wenn du Aktionen von Drittanbietern zulässt, solltest du interne Richtlinien erstellen, die dein Team ermutigen, bewährte Methoden zu befolgen, z. B. das Anheften von Aktionen an vollständige Commit-SHAs. Weitere Informationen findest du unter Sicherheitshärtung für GitHub Actions.
Private Netzwerke mit von GitHub gehosteten Runnern
Sie können GitHub-gehosteten Runnern in einem Azure-VNET verwenden. Dies ermöglicht es Ihnen, die Vorteile der von GitHub verwalteten Infrastruktur für Ihren CI/CD-Prozess nutzen und gleichzeitig vollständige Kontrolle über die Netzwerkrichtlinien Ihrer Runner zu haben. Weitere Informationen zu Azure-VNET findest du in der Azure-Dokumentation unter Was ist Azure Virtual Network?. Weitere Informationen finden Sie unter „AUTOTITEL“.
Innersourcing
Denke darüber nach, wie dein Unternehmen Features von GitHub Actions für das Innersourcing der Automatisierung verwenden kann. Innersourcing ist eine Möglichkeit, die Vorteile von Open-Source-Methoden in den internen Softwareentwicklungszyklus einzubeziehen. Weitere Informationen findest du unter Einführung ins Innersourcing in den GitHub-Ressourcen.
Um Aktionen für dein gesamtes Unternehmen freizugeben, ohne diese für den öffentlichen Zugriff zu veröffentlichen, kannst du die Aktionen in einem internen Repository speichern und dieses dann so konfigurieren, dass der Zugriff auf GitHub Actions-Workflows in anderen Repositorys im Besitz derselben Organisation oder einer anderen Organisation im Unternehmen zugelassen ist. Weitere Informationen finden Sie unter Freigeben von Aktionen und Workflows in deinem Unternehmen.
Mit wiederverwendbaren Workflows kann dein Team einen Workflow aus einem anderen Workflow aufrufen, um eine exakte Duplizierung zu vermeiden. Wiederverwendbare Workflows fördern bewährte Methoden, indem dein Team so Workflows verwendet, die gut konzipiert sind und bereits getestet wurden. Weitere Informationen findest du unter Wiederverwenden von Workflows.
Sie können Workflowvorlagen als Ausgangspunkt für Entwicklerinnen bereitstellen, die neue Workflows erstellen. So sparen deine Entwicklerinnen nicht nur Zeit, sondern du förderst auch unternehmensweit Konsistenz und bewährte Methoden. Weitere Informationen findest du unter Erstellen von Workflowvorlagen für die Organisation.
Wenn deine Workflowentwickler*innen eine Aktion verwenden möchten, die in einem privaten Repository gespeichert ist, müssen sie den Workflow so konfigurieren, dass das Repository zuerst geklont wird. Um die Anzahl der zu klonenden Repositorys zu verringern, solltest du häufig verwendete Aktionen in einem einzelnen Repository gruppieren. Weitere Informationen findest du unter Informationen zu benutzerdefinierten Aktionen.
Verwalten von Ressourcen
Du solltest das Verwalten der benötigten Ressourcen zum Verwenden von GitHub Actions planen.
Runner
GitHub Actions-Workflows benötigen Runner. Du kannst von GitHub gehostete oder selbstgehostete Runner verwenden. GitHub verwaltet die Wartung und Upgrades für von GitHub gehostete Runner. Weitere Informationen findest du unter Verwenden von auf GitHub gehosteten Runnern.
Zum Verwalten eigener Ressourcen, Konfigurationen oder geografischen Standorte der Runner-Computer sind selbstgehostete Runner zu verwenden. Weitere Informationen findest du unter Informationen zu selbstgehosteten Runnern.
Wenn mehr Kontrolle über die Netzwerkrichtlinien für die Runner gewünscht wird, sind selbstgehostete Runner oder private Netzwerkoptionen für von GitHub gehostete Runner zu verwenden. Weitere Informationen über private Netzwerkoptionen finden Sie unter „Informationen zu privaten Netzwerken mit von GitHub gehosteten Runnern“.
Wenn du selbstgehostete Runner verwendest, musst du entscheiden, ob du physische Computer, virtuelle Computer oder Container verwenden möchtest. Auf physischen Computern verbleiben Reste früherer Aufträge. Dies gilt auch für virtuelle Computer, es sei denn, du verwendest für jeden Auftrag ein frisches Image oder bereinigst die Computer nach jeder Auftragsausführung. Wenn du dich für Container entscheidest, solltest du dir bewusst sein, dass der Container bei automatischen Updates des Runners heruntergefahren wird. Dabei kann es passieren, dass Workflows fehlschlagen. Du solltest dafür eine Lösung finden, indem du automatische Updates verhinderst oder den Befehl zum Beenden des Containers überspringst.
Du musst auch entscheiden, wo die einzelnen Runner hinzugefügt werden sollen. Du kannst einen selbstgehosteten Runner einem einzelnen Repository hinzufügen, oder du kannst den Runner für eine gesamte Organisation oder dein gesamtes Unternehmen zur Verfügung stellen. Das Hinzufügen von Runnern auf Organisations- oder Unternehmensebene ermöglicht die Freigabe von Runnern. Dadurch wird möglicherweise die Größe der Runnerinfrastruktur verringert. Du kannst Richtlinien verwenden, um den Zugriff auf selbstgehostete Runner auf Organisations- und Unternehmensebene zu beschränken, indem du Gruppen von Runnern bestimmten Repositorys oder Organisationen zuweist. Weitere Informationen finden Sie unter Selbst-gehostete Runner hinzufügen und unter Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen. Sie können auch Richtlinien verwenden, um zu verhindern, dass Personen selbstgehostete Runner auf Repository-Ebene verwenden. Weitere Informationen findest du unter Erzwingen von Richtlinien für GitHub Actions in deinem Unternehmen.
Du solltest die automatische Skalierung erwägen, um die Anzahl der verfügbaren selbstgehosteten Runner automatisch zu erhöhen oder zu verringern. Weitere Informationen findest du unter Automatische Skalierung mit selbstgehosteten Runnern.
Schließlich solltest du die Sicherheitshärtung für selbstgehostete Runner berücksichtigen. Weitere Informationen findest du unter Sicherheitshärtung für GitHub Actions.
Storage
Mit Artefakten kannst du Daten zwischen Aufträgen in einem Workflow teilen und Daten nach Abschluss des Workflows speichern. Weitere Informationen findest du unter Speichern und Freigeben von Daten aus einem Workflow.
GitHub Actions verfügt auch über ein Cachesystem, mit dem du Abhängigkeiten zwischenspeichern kannst, um die Ausführung von Workflows zu beschleunigen. Weitere Informationen findest du unter Abhängigkeiten zwischenspeichern um Workflows zu beschleunigen.
Mit Richtlinieneinstellungen für GitHub Actions kannst du das Speichern von Workflowartefakten, Caches und die Protokollaufbewahrung anpassen. Weitere Informationen findest du unter Erzwingen von Richtlinien für GitHub Actions in deinem Unternehmen.
Eine gewisse Speichermenge ist in deinem Abonnement enthalten, aber zusätzlicher Speicherplatz wirkt sich auf deine Rechnung aus. Du solltest diese Kosten einplanen. Weitere Informationen findest du unter Informationen zur Abrechnung für GitHub Actions.
Nachverfolgen der Nutzung
Du solltest einen Plan zum Nachverfolgen der durch dein Unternehmen erfolgenden Nutzung von GitHub Actions erstellen. Überlege zum Beispiel, wie oft Workflows ausgeführt werden, wie viele dieser Ausführungen erfolgreich sind und wie viele fehlschlagen, und von welchen Repositorys welche Workflows verwenden.
Du kannst grundlegende Details zu Speicher- und Datenübertragungsnutzung von GitHub Actions für jede Organisation in deinem Unternehmen mithilfe der Abrechnungseinstellungen anzeigen. Weitere Informationen findest du unter Anzeigen der GitHub Actions-Nutzung.
Wenn du ausführlichere Nutzungsdaten anzeigen möchtest, kannst du Webhooks verwenden, um Informationen über Workflowaufträge und Workflowausführungen zu abonnieren. Weitere Informationen findest du unter Informationen zu Webhooks.
Plane, wie dein Unternehmen die Informationen aus diesen Webhooks in ein Datenarchivierungssystem übertragen kann. Du kannst „CEDAR.GitHub.Collector“ verwenden, ein Open-Source-Tool, mit dem Webhookdaten aus GitHub gesammelt und verarbeitet werden. Weitere Informationen findest du im Microsoft/CEDAR.GitHub.Collector
-Repository.
Du solltest auch planen, wie du es deinen Teams ermöglichst, die benötigten Daten aus deinem Archivierungssystem abzurufen.