Architecture de la plateforme OpenStack#
Vue d'ensemble des composants#
- OpenStack est modulaire et flexible
- Composants appelés "services" ou "projets"
- Chaque service responsable d'une fonction spécifique
OpenStack Documentation: OpenStack API documentation
Interaction entre les composants#
- Services communiquent via API
- Messages transmis par bus de messages (ex : RabbitMQ)
- Standardisation des interactions entre services
Présentation des 6 principales briques#
Nova (Compute)#
- Gestion des instances de machines virtuelles
- Supporte divers hyperviseurs (KVM, Hyper-V, ESXi)
- Interactions avec d'autres services (Neutron, Cinder, Glance)
Cinder (Block Storage)#
- Gestion des volumes de stockage en mode bloc
- Peut être connecté à des instances Nova
- Divers backends supportés (Ceph, LVM, NetApp, etc.)
OpenStack Documentation: Cinder, Basic architecture
Laying Cinder Block (Volumes) In OpenStack
Neutron (Networking)#
- Gestion des réseaux et des adresses IP
- Supporte divers plugins (Open vSwitch, Linux Bridge)
- Fonctionnalités avancées (LBaaS, VPNaaS, FWaaS)
Glance (Image Service)#
- Gestion des images de machines virtuelles
- Stockage et récupération d'images
- Supporte divers formats (QCOW2, VMDK, etc.)
OpenStack Documentation: Glance, Basic architecture
Swift (Object Storage)#
- Stockage d'objets distribué et évolutif
- Haute disponibilité et réplication des données
- Supporte API S3 d'Amazon
Keystone (Identity Service)#
- Gestion de l'authentification et des autorisations
- Gestion des utilisateurs, rôles et projets
- Supporte divers backends d'authentification (LDAP, OAuth, etc.)
OpenStack Keystone Workflow & Token Scoping
Horizon (Dashboard)#
- Interface web de gestion d'OpenStack
- Permet de gérer et surveiller les ressources
- Extensible via plugins
Composants optionnels et extensions#
Compute projets#
- Nova
- Glance
- Ironic (Bare Metal) : service de gestion des machines physiques, permettant de gérer des machines physiques comme des ressources de calcul dans un environnement OpenStack.
- Magnum : provisionning et management de moteurs d'orchestration
- Zun (Container service) : service de déploiement et de gestion de conteneurs, permettant de créer et de gérer des conteneurs dans un environnement OpenStack.
- Storlet (FaaS) : implémente les Fonctions-as-a-service dans le contexte d'Object Storage.
Securité, Identité et Conformité#
- KeyStone
- Barbican : provisioning dsécurisé, management des secrets (password, certificats X.509, clés de chiffrement, etc.)
- Congress - service de gouvernance
- Mistral (Workflow service) : service de gestion des flux de travail, permettant de créer et de gérer des flux de travail pour automatiser les tâches dans un environnement OpenStack.
Stockage, Sauvegarde et Recovery#
- Cinder
- Swift
- Manila (Shared File System) : service de partage de fichiers, permettant de créer et de gérer des systèmes de fichiers partagés dans un environnement OpenStack.
- Kardor : backup et restauration des data et meta-data d'applications
- Freezer : backup et restauration de fichiers et de filesystemes
Réseau#
- Neutron
- Designate (DNSaaS) : service de gestion des noms de domaine, permettant de créer et de gérer des enregistrements DNS dans un environnement OpenStack.
- Dragonflow : controller de SDN distribué
- Kuryr : plugin réseau Docker
- Octavia (Load Balancer) : service de répartition de charge, permettant de créer et de gérer des équilibreurs de charge dans un environnement OpenStack.
- Tacker (NFV Orchestration) : service de gestion des fonctions réseau virtuelles (NFV), permettant de créer et de gérer des fonctions réseau telles que des routeurs, des pare-feu et des passerelles VPN.
- Tricile : extension des abstration réseau à travers plusieurs instances openstack
Data et Analyse#
- Trove : DBaaS
- Sahara (Data processing) : service de traitement de données, permettant de créer et de gérer des clusters de traitement de données dans un environnement OpenStack.
Projects applicatifs#
- Heat (Orchestration) : Gestion de l'infrastructure en tant que code (IaaC), automatisation du déploiement de ressources. Supporte des modèles de déploiement (HOT, AWS CloudFormation)
- Murano (Application Catalog) : catalogue d'applications permettant de déployer et de gérer des applications dans un environnement OpenStack.
Et aussi ...#
- Cyborg (Accelerator management) : service de gestion des accélérateurs matériels tels que les GPU, permettant de les utiliser pour accélérer les charges de travail dans un environnement OpenStack.
- Masakari (High Availability) : service de haute disponibilité, permettant de surveiller les noeuds de l'infrastructure OpenStack et de les récupérer en cas de panne.
- Monasca (Monitoring) : service de surveillance des performances de l'infrastructure OpenStack, permettant de collecter et d'analyser des données de performances pour optimiser les ressources et résoudre les problèmes.
- Rally (Benchmarking) : outil de benchmarking pour tester les performances d'OpenStack, permettant de simuler des charges de travail et de mesurer les performances de l'infrastructure.
- Senlin (Cluster management) : service de gestion de clusters, permettant de créer et de gérer des clusters de machines virtuelles ou physiques dans un environnement OpenStack.
- Watcher (Infrastructure optimization) : service d'optimisation de l'infrastructure, permettant d'optimiser les ressources de l'infrastructure OpenStack en fonction des charges de travail et des objectifs métier.