--- marp: true theme: yeti markdown.marp.enableHtml: true paginate: true --- <!-- backgroundImage: "linear-gradient(to bottom,aqua, #1100)" --> <!-- _color: black --> # Présentation Brief 4 #### Déploiement d'un service applicatif n8n via Ansible sur Azure Groupe 1 *Noa, Thomas, Nicolas* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;![](https://i.imgur.com/mwPaEBL.png) <!-- paginate: false --> --- # SOMMAIRE 1 - Objectif demandé 2 - Ce que l'on a réalisé 3 - Plan du projet prévu VS plan du projet effectué 4 - Test de charge/monitoring/autoscale Terraform 5 - Script de monitoring de la montée en charge du service applicatif 6 - Compréhension globale de Ansible et Terraform <!-- paginate: true --> <!-- _color: black --> --- ## 1 - Objectif demandé * Déploiement d’une infrastructure minimale avec une base de donnée * Programmer des scripts Ansible et Cloud-init * Déployement d'une application gateway * Mise en place de TLS * Monitoring de l’application * Script de test de montée en charge * Backup * Scale out de l'application --- ![](https://i.imgur.com/Bjll6gz.png) <!-- _color: black --> --- ### - Ressources utilisées * La documentation AZCollection * AZURE * Google / les formateurs / les apprenants * Visual Studio Code * Github * HackMD * Ansible / Terraform / Cloud-init / Docker <!-- _color: black --> --- ### - Choix du groupe et individuel * Ansible pour déployer l'infrastructure * L'application N8N * Utilisation du script Terraform d'Alfred pour réaliser la montée en charge et le scale * InfluxDB pour réaliser le monitoring <!-- _color: black --> --- N8N permet l'automatisation et l'interconnection d'un grand nombre de web services ![](https://i.imgur.com/PsJAzA4.png) <!-- _color: black --> --- ## 3 - Plan projet prévu VS plan projet exécuté | | *Plan projet prévu* | *Plan projet exécuté* | |-----------|:----------:|:------------:| | Création des ressources principales|&#9745;|&#9745;| | Bastion |&#9745;|&#9745;| | Service PAAS Azure Database for Postrgresql |&#9745;|&#9745;| | Script Cloud-Init |&#9745;|&#9745;| | Application Gateway |&#9745;|&#9745;| | Mise en place TLS|&#9745;|&#9744;| <!-- _color: black --> --- ## 4 - Test de charge/monitoring/autoscale Terraform Nous avons poursuivi sur le brief sur le script Terraform d'Alfred. | | *Plan projet prévu* | *Plan projet exécuté* | |-----------|:----------:|:------------:| | Monitoring de l'Application |&#9745;|&#9745;| | Script de montée en charge |&#9745;|&#9745;| | Stratégie de Backup|&#9745;|&#9745;| | Autoscale|&#9745;|&#9745;| <!-- _color: black --> --- ## 7 - Compréhension des outils et des logiciels J'ai découvert de nouveaux outils de ce brief 3 : * *Azure CLI* : interface en ligne de commande de Microsoft Azure avec sa syntaxe et ses arguments * *Méthodologie Scrum* : organiser, gérer et communiquer quotidiennement sur le déroulement du brief 3 et des objectifs fixés * *Les services Azure* : Service de sauvegarde et Bastion <!-- _color: black --> --- ## 8 - Les difficultés Nous avons rencontré plusieurs difficultés : communes et individuelles. *Communes* : * Prioriser les différentes étapes du script en fonction des pré-requis * Rechercher et analyser la documentation adéquate * Trier et organiser les informations, les gérer et les intégrer au projet * Rendre le script lisible et fonctionnel * Organiser le temps de travail <!-- _color: black --> --- *Individuelle* : * Impliquer l'équipe sur les étapes à valider * Prendre le temps d'expliquer les points * L'environnement de travail trop bruillant pour rester concentré et productif <!-- _color: black --> --- ## 9 - Les solutions Pour palier aux difficultés rencontrés avec l'AZCollection d'Ansible, nous avons trouvé des solutions via différents tutoriels sur internet. Nous avons progressivement mis en place l'infrastructure et les services demandés sur le cloud azure jusqu'au déployment fonctionel de l'application gateway. Pour la partie monté en charge et scale, nous avons utilisé le script terraform d'Alfred pour réaliser la monté en charge de l'application avec un script Python. Pour la partie monitoring j'ai fais le choix sur le conseil de Bryan d'utiliser InfluxDB. J'ai utilisé le service PAAS Azure InfluxDB pour monitoré les données résultant du script Pyton de monté en charge. <!-- _color: black --> --- ## 10 - Ce que j'ai appris J'ai devellopé de nouvelles compétences concernant : * Le déploiment d'infrastructures via Ansible et Terraform * A utiliser Docker pour l'application N8N * A réaliser une montée en charge et faire du scale out * A faire du monitoring avec InfluxDB en service PAAS AZURE