Développement DevOps pour l’entreprise
- Introduction à DevOps : équipes de transformation, objectifs communs, temps de cycle et apprentissage validé ; aperçu d’Azure DevOps et de GitHub
- Planification agile avec GitHub Projects et Azure Boards, liaison d’Azure Boards avec GitHub
- Conception de stratégies de branches et de workflows, collaboration avec les pull requests et les stratégies de branche dans Azure Repos
- Git Hooks, Inner Source et workflows de fork
- Gestion des dépôts : grands dépôts, nettoyage des données, releases dans GitHub
- Identifier la dette technique, utiliser des outils de qualité de code et planifier les revues de code
Intégration continue avec Azure Pipelines et GitHub Actions
- Découvrir Azure Pipelines ; agents hébergés par Microsoft et auto-hébergés, pools d’agents et leur sécurité
- Tâches parallèles et concurrence, concepteur classique et pipelines YAML
- Stratégie de pipeline : exigences des agents, builds multi-configurations, intégration GitHub, stratégie de test et couverture de code
- Structurer les pipelines avec des modèles, des ressources YAML et plusieurs dépôts
- GitHub Actions : workflows, événements, jobs et runners ; intégration continue avec variables d’environnement, artefacts et secrets
- Stratégie de build de conteneurs avec Docker et les services Azure
Concevoir et mettre en œuvre une stratégie de release
- Créer des pipelines de release : tâches de build et de release, sources d’artefacts, approbations et release gates
- Provisionner les environnements cibles, configurer les connexions de service, tests fonctionnels et de disponibilité automatisés
- Modulariser les tâches et les modèles : groupes de tâches, groupes de variables, tâches de build et de release personnalisées
- Automatiser le contrôle d’intégrité : notifications dans Azure DevOps et GitHub, service hooks, mesure de la qualité
Déploiement continu sécurisé avec Azure Pipelines
- Modèles de déploiement : approches classiques et modernes, architectures de microservices
- Déploiement blue-green et feature toggles
- Releases canary avec Azure Traffic Manager et dark launching
- Tests A/B, exposition progressive et déploiement basé sur les anneaux
- Intégrer les identités : SSO GitHub, identités de charge de travail dans Microsoft Entra ID, principaux de service et identités managées
- Configuration des applications avec Azure App Configuration, Azure Key Vault et feature flags
Infrastructure as Code avec Azure et DSC
- Fondamentaux d’Infrastructure as Code et de la gestion de configuration : impératif et déclaratif, idempotence
- Créer des ressources Azure avec des modèles ARM : dépendances, modèles modulaires, secrets issus d’Azure Key Vault
- Créer des ressources Azure avec Azure CLI et des scripts Bash
- Azure Automation avec runbooks, webhooks et intégration au contrôle de code source
- Desired State Configuration (DSC) : gérer la dérive de configuration, DSC pour Linux, scénarios hybrides
- Utiliser Bicep avec Visual Studio Code, Azure CLI, Azure Pipelines et les workflows GitHub
Implémenter la sécurité et vérifier la conformité des bases de code
- Secure DevOps : principes DevSecOps, vulnérabilités courantes telles que l’injection SQL, threat modeling, validation continue de la sécurité et analyse avec GitHub CodeQL
- Logiciels open source en entreprise : questions de sécurité et de licence, licences courantes telles que MIT, Apache et GPL
- Software Composition Analysis : GitHub Dependabot, Mend, Snyk et OWASP Dependency-Check dans Azure Pipelines, analyse des images de conteneurs
- Surveillance de la sécurité et gouvernance : Microsoft Defender for Cloud, Azure Policy, verrous de ressources, Microsoft Defender for Identity et GitHub Advanced Security
Stratégie de gestion des dépendances
- Identifier les dépendances de paquets et décomposer les composants en paquets
- Gestion des paquets : feeds, sources publiques et auto-hébergées, utiliser, créer et publier des paquets avec Azure Artifacts
- Migrer et consolider les artefacts, sécuriser l’accès aux feeds de paquets
- Stratégie de versionnage : versionnage sémantique, vues dans Azure Artifacts, promotion de paquets dans les pipelines CI/CD
- GitHub Packages : publier et installer des paquets, gérer les autorisations et la visibilité
Feedback continu
- Suivre l’utilisation et le déroulement avec Azure Monitor, Log Analytics, Application Insights et Kusto Query Language (KQL)
- Tableaux de bord de surveillance et de statut avec Azure Dashboards, Azure Monitor Workbooks et Power BI ; surveiller et optimiser l’état des pipelines
- Partager les connaissances au sein de l’équipe : wikis dans Azure DevOps, Markdown et Mermaid, intégration avec Microsoft Teams
- Automatiser les analyses d’applications avec Application Insights
- Gérer les alertes, blameless retrospectives et just culture