Successfully reported this slideshow.
Your SlideShare is downloading. ×

OUMAIMA BOUGRYNE PPT.pptx

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 47 Ad

More Related Content

Recently uploaded (20)

Advertisement

OUMAIMA BOUGRYNE PPT.pptx

  1. 1. deploy WordPress website with MySQL backend using docker and Kubernetes. Institut National de Statistique et d’Economie Appliquée Soutenu Par: Mme. BOUGRYNE Oumaima Le: 20/10/2022 Encadré par: M. ERRAHMA Hamza Membres de jury: M.KABBAJ Adil M. SAIDI Mohamed Nabil Année universitaire 2022/2023
  2. 2. Plan Introduction. 01 Présentation de l’organisme d’accueil. 02 Contexte général du projet. 03 Problématique. 04 05 06 07 08 09 Solution proposée. Conteneurisation avec docker- compose Déploiement avec Kubernetes. Autres taches effectuées pendant le stage. Conclusion.
  3. 3. Introduction
  4. 4. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  5. 5. Présentation de l’organisme d’accueil ZTechEngineering est une société informatique spécialisée dans les services de conseil en infrastructure cloud. La société a été fondée par M. Youssef ZIOUANI aux États-Unis. Elle dispose également d'une agence au Maroc dirigée par M. Mohammed ZIOUANI. Leur bureau actuel est situé à Safi.
  6. 6. Présentation de l’organisme d’accueil ZTechEngineering accompagne ses clients dans la mise à l'échelle de leurs plates-formes en concevant des infrastructures cloud sécurisées agiles, efficaces et performantes. Ainsi le développement des application mobiles et web comme : Miza, jouiz,kaalix … L'entreprise développe également en interne un projet nommé Odhiya.
  7. 7. Contexte général du projet Odhiya, une plate-forme qui permettra l’e-commerce du bétail La plate-forme sera disponible en tant qu'application Web construite avec WordPress et également en tant qu'application mobile pour les appareils Android et iOS.
  8. 8. 03 Easy to change colors. Text Here Easy to change colors. Text Here Problématique  l'utilisation d'un grand nombre de configurations et de dépendances logicielles pour L'exécution de site Web WordPress Odhiya  Le déploiement de l’application et ses nouvelles fonctionnalités ainsi la mise à jour du code prenait généralement beaucoup de temps.  Le déploiement a dû être effectué manuellement, ce qui a coûté du temps et des ressources à l'entreprise.  Parfois le même code ne travaille que sur quelques machines et l’autres non.
  9. 9. 03 Easy to change colors. Text Here Easy to change colors. Text Here L’architecture de l’application odhiya Le Développement de l’application odhiya se fait dans un VPS (UBUNTU 20.04), elle se compose de trois parties :  La Configuration de l’application odhia  Les fichiers de l’application odhiya  La base de données de l’application odhia
  10. 10. Solution proposée Le déployement l’application Web Odhiya sur Kubernetes (minikube/ kubectl Kompose…). La conteneurisation de l’application Web Odhiya avec Docker-compose.
  11. 11. Solution proposée
  12. 12. Containerization Phase de réalisation Deployment
  13. 13. Conteneurisation avec docker-compose
  14. 14. 03 Easy to change colors. Text Here Easy to change colors. Text Here Technologies Images Une image est un modèle en lecture seule contenant des instructions pour créer un conteneur Docker. Souvent, une image est basée sur une autre image, avec quelques personnalisations supplémentaires. Conteneurs Un conteneur est une instance exécutable d'une image. Il est possible de créer, démarrer, arrêter, déplacer ou supprimer un conteneur à l'aide de l'API Docker ou de la CLI et de connecter un conteneur à un ou plusieurs réseaux, d'y attacher un stockage ou même de créer une nouvelle image en fonction de son état actuel. Docker Compose pour gérer des applications multi-conteneurs, où tous les conteneurs s'exécutent sur le même hôte Docker. Docker Compose crée un fichier YAML (.YML) qui spécifie les services inclus dans l'application et peut déployer et exécuter des conteneurs avec une seule commande.
  15. 15. 03 Easy to change colors. Text Here Easy to change colors. Text Here Division de l’application en conteneurs 1- Wordpress : contient les fichiers de configuration du site (Apache2) en plus des fichiers du frontend du site web. 2- Mysql_database : contientr toute la base de données. 3- PhpMyAdmin : contient l’outil PhpMyAdmin pour la gestion de la base de données.
  16. 16. Fixer les erreurs Transférer les fichiers et la base de données de l’application vers les conteneurs Créer et exécuter les fichier Dockerfile et docker- compose.yaml Processus de containerisation
  17. 17. 03 Easy to change colors. Text Here Easy to change colors. Text Here Réalisation de la phase de conteneurisation Dockerfile Docker-compose.yaml
  18. 18. 03 Easy to change colors. Text Here Easy to change colors. Text Here Après la réussite de l’exécution de tous Les commandes 40%
  19. 19. 03 Easy to change colors. Text Here Easy to change colors. Text Here Après le transfert et la configuration des fichiers WordPress et base de données 80%
  20. 20. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  21. 21. 03 Easy to change colors. Text Here Easy to change colors. Text Here Fixer les erreurs 100%
  22. 22. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  23. 23. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  24. 24. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  25. 25. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  26. 26. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  27. 27. 03 Easy to change colors. Text Here Easy to change colors. Text Here
  28. 28. Containerization Phase de réalisation Deployment
  29. 29. Déploiement avec Kubernetes. une plateforme d’orchestration de conteneurs open source initialement conçue par Google pour gérer ses conteneurs.. Il possède généralement une architecture de nœuds constructeurs et de nœuds ouvriers, divisée en pods, espaces de noms, cartes de configuration, etc.
  30. 30. 03 Easy to change colors. Text Here Easy to change colors. Text Here • Il prend en charge tous les systèmes d’exploitation. • Il est automatisé et possède une capacité d’auto-réparation qui permet une mise à l’échelle automatique. • Il dispose d’une surveillance intégrée et d’un large éventail d’intégrations disponibles. • Il est proposé par les trois principaux fournisseurs de cloud computing : Google, Azure et AWS. • En raison de son large soutien communautaire et de sa capacité à gérer les scénarios de déploiement les plus complexes, Kubernetes est souvent le choix numéro un des équipes de développement d’entreprise qui gèrent des applications basées sur des microservices. Les avantages de Kubernetes :
  31. 31. Concepts de kubernetes Cluster Pod Service Volumes Namespace est un ensemble de ressources de stockage et de mise en réseau d'hôtes que Kubernetes utilise pour exécuter les différentes charges de travail qui composent un système. se compose d'un conteneur supplémentaire, avec un réseau et un stockage partagé et des instructions sur la façon d'exécuter les conteneurs Les services sont utilisés pour exposer certaines fonctionnalités aux utilisateurs ou à d'autres services. Ils prennent en charge les variables nécessaires à la communication : une adresse IP, des ports .. pour conserver les données entre les redémarrages et les catastrophes système. Pour que le PV puisse être utilisé, un PersistentVolumeClaim (PVC) doit être créé. Leur travail consiste à relier le PV au conteneur pour lequel le PVC est configuré. des clusters virtuels appelés espaces de noms. Ils sont utilisés pour séparer les différentes versions de l'application, telles que les versions de développement et de production. Ceci afin d'assurer d'éventuelles confusions entre les versions.
  32. 32. 03 Easy to change colors. Text Here Easy to change colors. Text Here Modélisation de la phase de déploiement
  33. 33. 03 Easy to change colors. Text Here Easy to change colors. Text Here Pendant la phase de déploiement, on va avoir un Namespace - Wordpress- où il y a trois objets de déploiement name_deployement.ya ml , un pour chaque pod -container- ,ces objets ont pour objectif de dupliquer les pods - ReplicaSet- ,ainsi il est relié à un volume qui existe dans le server, ce volume est de type pvc, pour relier entre ces objets on utilise les deux services un de types ClusterIP et l’autre de type NodePort pour le WordPress. Modélisation de la phase de déploiement
  34. 34. Configurer les ressources Kubernetes . Créer les ressources Kubernetes de déploiement avec Kompose. Créer un cluster local avec minikube Processus de déploiement Accéder au Kubernetes Dashboard Créer namespace Wordpress et lui transférer les ressources
  35. 35. 03 Easy to change colors. Text Here Easy to change colors. Text Here Créer un cluster local avec minikube
  36. 36. 03 Easy to change colors. Text Here Easy to change colors. Text Here Créer les ressources Kubernetes de déploiement avec Kompose Kompose est un outil de conversion de tout ce qui compose (notamment Docker Compose) en orchestrateurs de conteneurs (Kubernetes ou OpenShift).
  37. 37. 03 Easy to change colors. Text Here Easy to change colors. Text Here Créer les ressources Kubernetes de déploiement avec Kompose
  38. 38. 03 Easy to change colors. Text Here Easy to change colors. Text Here Créer namespace Wordpress et lui transférer les ressources
  39. 39. Service de type ClusterIP Le service de type ClusterIP est le service par défaut de Kubernetes. Il donne un service à l’intérieur du cluster. Les pods à l’intérieur du même cluster peuvent utiliser ce service pour y accéder. Le service de type ClusterIP ne propose pas d’accès externe. Service de type NodePort Un service NodePort est le moyen le plus simple d’aiguiller du trafic externe directement vers un Pod. NodePort, comme son nom l’indique, ouvre un port spécifique sur tous les Nœuds (les VMs), et tout trafic envoyé vers ce port est transféré vers le service. Configurer les ressources Kubernetes  les types de services de kubernetes
  40. 40. 03 Easy to change colors. Text Here Easy to change colors. Text Here On a décidé de laisser tous les services en type ClusterIP sauf le service WordPress qui est de type NodePort.
  41. 41. 03 Easy to change colors. Text Here Easy to change colors. Text Here Accéder au Kubernetes Dashboard Kubernetes Dashboard est une interface utilisateur Web à usage général pour les clusters Kubernetes. Il permet aux utilisateurs de gérer les applications exécutées dans le cluster et de les dépanner, ainsi que de gérer le cluster lui-même.
  42. 42. 03 Easy to change colors. Text Here Easy to change colors. Text Here Accéder au Kubernetes Dashboard
  43. 43. Easy to change colors. Text Here Easy to change colors. Text Here Accéder au Kubernetes Dashboard
  44. 44. Autres Taches Réalisés Pendant la période de stage Création des backups des différents contenus du VPSs dans un S3 bucket à partir de différents scripts. Automatiser ces backups avec (Crontab -e) pour sauvegarder chaque jour, chaque semaine et chaque mois. Restaurer ces backups selon la demande des développeurs. Créer une vidéo Démo/tutorial pour tout le travail réalisé pendant la période de stage pour que les autres peuvent refaire le même travail.
  45. 45. Conclusion L'objectif du projet était de créer une image et des conteneurs Docker de l'application Odhiya et de la déployer sur Kubernetes. L'objectif a été atteint et la version test de l'application a été disponible pendant le temps imparti. L'étape suivante consisterait à utiliser les fichiers existants créés au cours du processus d'automatisation et de déploiement dans un environnement de production réel.
  46. 46. Merci pour votre attention

×