SlideShare une entreprise Scribd logo
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
Agenda
• .NET 8 nouveautés (.NET Conf 2023 Keynote - Welcome to .NET 8)
• Architecture Microservices
• Conteneurs et Docker
• Vue d'ensemble Conteneur Docker et image
• Dockerfile
• GitHub Actions
• Demo
.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
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/
Microservices ≠ Conteneur
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
Microservices et conteneurs
21%
63%
16%
Utilisation des Microservices
Oui
Non
Pas d'information
Containers and Docker
Docker Host
App 1 App 2
Service 1 Service 2
OS on a VM or a Server
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.
Conteneur et image
Dockerfile Docker Image
Conteneur Docker
Compiler
(Build)
Exécuter (Run)
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
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
Déploiement des conteneurs
(Monolithic applications)
Legacy
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.
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
Explorer le flux des actions
Actions
Événements
Flux de travail
Travaux
Déclenchent
Contient
Utilisent
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.
Démonstration
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf

Contenu connexe

Similaire à Configurer GitHub Actions avec Docker et DotNET 8.pdf

docker.pptx
docker.pptxdocker.pptx
docker.pptx
kohay75604
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven development
Sébastien Corbin
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
amine17157
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
Julien Dubois
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
AnisSalhi3
 
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
AZUG FR
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
vlabatut
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
Arnaud Héritier
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
Olivier Eeckhoutte
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...vlabatut
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
gcatt
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Jasmine Conseil
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Arthur Lutz
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
Julien Wittouck
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit.
Julien CROUZET
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Pierre Ternon
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
Arthur Lutz
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
Romain Chalumeau
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
Microsoft
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
Arnaud Héritier
 

Similaire à Configurer GitHub Actions avec Docker et DotNET 8.pdf (20)

docker.pptx
docker.pptxdocker.pptx
docker.pptx
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven development
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit.
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 

Plus de Hamida Rebai Trabelsi

Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote Conference
Hamida Rebai Trabelsi
 
APIs In Action -Harnessing the Power of Azure API Management: Building Robust...
APIs In Action -Harnessing the Power of Azure API Management: Building Robust...APIs In Action -Harnessing the Power of Azure API Management: Building Robust...
APIs In Action -Harnessing the Power of Azure API Management: Building Robust...
Hamida Rebai Trabelsi
 
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Hamida Rebai Trabelsi
 
Streamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power AutomateStreamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power Automate
Hamida Rebai Trabelsi
 
Build containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdfBuild containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdf
Hamida Rebai Trabelsi
 
TechDayConf Edition 1 - 2020
TechDayConf Edition 1 -  2020TechDayConf Edition 1 -  2020
TechDayConf Edition 1 - 2020
Hamida Rebai Trabelsi
 
Les nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterLes nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App Center
Hamida Rebai Trabelsi
 
Xamarin notes- en français
Xamarin notes- en françaisXamarin notes- en français
Xamarin notes- en français
Hamida Rebai Trabelsi
 
Advices before starting a project
Advices before starting a projectAdvices before starting a project
Advices before starting a project
Hamida Rebai Trabelsi
 
White Paper : ASP.NET Core AngularJs 2 and Prime
White Paper : ASP.NET Core AngularJs 2 and PrimeWhite Paper : ASP.NET Core AngularJs 2 and Prime
White Paper : ASP.NET Core AngularJs 2 and Prime
Hamida Rebai Trabelsi
 
Certification Digital Active
Certification Digital ActiveCertification Digital Active
Certification Digital Active
Hamida Rebai Trabelsi
 
Resume-REBAI.json
Resume-REBAI.jsonResume-REBAI.json
Resume-REBAI.json
Hamida Rebai Trabelsi
 
Detailed-Resume-Rebai-Hamida
Detailed-Resume-Rebai-HamidaDetailed-Resume-Rebai-Hamida
Detailed-Resume-Rebai-Hamida
Hamida Rebai Trabelsi
 
TechWadi-MENA-Guide-to-GES-2016-vf
TechWadi-MENA-Guide-to-GES-2016-vfTechWadi-MENA-Guide-to-GES-2016-vf
TechWadi-MENA-Guide-to-GES-2016-vf
Hamida Rebai Trabelsi
 
C# Fundamentals for Absolute Beginners
C# Fundamentals for Absolute BeginnersC# Fundamentals for Absolute Beginners
C# Fundamentals for Absolute BeginnersHamida Rebai Trabelsi
 
Preparing for Exam MTA 98-375 HTML5 App Development
Preparing for Exam MTA 98-375 HTML5 App DevelopmentPreparing for Exam MTA 98-375 HTML5 App Development
Preparing for Exam MTA 98-375 HTML5 App DevelopmentHamida Rebai Trabelsi
 
Microsoft Azure Fundamentals Websites
Microsoft Azure Fundamentals WebsitesMicrosoft Azure Fundamentals Websites
Microsoft Azure Fundamentals WebsitesHamida Rebai Trabelsi
 

Plus de Hamida Rebai Trabelsi (20)

Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote Conference
 
APIs In Action -Harnessing the Power of Azure API Management: Building Robust...
APIs In Action -Harnessing the Power of Azure API Management: Building Robust...APIs In Action -Harnessing the Power of Azure API Management: Building Robust...
APIs In Action -Harnessing the Power of Azure API Management: Building Robust...
 
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
 
Streamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power AutomateStreamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power Automate
 
Build containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdfBuild containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdf
 
TechDayConf Edition 1 - 2020
TechDayConf Edition 1 -  2020TechDayConf Edition 1 -  2020
TechDayConf Edition 1 - 2020
 
Les nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterLes nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App Center
 
Xamarin notes- en français
Xamarin notes- en françaisXamarin notes- en français
Xamarin notes- en français
 
Advices before starting a project
Advices before starting a projectAdvices before starting a project
Advices before starting a project
 
White Paper : ASP.NET Core AngularJs 2 and Prime
White Paper : ASP.NET Core AngularJs 2 and PrimeWhite Paper : ASP.NET Core AngularJs 2 and Prime
White Paper : ASP.NET Core AngularJs 2 and Prime
 
Certification Digital Active
Certification Digital ActiveCertification Digital Active
Certification Digital Active
 
Resume-REBAI.json
Resume-REBAI.jsonResume-REBAI.json
Resume-REBAI.json
 
Présentation- Communauté
Présentation- CommunautéPrésentation- Communauté
Présentation- Communauté
 
Detailed-Resume-Rebai-Hamida
Detailed-Resume-Rebai-HamidaDetailed-Resume-Rebai-Hamida
Detailed-Resume-Rebai-Hamida
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
TechWadi-MENA-Guide-to-GES-2016-vf
TechWadi-MENA-Guide-to-GES-2016-vfTechWadi-MENA-Guide-to-GES-2016-vf
TechWadi-MENA-Guide-to-GES-2016-vf
 
C# Fundamentals for Absolute Beginners
C# Fundamentals for Absolute BeginnersC# Fundamentals for Absolute Beginners
C# Fundamentals for Absolute Beginners
 
Preparing for Exam MTA 98-375 HTML5 App Development
Preparing for Exam MTA 98-375 HTML5 App DevelopmentPreparing for Exam MTA 98-375 HTML5 App Development
Preparing for Exam MTA 98-375 HTML5 App Development
 
Microsoft Azure Fundamentals
Microsoft Azure FundamentalsMicrosoft Azure Fundamentals
Microsoft Azure Fundamentals
 
Microsoft Azure Fundamentals Websites
Microsoft Azure Fundamentals WebsitesMicrosoft Azure Fundamentals Websites
Microsoft Azure Fundamentals Websites
 

Dernier

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 

Dernier (6)

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 

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
  • 3. Agenda • .NET 8 nouveautés (.NET Conf 2023 Keynote - Welcome to .NET 8) • Architecture Microservices • Conteneurs et Docker • Vue d'ensemble Conteneur Docker et image • Dockerfile • GitHub Actions • Demo
  • 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
  • 8. Microservices et conteneurs 21% 63% 16% Utilisation des Microservices Oui Non Pas d'information
  • 9. Containers and Docker Docker Host App 1 App 2 Service 1 Service 2 OS on a VM or a Server
  • 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.
  • 11. Conteneur et image Dockerfile Docker Image Conteneur Docker Compiler (Build) Exécuter (Run)
  • 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.