SlideShare une entreprise Scribd logo
1  sur  35
OCTO Part of Accenture Digital © 2019 - All rights reserved
Mise en œuvre d’un pipeline CI/CD pour une application sur Kubernetes et du
module fonctionnel de supervision du déploiement
ENCADRER PAR : PRÉSENTER PAR :
Mme Fatiha AKEF
BAHALLA TAOUFIQ
Mr LANDRY DEFO KUATE
Mr Mohamed YOUSSFI
Soutenu le 08 juillet 2020
Département : Mathématique informatique
Filière : Génie du Logiciel et des Systèmes Informatiques Distribués
OCTO Part of Accenture Digital © 2019 - All rights reserved
//
//
//
//
//
01
Entreprise d’accueil
02
Contexte et sujet de stage
03
DevOps sur dakibot
04
Déploiement de la plateforme
dakibot
05
APIs de monitoring
Plan
2
06
IHM de supervision
THERE IS A BETTER WAY
Entreprise d’accueil
OCTO Part of Accenture Digital © 2019 - All rights reserved 4
Octo Technology
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉ Qualité logiciel.
◉ Amélioration continue.
◉ Esprit start-up.
◉ Le partage.
◉ Innovation.
5
Culture d’Octo Technology
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉ Conseil.
◉ Produits logiciels.
◉ Formations.
6
Expertises d’Octo Technology
THERE IS A BETTER WAY
Contexte et sujet de
stage
OCTO Part of Accenture Digital © 2019 - All rights reserved
CI/CD
8
Sujet de stage
Dakibot
Frontend
Backend
Chatbots
Cluster Kubernetes / Cloud
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉Déploiement de la plateforme infrastructure Dakibot complète avec Terraform et
Ansible
◉Construire le pipeline CI/CD permettant de déployer en un click de bout en bout tout
changement sur Dakibot
◉Mettre en œuvre une IHM de supervision des déploiements Dakibot
9
Objectifs du stage
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉ Phase 1 : Prise de connaissance du contexte actuelle de Dakibot et prise en main des
déploiements actuels pour devenir le DevOps sur Dakibot
> Durée : 2 semaines
◉ Phase 2 : Conception du module de déploiement sur Dakibot et le Pipeline CI/CD
> Durée : 1 mois
◉ Phase 3 : Réalisation du module de déploiement sur Dakibot et le Pipeline CI/CD
> Durée : 2 mois
10
Plan et phases de projet
OCTO Part of Accenture Digital © 2019 - All rights reserved 11
Conduite du projet
SCRUM + Kanban
THERE IS A BETTER WAY
DevOps sur
Dakibot
OCTO Part of Accenture Digital © 2019 - All rights reserved 13
DevOps
DevOps
Culture
Infrastructure as
code
Cloud Ready Apps CI / CD
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉ Voir l’infrastructure et faire l’inventaire des machines.
◉ Voir l’architecture de déploiement de différents composant de dakibot.
◉ Voir et manipuler les scripts Ansible et Kubernetes.
14
Comprendre l’architecture de déploiement et l’infrastructure de dakibot
OCTO Part of Accenture Digital © 2019 - All rights reserved 15
Provisionnement de l’infrastructure avec Terraform
NFS Server, jenkins, HAProxy
Kubernetes cluster : 1 Master node et
3 worker nodes
Scripts Terraform à jour
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉ Simplifier la configuration de HAProxy en utilisant Ansible et Jinja2.
◉ Tester le rôle Ansible avec Kitchenci
16
Configuration HAProxy
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉ Créer le rôle Ansible pour installer le service NFS.
◉ Tester le rôle NFS avec Kitchenci.
17
Créer le rôle Ansible NFS
OCTO Part of Accenture Digital © 2019 - All rights reserved
◉ Travailler sur les scripts de Kubespary pour provisionner le cluster kubernetes :
> Utiliser kubespray pour déployer un cluster kubernetes
> Ajouter un worker node au cluster en utilisant kubespray .
> Supprimer un worker node en utilisant kubespray .
18
Provisionnement du cluster kubernetes avec Kubespray
THERE IS A BETTER WAY
Déploiement
de dakibot
OCTO Part of Accenture Digital © 2019 - All rights reserved 20
Pipeline CI/CD pour le backend dakibot
Code
Checkout
Build
Test
Analyse Sonar
Docker build
Docker publish
Deploy to k8s
OCTO Part of Accenture Digital © 2019 - All rights reserved 21
Pipeline CI/CD pour le frontend dakibot
Code
Checkout
Docker build
Docker publish
Deploy to k8s
OCTO Part of Accenture Digital © 2019 - All rights reserved 22
Pipeline CI/CD pour les chatbots
Code
Checkout
Docker build
Docker publish
Deploy to k8s
OCTO Part of Accenture Digital © 2019 - All rights reserved 23
Technologies utilisé dans les Pipeline
OCTO Part of Accenture Digital © 2019 - All rights reserved 24
Pipeline Jenkins backend dakibot
OCTO Part of Accenture Digital © 2019 - All rights reserved 25
Pipeline Jenkins frontend dakibot
OCTO Part of Accenture Digital © 2019 - All rights reserved 26
Pipeline des chatbots
THERE IS A BETTER WAY
API de
monitoring
OCTO Part of Accenture Digital © 2019 - All rights reserved 28
Récupération des métriques de déploiement
Gitlab
Jenkins
Kubernetes
HAProxy
Gitlab API :
gitlab4j
Jenkins java
client
Kubernetes java
client
HAProxy stats
Data
parsing
REST API
OCTO Part of Accenture Digital © 2019 - All rights reserved 29
Documentation API avec Swagger
OCTO Part of Accenture Digital © 2019 - All rights reserved 30
Etapes du pipeline pour déployer les artefacts
Code
Checkout
Build
Test
Analyse Sonar
Deploy jar to Nexus
OCTO Part of Accenture Digital © 2019 - All rights reserved 31
Pipeline Jenkins des APIs
THERE IS A BETTER WAY
IHM de
supervision
OCTO Part of Accenture Digital © 2019 - All rights reserved 33
IHM statuts des déploiements des bots
OCTO Part of Accenture Digital © 2019 - All rights reserved 34
IHM détails de déploiement d’un bot
Présentation travail du stage

Contenu connexe

Tendances

PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPT
riyadadva
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
safwenbenfredj
 
Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...
Mohammed LAAZIZLI
 
Le Développement d’une Application Web
Le Développement d’une Application WebLe Développement d’une Application Web
Le Développement d’une Application Web
Malick Mbaye
 
Projet de fin d'étude - Portail support client
Projet de fin d'étude - Portail support clientProjet de fin d'étude - Portail support client
Projet de fin d'étude - Portail support client
Yassine DAHMANE
 

Tendances (20)

Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
UML
UMLUML
UML
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPT
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
 
Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...
 
Rapport_PFE_Securite (1).pdf
Rapport_PFE_Securite (1).pdfRapport_PFE_Securite (1).pdf
Rapport_PFE_Securite (1).pdf
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Rapport de projet de fin d’étude
Rapport  de projet de fin d’étudeRapport  de projet de fin d’étude
Rapport de projet de fin d’étude
 
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
 
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
 
Le Développement d’une Application Web
Le Développement d’une Application WebLe Développement d’une Application Web
Le Développement d’une Application Web
 
Presentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesPresentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemes
 
Cloud computing : Cloud sim
Cloud computing : Cloud sim Cloud computing : Cloud sim
Cloud computing : Cloud sim
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Développement d’une application Web et mobile d’un annuaire médical
Développement d’une application Web et mobile d’un annuaire médicalDéveloppement d’une application Web et mobile d’un annuaire médical
Développement d’une application Web et mobile d’un annuaire médical
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Projet de fin d'étude - Portail support client
Projet de fin d'étude - Portail support clientProjet de fin d'étude - Portail support client
Projet de fin d'étude - Portail support client
 

Similaire à Présentation travail du stage

Similaire à Présentation travail du stage (20)

L'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérativeL'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérative
 
La Duck Conf - "Kube is the new mainframe"
La Duck Conf - "Kube is the new mainframe" La Duck Conf - "Kube is the new mainframe"
La Duck Conf - "Kube is the new mainframe"
 
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
 
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
 
La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"
 
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolutionLA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
 
LA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutive
LA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutiveLA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutive
LA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutive
 
La Duck Conf - Une équipe plateforme qui délivre
La Duck Conf - Une équipe plateforme qui délivreLa Duck Conf - Une équipe plateforme qui délivre
La Duck Conf - Une équipe plateforme qui délivre
 
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
 
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
 
Accelerate : la vitesse conditionne l'excellence
Accelerate : la vitesse conditionne l'excellence Accelerate : la vitesse conditionne l'excellence
Accelerate : la vitesse conditionne l'excellence
 
La Duck Conf - "Quelle place pour le no code/low code dans les entreprises ?"
La Duck Conf - "Quelle place pour le no code/low code dans les entreprises ?"La Duck Conf - "Quelle place pour le no code/low code dans les entreprises ?"
La Duck Conf - "Quelle place pour le no code/low code dans les entreprises ?"
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction Meetup
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction MeetupIBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction Meetup
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction Meetup
 
CWIN17 Morocco / Microservices as a factory reda zerhouni
CWIN17 Morocco / Microservices as a factory reda zerhouniCWIN17 Morocco / Microservices as a factory reda zerhouni
CWIN17 Morocco / Microservices as a factory reda zerhouni
 
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
 
Matinale OCTO - "Blockchain : comment s'orienter dans la désorientation"
Matinale OCTO - "Blockchain : comment s'orienter dans la désorientation"Matinale OCTO - "Blockchain : comment s'orienter dans la désorientation"
Matinale OCTO - "Blockchain : comment s'orienter dans la désorientation"
 
Le Comptoir OCTO x Wakam : Continuous discovery et continuous delivery pour c...
Le Comptoir OCTO x Wakam : Continuous discovery et continuous delivery pour c...Le Comptoir OCTO x Wakam : Continuous discovery et continuous delivery pour c...
Le Comptoir OCTO x Wakam : Continuous discovery et continuous delivery pour c...
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
 
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
 
#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops
 

Présentation travail du stage

  • 1. OCTO Part of Accenture Digital © 2019 - All rights reserved Mise en œuvre d’un pipeline CI/CD pour une application sur Kubernetes et du module fonctionnel de supervision du déploiement ENCADRER PAR : PRÉSENTER PAR : Mme Fatiha AKEF BAHALLA TAOUFIQ Mr LANDRY DEFO KUATE Mr Mohamed YOUSSFI Soutenu le 08 juillet 2020 Département : Mathématique informatique Filière : Génie du Logiciel et des Systèmes Informatiques Distribués
  • 2. OCTO Part of Accenture Digital © 2019 - All rights reserved // // // // // 01 Entreprise d’accueil 02 Contexte et sujet de stage 03 DevOps sur dakibot 04 Déploiement de la plateforme dakibot 05 APIs de monitoring Plan 2 06 IHM de supervision
  • 3. THERE IS A BETTER WAY Entreprise d’accueil
  • 4. OCTO Part of Accenture Digital © 2019 - All rights reserved 4 Octo Technology
  • 5. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉ Qualité logiciel. ◉ Amélioration continue. ◉ Esprit start-up. ◉ Le partage. ◉ Innovation. 5 Culture d’Octo Technology
  • 6. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉ Conseil. ◉ Produits logiciels. ◉ Formations. 6 Expertises d’Octo Technology
  • 7. THERE IS A BETTER WAY Contexte et sujet de stage
  • 8. OCTO Part of Accenture Digital © 2019 - All rights reserved CI/CD 8 Sujet de stage Dakibot Frontend Backend Chatbots Cluster Kubernetes / Cloud
  • 9. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉Déploiement de la plateforme infrastructure Dakibot complète avec Terraform et Ansible ◉Construire le pipeline CI/CD permettant de déployer en un click de bout en bout tout changement sur Dakibot ◉Mettre en œuvre une IHM de supervision des déploiements Dakibot 9 Objectifs du stage
  • 10. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉ Phase 1 : Prise de connaissance du contexte actuelle de Dakibot et prise en main des déploiements actuels pour devenir le DevOps sur Dakibot > Durée : 2 semaines ◉ Phase 2 : Conception du module de déploiement sur Dakibot et le Pipeline CI/CD > Durée : 1 mois ◉ Phase 3 : Réalisation du module de déploiement sur Dakibot et le Pipeline CI/CD > Durée : 2 mois 10 Plan et phases de projet
  • 11. OCTO Part of Accenture Digital © 2019 - All rights reserved 11 Conduite du projet SCRUM + Kanban
  • 12. THERE IS A BETTER WAY DevOps sur Dakibot
  • 13. OCTO Part of Accenture Digital © 2019 - All rights reserved 13 DevOps DevOps Culture Infrastructure as code Cloud Ready Apps CI / CD
  • 14. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉ Voir l’infrastructure et faire l’inventaire des machines. ◉ Voir l’architecture de déploiement de différents composant de dakibot. ◉ Voir et manipuler les scripts Ansible et Kubernetes. 14 Comprendre l’architecture de déploiement et l’infrastructure de dakibot
  • 15. OCTO Part of Accenture Digital © 2019 - All rights reserved 15 Provisionnement de l’infrastructure avec Terraform NFS Server, jenkins, HAProxy Kubernetes cluster : 1 Master node et 3 worker nodes Scripts Terraform à jour
  • 16. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉ Simplifier la configuration de HAProxy en utilisant Ansible et Jinja2. ◉ Tester le rôle Ansible avec Kitchenci 16 Configuration HAProxy
  • 17. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉ Créer le rôle Ansible pour installer le service NFS. ◉ Tester le rôle NFS avec Kitchenci. 17 Créer le rôle Ansible NFS
  • 18. OCTO Part of Accenture Digital © 2019 - All rights reserved ◉ Travailler sur les scripts de Kubespary pour provisionner le cluster kubernetes : > Utiliser kubespray pour déployer un cluster kubernetes > Ajouter un worker node au cluster en utilisant kubespray . > Supprimer un worker node en utilisant kubespray . 18 Provisionnement du cluster kubernetes avec Kubespray
  • 19. THERE IS A BETTER WAY Déploiement de dakibot
  • 20. OCTO Part of Accenture Digital © 2019 - All rights reserved 20 Pipeline CI/CD pour le backend dakibot Code Checkout Build Test Analyse Sonar Docker build Docker publish Deploy to k8s
  • 21. OCTO Part of Accenture Digital © 2019 - All rights reserved 21 Pipeline CI/CD pour le frontend dakibot Code Checkout Docker build Docker publish Deploy to k8s
  • 22. OCTO Part of Accenture Digital © 2019 - All rights reserved 22 Pipeline CI/CD pour les chatbots Code Checkout Docker build Docker publish Deploy to k8s
  • 23. OCTO Part of Accenture Digital © 2019 - All rights reserved 23 Technologies utilisé dans les Pipeline
  • 24. OCTO Part of Accenture Digital © 2019 - All rights reserved 24 Pipeline Jenkins backend dakibot
  • 25. OCTO Part of Accenture Digital © 2019 - All rights reserved 25 Pipeline Jenkins frontend dakibot
  • 26. OCTO Part of Accenture Digital © 2019 - All rights reserved 26 Pipeline des chatbots
  • 27. THERE IS A BETTER WAY API de monitoring
  • 28. OCTO Part of Accenture Digital © 2019 - All rights reserved 28 Récupération des métriques de déploiement Gitlab Jenkins Kubernetes HAProxy Gitlab API : gitlab4j Jenkins java client Kubernetes java client HAProxy stats Data parsing REST API
  • 29. OCTO Part of Accenture Digital © 2019 - All rights reserved 29 Documentation API avec Swagger
  • 30. OCTO Part of Accenture Digital © 2019 - All rights reserved 30 Etapes du pipeline pour déployer les artefacts Code Checkout Build Test Analyse Sonar Deploy jar to Nexus
  • 31. OCTO Part of Accenture Digital © 2019 - All rights reserved 31 Pipeline Jenkins des APIs
  • 32. THERE IS A BETTER WAY IHM de supervision
  • 33. OCTO Part of Accenture Digital © 2019 - All rights reserved 33 IHM statuts des déploiements des bots
  • 34. OCTO Part of Accenture Digital © 2019 - All rights reserved 34 IHM détails de déploiement d’un bot