Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überblick
Innovation ist die neue Währung in der heutigen Wettbewerbslandschaft. Mitfahrangebote, Streaminginhalte, selbstfahrende Autos und andere Dienste haben nicht nur den Tagesrhythmus der Menschen grundlegend verändert, sondern auch Märkte auf den Kopf gestellt und gezeigt, dass der Wettbewerb nicht länger von physischen Ressourcen bestimmt wird, sondern von digitalen Erfahrungen.
Diese Arten von überlegenen digitalen Erlebnissen führen zu einer Disruption, bei der gut etablierte Unternehmen mit einem harten Wettbewerb von Unternehmen konfrontiert sind, die Innovation und ihren Kunden schneller Mehrwert bieten können. Um wettbewerbsfähig zu bleiben und Störungen zu vermeiden, müssen Unternehmen eine Kultur der Innovation aufbauen und die besten und passendsten Tools und Clouddienste nutzen.
GitHub bietet eine Reihe von Features, die Unternehmen dabei helfen können:
- Nutzen Sie Azure-Dienste und -Funktionen.
- Modernisieren Sie ihre Praktiken.
- Werden Sie während dieses kulturellen Wandels agiler und innovativer.
Unternehmen können die Verbindung von GitHub mit der Open-Source-Community nutzen und Tausende von wiederholten, erweiterten und einsatzbereiten Cloudlösungsbeispielen aus Organisationen finden, die Azure-Dienste erfolgreich eingeführt haben. Sie können sich einfach von diesen Lösungen inspirieren lassen und sie weiterentwickeln, um sie an ihre geschäftlichen Bedürfnisse anzupassen.
GitHub erleichtert Organisationen das Teilen innerhalb ihrer Teams, wodurch die Modernisierung und Bereitstellung der nächsten Anwendung oder Arbeitsauslastung beschleunigt wird. Unternehmen können auf InnerSource, einen wichtigen Innovationsgrundsatz, zurückgreifen, um bewährte Praktiken wie Teilen und Wiederverwendung, Zusammenarbeit und Kommunikation sowie weitere aus der Open Source-Community zu übernehmen und innerhalb ihrer Organisation anzuwenden.
Von der Sicherung der Open-Source-Pakete bis zum geistigen Eigentum, das täglich geschrieben wird, sollte die Sicherung der gesamten Software-Lieferkette für jedes Unternehmen eine hauptpriorität sein. Dieses Ziel erfordert erweiterte Sicherheitstechnologie, die während des gesamten Lebenszyklus integriert und automatisiert werden kann, und systemeigene GitHub-Funktionen wie GitHub advanced security und GitHub Actions bieten diese Art von Flexibilität.
Nutzen von Open-Source-Ressourcen
Hochwirksame Organisationen erkennen Open-Source-Software (OSS) als unerlässlich und optional für die moderne Softwareentwicklung an. Sie engagieren sich mit den Entwickler-Communitys, von denen sie abhängig sind, und nutzen eine sichere Plattform, um strategisch in OSS zu investieren. Daher erleben diese Organisationen Innovationen schnell, überflügeln Wettbewerber und senken Kosten und gleichzeitig das Risiko minimieren.
OSS besteht aus Paketen, Bibliotheken, Skripts und Abhängigkeiten, die in Anwendungen integriert sind. OSS umfasst auch Tausende von Open-Source-Ressourcen in Form von Infrastruktur als Code (IaC), Dokumentation und Anleitungen für gut definierte Azure-Architekturen. Microsoft, Partner, Lieferanten, Kunden und Einzelpersonen tragen diese Pakete zur OSS-Community bei. Sie können sie in GitHub finden und sie in einer bestimmten Azure-Umgebung ändern, wiederverwenden und bereitstellen.
Infrastruktur als Code
IaC ist die Verwaltung der Infrastruktur, die Netzwerke, virtuelle Computer, Lastenausgleichsgeräte und Verbindungstopologie in einem beschreibenden Modell umfasst. IaC verwendet das gleiche Versionsverwaltungssystem, das ein DevOps-Team für Quellcode verwendet. Beispielsweise folgt ein DevOps-Team dem Prinzip, dass derselbe Quellcode dieselbe Binärdatei generiert. Ein IaC-Modell folgt auch diesem Prinzip und generiert jedes Mal, wenn Sie das Modell anwenden, dieselbe Umgebung. IaC ist eine wichtige DevOps-Praxis, die Sie mit fortlaufender Übermittlung (CD) verwenden können.
IaC wurde entwickelt, um das Problem der Umgebungsabweichung in der Releasepipeline zu lösen. Ohne dies müssen Teams die Einstellungen einzelner Bereitstellungsumgebungen verwalten, und Inkonsistenzen zwischen Umgebungen führen zu Problemen während der Bereitstellungen. Jede Umgebung wird schließlich zu einem Schneeflocken, einer einzigartigen Konfiguration, die nicht automatisch reproduziert werden kann. Bei Schneeflocken erfordern Infrastrukturverwaltung und Wartung manuelle Prozesse, die zu Fehlern beitragen und schwer zu verfolgen sind. Infrastrukturbereitstellungen mit IaC sind wiederholbar und verhindern Laufzeitprobleme, die durch Konfigurationsabweichungen oder fehlende Abhängigkeiten verursacht werden.
Mit IaC nehmen Teams Änderungen an der Umgebungsbeschreibung und Version des Konfigurationsmodells vor, das in der Regel in gut dokumentierten Codeformaten wie JSON enthalten ist; weitere Informationen finden Sie unter Azure Resource Manager-Vorlagen . Entwickler können ihre Workflows vereinfachen, indem Sie IaC-Code im gleichen GitHub-Repository wie ihren Anwendungsquellcode hosten und dieselben CI/CD-Methoden für IaC übernehmen, die von GitHub Actions unterstützt werden.
Ein Beispiel für die Bereitstellung von benutzerdefinierten Ressourcen-Manager-Vorlagen in verschiedenen Azure-Bereichen finden Sie in der AzOps-GitHub-Aktion. Wenn Sie mit Resource Manager-Vorlagen oder IaC noch nicht vertraut sind, können Sie auch das azure-quickstart-templates Repository auf GitHub durchsuchen, die Vorlage suchen, die Sie bereitstellen möchten, und die Schaltfläche "Bereitstellen in Azure " auswählen, um zu testen, wie es funktioniert.
Cloudmusterkomponenten und bewährte Methoden
Das folgende Architekturdiagramm zeigt die Sicherheitsüberprüfungen, die in den GitHub- und Azure-Komponenten einer GitHub DevSecOps-Umgebung ausgeführt werden:
GitHub bietet eine Codehosting-Plattform, die Entwickler für die Zusammenarbeit an Open Source- und InnerSource-Projekten verwenden können.
Codespaces ist eine Onlineentwicklungsumgebung . Dieses Tool wird von GitHub gehostet und unterstützt von Microsoft Visual Studio Code, bietet eine vollständige Entwicklungslösung in der Cloud.
GitHub-Sicherheit funktioniert, um Bedrohungen auf mehrere Arten zu beseitigen. Agents und Dienste identifizieren Sicherheitsrisiken in Repositorys und abhängigen Paketen. Außerdem aktualisieren sie Abhängigkeiten auf aktuelle und sichere Versionen.
GitHub-Aktionen sind benutzerdefinierte Workflows, die CI/CD-Funktionen direkt in Repositorys bereitstellen. Computer mit dem Namen "Runner" hosten diese CI/CD-Aufträge.
Microsoft Entra ID ist ein mehrinstanzenbasierter, cloudbasierter Identitätsdienst, der den Zugriff auf Azure und andere Cloudanwendungen wie Microsoft 365 und GitHub steuert.
Azure App Service bietet ein Framework zum Erstellen, Bereitstellen und Skalieren von Web-Apps. Diese Plattform bietet integrierte Infrastrukturwartung, Sicherheitspatching und Skalierung.
Azure Policy hilft Teams bei der Verwaltung und Vermeidung von IT-Problemen durch Richtliniendefinitionen, die Regeln für Cloudressourcen durchsetzen können. Wenn ein Projekt beispielsweise kurz davor steht, eine virtuelle Maschine mit einer nicht erkannten SKU auszurollen, sendet Azure Policy Warnungen über das Problem und beendet die Bereitstellung.
Microsoft Defender for Cloud bietet eine einheitliche Sicherheitsverwaltung und erweiterten Bedrohungsschutz für Hybrid Cloud-Workloads.
Azure Monitor sammelt und analysiert Leistungsmetriken, Aktivitätsprotokolle und andere Anwendungstelemetrie. Dieser Dienst benachrichtigt Anwendungen und Mitarbeiter, wenn er unregelmäßige Bedingungen identifiziert.
InnerSource
InnerSource -Übersicht
Viele Unternehmen verwenden den Begriff "InnerSource ", um zu beschreiben, wie ihre Entwicklungsteams an Code zusammenarbeiten. InnerSource ist eine Entwicklungsmethode, in der Ingenieure proprietäre Software mit bewährten Methoden aus umfangreichen Open-Source-Projekten wie Kubernetes oder Visual Studio Code erstellen.
Umfangreiche Open-Source-Projekte erfordern Koordination und Teamarbeit über Tausende von Mitwirkenden hinweg. Die erfolgreichsten Projekte werden von einer Vision für ihre zukünftigen und täglichen Benutzerbedürfnisse gesteuert: Geschwindigkeit, Zuverlässigkeit und Funktionalität. Der Umfang, in dem diese Projekte arbeiten, bietet einige Lektionen und kann Unternehmen helfen, bessere Software schneller mit InnerSource zu erstellen.
Mit GitHubs Pull-Anforderungen und -Problemen sind Zusammenarbeit und Codeüberprüfung in den Entwicklungsprozess integriert. Interne und ausgelagerte Teams können Arbeit teilen, Änderungen diskutieren und Feedback an einem zentralen Ort erhalten. Auf diese Weise können Organisationen Intern Know-how teilen und vermeiden, feldgeprüfte Lösungen neu zu erfinden, die für andere Projekte entwickelt wurden.
Die Anatomie eines InnerSource-Projekts
Die richtige Mischung aus Einzelpersonen, Teams und Ressourcen kann den Erfolg eines Projekts sicherstellen. Viele Open-Source-Projekte folgen einer ähnlichen Organisationsstruktur, die Organisationen dabei helfen kann, funktionsübergreifende Teams zum Verwalten von InnerSource-Projekten einzurichten. Ein typisches Open-Source-Projekt hat die folgenden Typen von Personen:
Maintainer: Diese Mitwirkenden treiben die Vision voran und verwalten die organisatorischen Aspekte des Projekts. Möglicherweise sind sie nicht die ursprünglichen Besitzer oder Autoren des Codes.
Beitragende: Diese Leute sind alle, die etwas zum Projekt beigetragen haben.
Communitymitglieder: Dies sind Personen, die das Projekt verwenden. Sie können in Unterhaltungen aktiv sein oder ihre Meinung zur Richtung des Projekts äußern.
Größere Projekte könnten auch Unterausschüsse oder Arbeitsgruppen haben, die sich auf verschiedene Aufgaben wie Werkzeuge, Triage und die Moderation der Community konzentrieren. InnerSource-Projekte folgen wahrscheinlich einer ähnlichen Struktur. Viele Engineering-Organisationen sortieren Entwickler in Teams wie Anwendungstechnik, Plattformtechnik und Webentwicklung. Das Strukturieren von Organisationen auf diese Weise kann blinde Flecken hinterlassen, die qualifizierte Personen ausschließen. Das Organisieren einer zentralen Entscheidungsgruppe, die von Teams in einer Organisation unterstützt wird, kann dazu beitragen, das erforderliche Fachwissen zu sammeln, um Probleme schneller zu lösen.
Innerhalb eines Unternehmens sind die Beitragenden Entwickler aus allen Abteilungen, und Projektleiter sind die Führungskräfte sowie die wichtigen Entscheidungsträger eines Projekts.
Maintainer: Entwicklende, Produktmanager und andere wichtige Entscheidungsträger in einem Unternehmen, deren Aufgabe darin besteht, auf das Projektziel hinzuarbeiten und die täglichen Beiträge zu verwalten.
Beitragende: Entwickler, Data Scientists, Produktmanager, Vermarkter und andere Rollen innerhalb eines Unternehmens, die die Entwicklung von Software fördern. Mitwirkende sind möglicherweise nicht Teil des direkten Projektteams, sondern helfen beim Erstellen von Software, indem Sie Code beitragen, Fehlerkorrekturen übermitteln und vieles mehr.
Weitere Informationen finden Sie im Whitepaper Eine Einführung in InnerSource.
Automatisierung
Mit GitHub-Aktionen können Benutzer benutzerdefinierte Workflows direkt in ihren GitHub-Repositorys erstellen. Benutzer können Aktionen ermitteln, erstellen und freigeben, um einen beliebigen Auftrag auszuführen, einschließlich CI/CD, und Aktionen in einem vollständig angepassten Workflow zu kombinieren. Sie können auch CI-Workflows erstellen, die Projekte erstellen und testen, die in verschiedenen Programmiersprachen geschrieben wurden. Beispiele sind in den Leitfäden für GitHub-Aktionen verfügbar.
GitHub-Aktionen können verwendet werden, um IaC-Konzepte und CI/CD-Methoden zu kombinieren, um den gesamten End-to-End-Bereitstellungslebenszyklus zu automatisieren, einschließlich Bereitstellung oder Aktualisierung der Zielumgebung auf wiederholbare Weise und Packen und Bereitstellen der Anwendung selbst.
Beispiel:
GitHub-Aktionen für Azure werden entwickelt, um zu vereinfachen, wie Sie Ihre Bereitstellungsprozesse für Azure-Dienste wie Azure App Service, Azure Kubernetes Service, Azure Functions und vieles mehr automatisieren. Das Repository für Azure-Startaktionsworkflows umfasst End-to-End-Workflows zum Erstellen und Bereitstellen von Web-Apps jeder Sprache und eines beliebigen Ökosystems in Azure. Besuchen Sie den GitHub-Marketplace , um alle verfügbaren Aktionen anzuzeigen.
Sicherheit
Shift-Left-Sicherheitsfeatures von GitHub
Ab den ersten Entwicklungsschritten hält DevSecOps die bewährten Methoden der Sicherheit ein. Mit einer Shift-Left-Strategie verlegt DevSecOps den Fokus auf Sicherheit. Anstatt am Ende Überwachung einzuführen, verlagert sie sich schon am Anfang auf die Entwicklung. Neben der Erstellung robuster Code hilft dieser fehlerschnelle Ansatz, Probleme frühzeitig zu beheben, wenn sie leicht zu beheben sind.
Mit vielen Sicherheitsfunktionen bietet GitHub Tools, die jeden Teil eines DevSecOps-Workflows unterstützen:
- Browserbasierte IDEs mit integrierten Sicherheitserweiterungen
- Agents, die ständig Sicherheitsempfehlungen überwachen und anfällige und veraltete Abhängigkeiten ersetzen
- Suchfunktionen, die Quellcode auf Sicherheitsrisiken überprüfen
- Aktionsbasierte Workflows, die jeden Schritt der Entwicklung, Tests und Bereitstellung automatisieren
- Räume, die eine Möglichkeit bieten, Sicherheitsbedrohungen privat zu diskutieren und zu lösen und dann die Informationen zu veröffentlichen
- In Kombination mit der Überwachungs- und Auswertungsleistung von Azure bieten diese Features einen hervorragenden Service für die Erstellung sicherer Cloudlösungen.
Beispiel:
GitHub DevSecOps-Installationen decken viele Sicherheitsszenarien ab. Zu den Möglichkeiten zählen die folgenden Fälle:
- Entwickler, die vorkonfigurierte Umgebungen nutzen möchten, die Sicherheitsfunktionen bieten.
- Administratoren, die sich darauf verlassen können, dass ihnen aktuelle, nach Prioritäten geordnete Sicherheitsberichte zusammen mit Einzelheiten zum betroffenen Code und vorgeschlagenen Korrekturen zur Verfügung stehen.
- Effiziente Organisationen, die Systeme benötigen, um automatisch neue und unkompromittierte Sicherheitsgeräte bereitzustellen, wenn Sicherheitsgeheimnisse im Code freigelegt sind.
- Entwicklungsteams, die von automatischen Upgrades profitieren könnten, wenn neuere oder sicherere Versionen externer Pakete verfügbar sind.
Weitere Informationen finden Sie unter:
- DevSecOps in GitHub: Ideen für Azure-Lösungen
- Codeüberprüfung eines GitHub-Repositorys mit erweiterter GitHub-Sicherheit in einer Azure DevOps-Pipeline
- Anwenden von DevSecOps auf Ihre Software-Lieferkette
Nächste Schritte
- Wählen Sie Ihr Implementierungsteam aus (in der Regel ein Entwicklermanager und einige Entwickler, die als Administratoren definiert sind), und stellen Sie GitHub bereit.
- Lernen Sie gängige und erweiterte Git-Workflows kennen, um die Verwendung von GitHub zu verbessern.
Die folgenden Links enthalten weitere Informationen zu GitHub.