Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Aperçu
L’innovation est la nouvelle monnaie dans le paysage concurrentiel d’aujourd’hui. Le partage, le streaming de contenu, les voitures autonomes et d’autres services ont fondamentalement changé les rythmes quotidiens des gens tout en tournant les marchés à l’envers et montrant comment le paysage concurrentiel est passé des ressources physiques aux expériences numériques.
Ces types d’expérience numérique supérieure mènent à une perturbation où les entreprises bien établies font face à une concurrence rigide des entreprises qui peuvent innover et offrir de la valeur à leurs clients plus rapidement. Pour concurrencer et éviter les perturbations, les entreprises doivent créer une culture d’innovation et utiliser les meilleurs outils et services cloud les plus adaptés.
GitHub fournit une gamme de fonctionnalités qui peuvent aider les entreprises à :
- Tirez parti des services et fonctionnalités Azure.
- Moderniser leurs pratiques.
- Devenez plus agile et innovant au cours de ce changement culturel.
Les entreprises peuvent tirer parti de la connexion de GitHub à la communauté open source et trouver des milliers de exemples de solutions cloud répétées, améliorées et prêtes à être déployées à partir d’organisations ayant adopté avec succès des services Azure. Ils peuvent facilement emprunter et itérer sur ces solutions pour les adapter à leurs besoins métier.
GitHub facilite le partage d’organisations au sein de leurs équipes, ce qui accélère la modernisation et le déploiement de l’application ou de la charge de travail suivante. Les entreprises peuvent regarder InnerSource, un élément clé de l’innovation, emprunter les meilleures pratiques telles que le partage et la réutilisation, la collaboration et la communication, et plus encore de la communauté open source et les appliquer au sein de leur organisation.
De la sécurisation des packages open source à la propriété intellectuelle écrite quotidiennement, la sécurisation de l’ensemble de la chaîne d’approvisionnement logicielle doit être une priorité principale pour chaque entreprise. Cet objectif nécessite une technologie de sécurité avancée qui peut être incorporée et automatisée tout au long du cycle de vie, et des fonctionnalités GitHub natives telles que la sécurité avancée GitHub et GitHub Actions offrent cette flexibilité de type.
Tirer parti des ressources open source
Les organisations hautement efficaces reconnaissent que les logiciels open source (OSS) sont essentiels et facultatifs pour le développement de logiciels modernes. Ils s’engagent avec les communautés de développeurs sur lesquelles ils dépendent et utilisent une plateforme sécurisée pour investir stratégiquement dans OSS. Par conséquent, ces organisations innovent rapidement, dépassent les concurrents et réduisent les coûts tout en réduisant les risques.
OSS se compose de packages, de bibliothèques, de scripts et de dépendances incorporés dans des applications. OSS inclut également des milliers de ressources open source sous la forme d’infrastructure en tant que code (IaC), de documentation et d’aide pour les architectures Azure bien définies. Microsoft, partenaires, fournisseurs, clients et individus contribuent ces packages à la communauté OSS. Vous pouvez les trouver dans GitHub et les modifier, les réutiliser et les déployer dans un environnement Azure spécifique.
Infrastructure en tant que code
IaC est la gestion de l’infrastructure qui inclut les réseaux, les machines virtuelles, les équilibreurs de charge et la topologie de connexion dans un modèle descriptif. IaC utilise le même système de contrôle de version qu’une équipe DevOps utilise pour le code source. Par exemple, une équipe DevOps suit le principe selon lequel le même code source génère le même binaire. Un modèle IaC suit également ce principe et génère le même environnement chaque fois que vous appliquez le modèle. IaC est une pratique de DevOps clé que vous pouvez utiliser avec la livraison continue (CD) .
IaC a évolué pour résoudre le problème de dérive de l’environnement dans le pipeline de mise en production. Sans cela, les équipes doivent gérer les paramètres des environnements de déploiement individuels et les incohérences entre les environnements entraînent des problèmes pendant les déploiements. Chaque environnement devient finalement un flocon de neige, une configuration unique qui ne peut pas être reproduite automatiquement. Avec les flocons de neige, l’administration et la maintenance de l’infrastructure nécessitent des processus manuels qui contribuent aux erreurs et sont difficiles à suivre. Les déploiements d’infrastructure avec IaC sont reproductibles et empêchent les problèmes d’exécution causés par la dérive de configuration ou les dépendances manquantes.
Avec IaC, les équipes apportent des modifications à la description de l’environnement et à la version du modèle de configuration, généralement dans des formats de code bien documentés comme JSON ; pour plus d’informations, consultez les modèles Azure Resource Manager . Les développeurs peuvent simplifier leurs flux de travail en hébergeant du code IaC dans le même dépôt GitHub que leur code source d’application et adopter les mêmes pratiques d’intégration continue (CI) /CD pour IaC optimisées par GitHub Actions.
Consultez l’action GitHub AzOps pour obtenir un exemple de déploiement de modèles Resource Manager personnalisés dans différentes étendues Azure. Si vous débutez avec les modèles Resource Manager ou l’IaC, vous pouvez également parcourir le azure-quickstart-templates
dépôt sur GitHub, rechercher le modèle que vous souhaitez déployer, puis sélectionner le bouton Déployer sur Azure pour tester son fonctionnement.
Composants de modèle cloud et bonnes pratiques
Le diagramme d’architecture suivant met en évidence les vérifications de sécurité qui s’exécutent dans les composants GitHub et Azure d’un environnement GitHub DevSecOps :
GitHub fournit une plateforme d’hébergement de code que les développeurs peuvent utiliser pour collaborer sur des projets open source et InnerSource.
Codespaces est un environnement de développement en ligne. Hébergé par GitHub et alimenté par Microsoft Visual Studio Code, cet outil fournit une solution de développement complète dans le cloud.
La sécurité GitHub fonctionne pour éliminer les menaces de plusieurs façons. Les agents et services identifient les vulnérabilités dans les dépôts et les packages dépendants. Ils mettent également à niveau les dépendances vers les versions actuelles et sécurisées.
GitHub Actions est des flux de travail personnalisés qui fournissent des fonctionnalités CI/CD directement dans les référentiels. Les ordinateurs nommés exécuteurs hébergent ces travaux CI/CD.
Microsoft Entra ID est un service d’identité multilocataire basé sur le cloud qui contrôle l’accès à Azure et à d’autres applications cloud telles que Microsoft 365 et GitHub.
Azure App Service fournit une infrastructure pour la création, le déploiement et la mise à l’échelle d’applications web. Cette plateforme offre une maintenance intégrée de l’infrastructure, des correctifs de sécurité et une mise à l’échelle.
Le service Azure Policy permet aux équipes de gérer et d’éviter les problèmes informatiques grâce à des définitions de stratégie qui peuvent appliquer des règles pour des ressources cloud. Par exemple, si un projet est sur le point de déployer une machine virtuelle avec une référence SKU non reconnue, Azure Policy envoie des alertes sur le problème et arrête le déploiement.
Microsoft Defender pour le cloud fournit une gestion unifiée de la sécurité et une protection avancée contre les menaces dans les charges de travail cloud hybrides.
Azure Monitor collecte et analyse les métriques de performances, les journaux d’activité et d’autres données de télémétrie d’application. Ce service alerte les applications et le personnel lorsqu’il identifie des conditions irrégulières.
InnerSource
Vue d’ensemble de InnerSource
De nombreuses entreprises utilisent le terme InnerSource pour décrire comment leurs équipes d’ingénierie travaillent ensemble sur du code. InnerSource est une méthodologie de développement où les ingénieurs créent des logiciels propriétaires avec les meilleures pratiques à partir de projets open source à grande échelle comme Kubernetes ou Visual Studio Code.
Les projets open source à grande échelle nécessitent une coordination et un travail d’équipe sur des milliers de contributeurs. Les projets les plus réussis sont pilotés par une vision de leurs besoins futurs et quotidiens des utilisateurs : vitesse, fiabilité et fonctionnalité. L’échelle à laquelle ces projets fonctionnent fournit quelques leçons et peut aider les entreprises à créer de meilleurs logiciels plus rapidement avec InnerSource.
Avec les pull requests et problèmes de GitHub, la collaboration et la révision du code sont des éléments intégrés du processus de développement. Les équipes internes et externalisées peuvent partager du travail, discuter des modifications et obtenir des commentaires dans un seul endroit. Cela permet aux organisations de partager leur expertise en interne et d’éviter de réinventer des solutions testées sur le terrain développées pour d’autres projets.
Anatomie d’un projet InnerSource
La bonne combinaison d’individus, d’équipes et de ressources peut garantir la réussite d’un projet. De nombreux projets open source suivent une structure organisationnelle similaire qui peut aider les organisations à configurer des équipes interfonctionnelles pour gérer des projets InnerSource. Un projet open source classique a les types de personnes suivants :
Maintainers : Ces contributeurs sont responsables de mettre en œuvre la vision et de gérer les aspects organisationnels du projet. Ils ne sont peut-être pas les propriétaires ou auteurs d’origine du code.
Contributeurs: Ces gens sont tous ceux qui ont contribué à quelque chose au projet.
Membres de la communauté : Ce sont des personnes qui utilisent le projet. Ils peuvent être actifs dans des conversations ou exprimer leur opinion sur la direction du projet.
De plus grands projets pourraient également avoir des sous-comités ou des groupes de travail axés sur différentes tâches telles que les outils, le triage et la modération communautaire. Les projets InnerSource sont susceptibles de suivre une structure similaire. De nombreuses organisations d’ingénierie trient les développeurs en équipes telles que l’ingénierie des applications, l’ingénierie de plateforme et le développement web. Structurer les organisations de cette manière peut créer des zones d'ombre qui excluent des personnes qualifiées. L’organisation d’un groupe décisionnel principal pris en charge par les équipes d’une organisation peut aider à rassembler l’expertise nécessaire pour résoudre les problèmes plus rapidement.
Au sein d’une entreprise, les contributeurs sont des développeurs au sein de l’entreprise, et les responsables de maintenance sont les leaders d’un projet et les décideurs clés.
Maintainers: Les développeurs, les responsables de produits et d’autres décideurs clés au sein d’une entreprise responsable de la conduite de la vision d’un projet et de la gestion des contributions quotidiennes.
Contributeurs: Les développeurs, les scientifiques des données, les responsables de produits, les spécialistes du marketing et d’autres rôles au sein d’une entreprise qui aident à faire avancer les logiciels. Les contributeurs peuvent ne pas faire partie de l’équipe de projet directe, mais aider à créer des logiciels en contribuant au code, en envoyant des correctifs de bogues, etc.
Pour plus d’informations, consultez le livre blanc Une introduction à InnerSource.
Automatisation
GitHub Actions permet aux utilisateurs de créer des flux de travail personnalisés directement dans leurs référentiels GitHub. Les utilisateurs peuvent découvrir, créer et partager des actions pour effectuer n’importe quel travail, y compris CI/CD, et combiner des actions dans un flux de travail entièrement personnalisé. Ils peuvent également créer des flux de travail CI qui créent et testent des projets écrits dans différents langages de programmation. Des exemples sont disponibles dans les guides pour GitHub Actions.
GitHub Actions peut être utilisé pour combiner des concepts IaC et des pratiques CI/CD pour automatiser l’ensemble du cycle de vie du déploiement de bout en bout, notamment l’approvisionnement ou la mise à jour de l’environnement cible de manière reproductible et l’empaquetage et le déploiement de l’application elle-même.
Exemple :
GitHub Actions pour Azure est conçu pour simplifier la façon dont vous automatisez vos processus de déploiement pour cibler des services Azure tels qu’Azure App Service, Azure Kubernetes Service, Azure Functions, etc. Le référentiel de flux de travail d’action de démarrage Azure inclut des flux de travail de bout en bout pour créer et déployer des applications web de n’importe quel langage et n’importe quel écosystème sur Azure. Visitez la Place de marché GitHub pour voir toutes les actions disponibles.
Sécurité
Fonctionnalités de sécurité décalées vers la gauche de GitHub
À compter des premières étapes de développement, DevSecOps respecte les meilleures pratiques de sécurité. En utilisant une approche shift-left, DevSecOps redirige l'accent sur la sécurité. Au lieu de pointer vers l’audit à la fin, il passe au développement au début. En plus de produire du code robuste, cette approche du mode échec rapide permet de résoudre les problèmes dès qu'ils sont encore faciles à corriger.
Avec de nombreuses fonctionnalités de sécurité, GitHub offre des outils qui prennent en charge chaque partie d’un workflow DevSecOps :
- Environnements de développement intégrés basés sur un navigateur avec des extensions de sécurité intégrées
- Agents qui surveillent en permanence les avis de sécurité et remplacent les dépendances vulnérables et obsolètes
- Fonctionnalités de recherche qui analysent le code source pour détecter les vulnérabilités
- Flux de travail basés sur des actions qui automatisent chaque étape de développement, de test et de déploiement
- Espaces qui fournissent un moyen privé de discuter et de résoudre les menaces de sécurité, puis de publier les informations
- Combinées à la puissance de surveillance et d’évaluation d’Azure, ces fonctionnalités offrent un excellent service pour la création de solutions cloud sécurisées
Exemple :
Les installations GitHub DevSecOps couvrent de nombreux scénarios de sécurité. Les possibilités couvrent les cas suivants :
- Les développeurs qui souhaitent tirer parti des environnements préconfigurés qui offrent des fonctionnalités de sécurité.
- Les administrateurs qui s’appuient sur up-to-date, les rapports de sécurité hiérarchisés à portée de main, ainsi que les détails sur le code affecté et les correctifs suggérés.
- Les organisations rationalisées qui ont besoin de systèmes pour acquérir automatiquement des appareils de sécurité nouveaux et non compromis lorsque les secrets sont laissés exposés dans le code.
- Les équipes de développement qui pourraient tirer parti des mises à niveau automatiques lorsque des versions plus récentes ou plus sécurisées de packages externes deviennent disponibles.
Pour plus d’informations, consultez :
- DevSecOps dans GitHub : idées de solution Azure
- Analyse du code d’un référentiel GitHub à l’aide de la sécurité avancée GitHub dans un pipeline Azure DevOps
- Application de DevSecOps à votre chaîne d’approvisionnement logicielle
Étapes suivantes
- Choisissez votre équipe d’implémentation (généralement un responsable de développement et quelques développeurs définis en tant qu’administrateurs) et déployez GitHub.
- Découvrez les flux de travail Git courants et avancés pour améliorer la façon dont vous utilisez GitHub.
Les liens suivants fournissent plus d’informations sur GitHub.