Apprenez à déployer une application web .NET 8 de pointe dans Azure en utilisant GitHub Actions
Créer un référentiel dans GitHub et pousser le code d’une application Web en .NET 8, ou bien cloner le code à partir de GitHub, puis conteneuriser l’application et la déployer dans Azure en assurant une intégration continue et un déploiement contenu.
https://agilequebec.ca/communaute/conference-mensuelle-agile-quebec-configurer-github-actions-avec-docker-et-net-8-06-decembre-2023-2/
Configurer GitHub Actions avec Docker et DotNET 8.pdf
1.
2. M
i
c
r
o
s
o
f
t
M
V
P
Microsoft MVP
& MCT
Architecte d'intégration des solutions infonuagique
Microsoft MVP en Technologies de développement
Docker Captain
Membre de dotnetfoundation
Blogger and Technical writer
Auteur de livres
Rebai Hamida – Medium
Hamida Rebai Trabelsi | LinkedIn
Rebaï Hamida – YouTube
@rebaihamida
4. .NET 8 nouveautés (.NET Conf 2023 Keynote
- Welcome to .NET 8)
.NET Aspire est une pile technique orientée et prête pour
l’infonuagique pour la construction d'applications
distribuées, observables et prêtes pour la production.
• ASP.NET Core 8
Améliorations de Performance Blazor et WebAssembly Développement Full Stack
Améliorations de minimal API Sécurité Renforcée Support Cloud-Natif et Microservices
Outils de Développement et
d'Intégration Continue
Améliorations dans
Entity Framework Core
Meilleur Support pour le Développement Mobile
et de Bureau
5. Architecture Microservices
• Approche modèle pour les applications critiques distribuées et de
grande taille ou complexes qui reposent sur plusieurs sous-systèmes
indépendants sous la forme de services autonomes.
• L'application est conçue comme un ensemble de services pouvant être
développés, testés, versionnés, déployés et mis à l'échelle.
App1
S1 S2 S3
App 2
S4 S5 S6
S4 S6
S3 S2
S1
S5 S3
S2 S5
S1 S4
https://microservices.io/
7. Microservices et conteneurs
Avec les Microservices, chaque partie de l'application est déployée en tant que composant entièrement
autonome.
Approche d'application monolithique Approche d'application basée sur les Microservices
App1
S1 S2 S3
App 2
S4 S5 S6
S3 S2
S1
S4 S6
S5 S3
S2 S5
S1 S4
App1
10. Vue d'ensemble Conteneur Docker et image
Conteneur Docker
● Environnement d'exécution virtualisé
utilisé dans le développement
d'applications.
● Peut utiliser une seule machine,
partager son noyau et virtualiser le
système d'exploitation pour exécuter
des processus plus isolés.
● Les conteneurs Docker sont légers.
Image Docker
● Snapshot dans d'autres types
d'environnements de VM.
● Enregistrement d'un conteneur Docker à un
moment précis. L'image ne peut pas être
modifiée, elle peut être dupliquée,
partagée ou supprimée.
12. Dockerfile
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
1
COPY ["mysolution.csproj", « mysolution/"]
RUN dotnet restore « mysolution.csproj" 2
COPY . .
WORKDIR "/src/mysolution"
RUN dotnet build “mysolution.csproj" -c Release -o /app/build
3
Spécifier une
image
Copier le
fichier de projet
Copier et générer
Créer une image d'exécution
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
COPY --from=build /app/publish .
4
13. Dockerfile
Lancer l’application
5
ENTRYPOINT ["dotnet", « yousolution.dll"]
Compiler votre image & démarrer notre conteneur
docker build -t yoursolutionimage:1.0 .
Créer et exécuter votre conteneur
docker run –d -p 8080:80 -ti –name myapp --rm yousolutionimage:1.0
Pour optimiser l’exécution (publish)
Use : -no-restore and p:PublishTrimmed, p:PublishReadyToRun,
p:PublishSingleFile
15. GitHub Actions
• Plateforme CI/CD Complète : GitHub Actions est une solution intégrale pour l'intégration
continue (CI) et la livraison continue (CD).
• Automatisation des Pipelines : Permet d'automatiser les processus de génération, de test et de
déploiement de logiciels.
• Workflows pour Demandes de Tirage : Crée et teste automatiquement chaque demande de
tirage (pull request) sur le dépôt, et peut déployer les demandes de tirage fusionnées en
production.
• Au-delà de DevOps : Permet l'exécution de workflows pour divers événements dans le dépôt, pas
seulement pour les opérations de développement.
• Gestion d'Événements du Dépôt : Capable de lancer des workflows pour des actions comme
l'ajout d'étiquettes automatiques lors de la création de problèmes dans le dépôt.
• Flexibilité d'Exécution : Offre des machines virtuelles sous Linux, Windows et macOS pour
exécuter les workflows.
• Exécuteurs Personnalisés : Possibilité d'héberger des exécuteurs auto-hébergés dans un centre
de données ou une infrastructure cloud personnels.
16. Composants de GitHub Actions
Événement Exécuteur 1 Exécuteur 2
Travail 1 Travail 2
Étape 1: exécuter une action
Étape 2: exécuter un script
Étape 3: exécuter un script
Étape 1: exécuter une action
Étape 1: exécuter une action
Étape 2: exécuter un script
Étape 3: exécuter un script
17. Explorer le flux des actions
Actions
Événements
Flux de travail
Travaux
Déclenchent
Contient
Utilisent
18. Exemple de Workflow
Name : est le nom du workflow. Il est facultatif, mais fortement recommandé. Il apparaît à
plusieurs endroits dans l’interface utilisateur de GitHub.
On : est l’événement ou la liste des événements qui déclenchent le workflow.
Jobs : est la liste des travaux à exécuter. Les workflows peuvent contenir un ou plusieurs travaux.
Runs-on : indique aux actions quel exécuteur utiliser.
Steps : est la liste des étapes du travail. Les étapes d’un travail s’exécutent sur le même exécuteur.
Uses : indique aux actions quelle action prédéfinie doit être récupérée. Par exemple,
vous pouvez avoir une action qui installe node.js.
Run : indique au travail d’exécuter une commande sur l’exécuteur. Par exemple, vous pouvez
exécuter une commande NPM.