Conteneuriser une application .NET 8 en utilisant Docker et Azure.pdf
1. Conteneuriser une application
.NET8 en utilisant Docker et Azure
Architecte d’intégration des solutions infonuagique
Microsoft MVP & MCT & Docker Captain
@rebaihamida
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. Nouveautés .NET 8
Améliorations de Performance: plus de 1 250 améliorations de performance,
notamment dans les scénarios d'API JSON et de charges de travail réalistes avec accès à
la base de données.
ASP.NET Core Enhancements: ASP.NET Core dans .NET 8 offre des capacités étendues
pour le développement d'applications web modernes, avec des outils améliorés pour le
rendu côté serveur et l'interactivité côté client.
Blazor et WebAssembly: Blazor dans .NET 8 comprend un rendu côté serveur amélioré
et une interactivité accrue avec WebAssembly. Les composants se rendent 20% plus
rapidement et de nouvelles fonctionnalités de packaging web sont introduites.
C# 12 Nouveautés: Des fonctionnalités telles que les constructeurs primaires et les
expressions de collection sont ajoutées, améliorant la lisibilité et la simplicité du code.
Outils de Développement: De nouveaux outils dans Visual Studio et Visual Studio Code
sont introduits pour améliorer l'expérience de développement, y compris des
améliorations pour le routage, le débogage et les tests d'API.
5. Nouveautés .NET 8
Architecture de Référence eShop: Une application de référence complète, l'eShop, est
présentée, utilisant une architecture de microservices cloud-native et mettant en
évidence les nouvelles capacités de .NET 8.
Développement d'Applications Full-Stack: .NET 8 met l'accent sur la facilité de
développement d'applications web full-stack, avec des améliorations pour les
développeurs backend et frontend.
Améliorations de Sécurité et Performance: ASP.NET Core est conçu avec un accent sur la
sécurité et optimisé pour la performance, permettant de gérer divers scénarios avec
efficacité.
Développement Cloud-Native et Mobile: .NET 8 continue d'évoluer comme une
plateforme de choix pour le développement cloud-native et mobile.
Communauté et Contribution: .NET 8 a bénéficié d'une forte contribution de la
communauté, reflétant son adoption croissante et son impact dans le monde du
développement de logiciels.
8. 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.
10. 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
11. 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
18. Conteneurs dans Azure : un ensemble de services
Container Instances Batch
Service Fabric Kubernetes Service
App Service
19. Conteneur et orchestrateur
Stockage
• Azure Container Instance
• Azure App Service as a
Container
• Azure Container Registry
Pour plusieurs conteneurs
Pour conteneur unique
• Azure Kubernetes Service
• Azure Container App