3 Outils Transverse
Dans cette section, nous allons vous parler de tous les outils que nous avons utilisés pour la réalisation de ce projet.
3.1 Gitlab
Nous avons utilisé Gitlab pour la gestion de notre code source. Gitlab est un outil de gestion de code source qui permet de travailler en équipe sur un même projet. Il permet de gérer les versions de code, de suivre les modifications apportées par chaque membre de l’équipe et de gérer les conflits de code. Gitlab permet également de gérer les branches de code, de créer des merge requests et de gérer les permissions des membres de l’équipe. Gitlab est un outil très complet qui permet de gérer efficacement un projet de développement logiciel.
Cela a été crucial pour kubernetes car nous travaillons en gitops et que nous avons besoin de gérer les versions de nos fichiers de configuration. Nous avons utilisé gitlab aussi pour l’organisation de notre documentation et pour la gestion de nos pipelines de déploiement. Et l’automatisation de nos tests.
3.2 Quarto
Nou avons utilisé Quarto qui est un logicielle de création de documents. Quarto permet de créer des documents de manière simple et efficace. Il permet de créer des documents en markdown et de les exporter en différents formats (pdf, html, docx, etc.). Quarto permet également de gérer les images, les tableaux, les listes et les liens hypertextes. Quarto est un outil très complet qui permet de créer des documents de qualité professionnelle. Quarto nous a permis de créer notre documentation de manière simple et efficace. Et de la standardiser.
3.3 Notion
Nous avons utilisé Notion pour la gestion des ressources en commun. Notion est un outil de gestion de projet qui permet de gérer les tâches, les documents, les fichiers et les discussions. Notion permet de créer des tableaux, des listes, des calendriers et des diagrammes. Notion permet également de gérer les permissions des membres de l’équipe et de suivre l’avancement des tâches. Notion est un outil très complet qui permet de gérer efficacement un projet.
3.4 Discord
Nous avons utilisé Discord pour la communication en temps réel. Discord est un outil de communication qui permet de discuter en temps réel avec les membres de l’équipe. Discord permet de créer des salons de discussion, des salons vocaux et des salons de partage d’écran. Discord est un outil très complet qui permet de communiquer efficacement en équipe.
3.5 Netbox
Nous avons utilisé Netbox pour la gestion de notre infrastructure. Netbox est un outil de gestion d’infrastructure qui permet de gérer les équipements réseau, les adresses IP, les VLAN, les racks et les câbles. Netbox permet de créer des diagrammes de réseau, des plans d’adressage IP et des rapports d’inventaire. Netbox est un outil très complet qui permet de gérer efficacement une infrastructure réseau. Nous avons surout utilisé la partie IPAM de Netbox pour la gestion de nos adresses IP.
3.6 Draw.io
Nous avons utilisé Draw.io pour la création de diagrammes. Draw.io est un outil de création de diagrammes qui permet de créer des diagrammes de manière simple et efficace. Draw.io permet de créer des diagrammes de réseau, des diagrammes de flux, des diagrammes de processus et des diagrammes de Gantt. Draw.io permet également de gérer les formes, les couleurs, les liens et les textes. Draw.io est un outil très complet qui permet de créer des diagrammes de qualité professionnelle. Nous avons utilisé Draw.io pour la création de nos diagrammes de réseau.
3.7 Vaultwarden
Nous avons utilisé Vaultwarden pour la gestion de nos secrets. Vaultwarden est un outil de gestion de secrets qui permet de stocker les mots de passe, les clés API, les jetons d’accès et les certificats. Vaultwarden permet de chiffrer les secrets, de les partager en toute sécurité et de les gérer de manière centralisée. Vaultwarden permet également de suivre l’historique des accès, de gérer les permissions des utilisateurs et de générer des rapports d’audit. Vaultwarden est un outil très complet qui permet de gérer efficacement les secrets d’une organisation. Nous avons utilisé Vaultwarden pour la gestion de nos secrets de manière sécurisée.
3.8 Termius
Nous avons utilisé Termius pour la gestion de nos serveurs. Termius est un outil de gestion de serveurs qui permet de se connecter en SSH, en Telnet et en SFTP. Termius permet de gérer les connexions, les sessions, les clés SSH et les scripts. Termius permet également de gérer les permissions des utilisateurs, de suivre l’historique des connexions et de générer des rapports d’activité. Termius est un outil très complet qui permet de gérer efficacement les serveurs d’une organisation. Nous avons utilisé Termius pour la gestion de nos serveurs de manière sécurisée.
3.9 Outils technique
3.10 XCP NG
Nous avons utilisé XCP NG pour la gestion de nos machines virtuelles. XCP NG est un outil de gestion de machines virtuelles qui permet de créer, de démarrer, d’arrêter et de supprimer des machines virtuelles. XCP NG permet de gérer les ressources, les disques, les réseaux et les snapshots. XCP NG permet également de gérer les permissions des utilisateurs, de suivre l’historique des opérations et de générer des rapports d’utilisation. XCP NG est un outil très complet qui permet de gérer efficacement les machines virtuelles d’une organisation. Nous avons utilisé XCP NG pour la gestion de nos machines virtuelles de manière sécurisée.
3.11 Xen Orchestra
Nous avons utilisé Xen Orchestra pour la gestion de nos machines virtuelles. Xen orchestra est des outils qui va venir s’inscrire dans l’écosystem XCP avec par example l’hyperviseur XCP-NG. Et intègre des outils tel que les backups ou d’autres ecosystèmes comme celui de Hashicorp avec terraform et packer.
3.12 Windows server
Nous avons utilisé Windows Server pour la gestion de nos serveurs Windows. Windows Server est un système d’exploitation de serveur développé par Microsoft qui fournit des fonctionnalités avancées pour la gestion des réseaux, des applications et des services d’entreprise. Windows Server permet de gérer les rôles et les fonctionnalités des serveurs, les services Active Directory, les services de fichiers et d’impression, et les services de virtualisation Hyper-V. Windows Server est un outil robuste qui assure la sécurité, la fiabilité et l’évolutivité des environnements de serveur.
3.13 Truenas
Nous avons utilisé TrueNAS pour la gestion de notre stockage réseau. TrueNAS est une solution de stockage en réseau ( NAS) open source qui permet de gérer et de partager des données de manière sécurisée et efficace. TrueNAS prend en charge le stockage en réseau basé sur les protocoles SMB, NFS et iSCSI, ainsi que la réplication des données et la gestion des snapshots. TrueNAS offre une interface utilisateur intuitive et des fonctionnalités avancées de gestion des disques, de la compression des données et de la déduplication. TrueNAS est un outil puissant pour centraliser et sécuriser le stockage des données dans notre infrastructure.
3.14 HAProxy
Nous avons utilisé HAProxy pour la gestion de la répartition de charge. HAProxy est un logiciel libre de répartition de charge (load balancer) et de proxy pour les protocoles TCP et HTTP. HAProxy permet de distribuer le trafic réseau sur plusieurs serveurs pour assurer la disponibilité et la performance des applications. Il offre des fonctionnalités avancées telles que le routage basé sur le contenu, la gestion des sessions, la vérification de l’état des serveurs backend et le support de SSL/TLS. HAProxy est un outil très fiable et performant pour gérer la charge de notre infrastructure.
3.15 Vyos
Nous avons utilisé VyOS pour la gestion de nos routeurs et de notre pare-feu. VyOS est un système d’exploitation de réseau open source qui fournit des fonctionnalités avancées pour les routeurs, les pare-feux et les VPN. VyOS permet de configurer des routes statiques et dynamiques, des pare-feux, des réseaux privés virtuels (VPN) et des interfaces réseau. VyOS offre une interface en ligne de commande (CLI) et des options de configuration par script, ce qui en fait un outil flexible et puissant pour la gestion de l’infrastructure réseau.
3.16 Debian
Nous avons utilisé Debian pour nos serveurs Linux. Debian est une distribution Linux open source réputée pour sa stabilité, sa sécurité et sa richesse en logiciels disponibles. Debian offre un vaste dépôt de paquets logiciels et une gestion facile des dépendances. Il est souvent utilisé comme système d’exploitation de serveur grâce à sa fiabilité et à sa flexibilité. Debian nous a permis de déployer et de gérer des services et des applications de manière efficace.
3.17 Chrony
Nous avons utilisé Chrony pour la synchronisation de l’heure réseau. Chrony est un logiciel client et serveur NTP ( Network Time Protocol) qui permet de synchroniser l’heure des systèmes informatiques avec des serveurs de temps de référence. Chrony est particulièrement utile dans les environnements où la connectivité réseau est variable, car il offre une synchronisation rapide et précise de l’heure. Il est utilisé pour assurer que tous les systèmes de notre infrastructure ont une heure cohérente et précise.
3.18 Prometheus
Nous avons utilisé Prometheus pour la surveillance et l’alerte. Prometheus est un système open source de surveillance et d’alerte conçu pour collecter et stocker des métriques en temps réel. Il offre un langage de requête puissant, PromQL, pour interroger les données et générer des alertes basées sur des conditions définies. Prometheus est particulièrement adapté pour surveiller des environnements de conteneurs et des microservices. Il nous permet de surveiller la performance de notre infrastructure et de réagir rapidement aux incidents.
3.19 Grafana
Nous avons utilisé Grafana pour la visualisation des données de surveillance. Grafana est un outil open source de visualisation et d’analyse de données qui permet de créer des tableaux de bord interactifs et dynamiques. Grafana peut se connecter à diverses sources de données, y compris Prometheus, et offre des options de visualisation avancées pour représenter les métriques de performance et les alertes. Grafana est un outil essentiel pour obtenir des insights visuels sur l’état de notre infrastructure.
3.20 Netbird
Nous avons utilisé Netbird pour la gestion de nos réseaux privés virtuels (VPN). Netbird est une solution VPN qui permet de connecter de manière sécurisée des machines distantes à un réseau privé via des tunnels chiffrés. Il est conçu pour être simple à configurer et à utiliser, tout en offrant une sécurité robuste et des performances élevées. Netbird est utilisé pour garantir que nos communications réseau sont protégées contre les interceptions et les accès non autorisés.
3.21 VRRP
Nous avons utilisé VRRP (Virtual Router Redundancy Protocol) pour assurer la haute disponibilité de nos routeurs. VRRP est un protocole de redondance de routeur qui permet de configurer plusieurs routeurs pour travailler ensemble, en offrant une bascule automatique en cas de défaillance d’un routeur principal. Cela garantit que le réseau reste disponible et opérationnel même en cas de panne d’un composant critique. VRRP est essentiel pour maintenir une connectivité réseau fiable dans notre infrastructure.
3.22 K3Sup
Nous avons utilisé K3Sup pour l’installation rapide de clusters Kubernetes K3s. K3Sup est un outil open source qui simplifie le processus d’installation de Kubernetes en automatisant les étapes de configuration et de déploiement. Il permet de déployer un cluster Kubernetes K3s sur des machines locales ou distantes en quelques commandes. K3Sup est particulièrement utile pour les environnements de développement et de test où la rapidité et la simplicité de déploiement sont cruciales.
3.23 K3S
Nous avons utilisé K3s comme distribution légère de Kubernetes. K3s est une version allégée de Kubernetes conçue pour être facile à installer et à gérer, tout en conservant toutes les fonctionnalités essentielles de Kubernetes. K3s est optimisé pour les environnements à faibles ressources, tels que les clusters IoT et les déploiements en périphérie. Il offre une solution complète pour orchestrer les conteneurs dans des environnements contraints en ressources.
3.24 K9S
Nous avons utilisé K9S pour la gestion et la surveillance des clusters Kubernetes. K9S est une interface en ligne de commande (CLI) interactive pour Kubernetes qui facilite la navigation et l’interaction avec les ressources du cluster. Il permet de visualiser l’état des pods, des services, des déploiements et d’autres objets Kubernetes en temps réel. K9S offre une expérience utilisateur améliorée pour la gestion quotidienne des clusters Kubernetes.
3.25 Vault
Nous avons utilisé HashiCorp Vault pour la gestion sécurisée des secrets. Vault est un outil open source qui permet de stocker, gérer et contrôler l’accès aux secrets tels que les mots de passe, les clés API et les certificats. Vault offre des fonctionnalités de chiffrement, de rotation des secrets et de gestion des politiques d’accès, assurant une gestion sécurisée et centralisée des informations sensibles. Vault est essentiel pour protéger les secrets utilisés par nos applications et services.
3.26 REACTJS
Nous avons utilisé ReactJS pour le développement de nos interfaces utilisateur. ReactJS est une bibliothèque JavaScript open source
3.27 MINIO
Nous avons utilisé MinIO pour la gestion de notre stockage d’objets. MinIO est une solution de stockage d’objets open source compatible avec l’API S3 d’AWS. MinIO est conçu pour offrir des performances élevées, une évolutivité et une résilience dans des environnements de stockage distribués. Il permet de stocker et de gérer de grandes quantités de données non structurées de manière sécurisée et efficace.
3.28 LETS ENCRYPT
Nous avons utilisé Let’s Encrypt pour la gestion de nos certificats SSL/TLS. Let’s Encrypt est une autorité de certification open source qui fournit des certificats SSL/TLS gratuits pour sécuriser les communications web. Let’s Encrypt automatise le processus d’émission, de renouvellement et de révocation des certificats, facilitant ainsi la sécurisation de nos sites web et services. Let’s Encrypt est essentiel pour garantir des communications chiffrées et sécurisées.
3.29 TRAEFIK
Nous avons utilisé Traefik comme reverse proxy et load balancer pour nos applications. Traefik est un reverse proxy open source qui facilite la gestion du trafic entrant vers les services d’une application. Il offre des fonctionnalités avancées telles que la découverte automatique des services, la gestion des certificats SSL/TLS, le routage dynamique et le load balancing. Traefik est conçu pour s’intégrer de manière transparente avec les environnements de conteneurs et les orchestrateurs comme Kubernetes.
3.30 KUBERNETES
Nous avons utilisé Kubernetes pour l’orchestration de nos conteneurs. Kubernetes est une plateforme open source de gestion de conteneurs qui permet de déployer, de gérer et de faire évoluer des applications conteneurisées. Kubernetes offre des fonctionnalités avancées de gestion des ressources, de mise à l’échelle automatique, de tolérance aux pannes et de déploiement continu. Kubernetes est essentiel pour orchestrer et automatiser la gestion de nos applications en conteneurs.