L'ensemble parait complexe mais de fait, l'architecture d'OpenStack est relativement simple par rapport aux problématiques adressés.
OpenStack est conçu autour d'une architecture SOA autour d'un bus de messagerie (par défaut RabbitMQ, mais également QPid ou bien zeromq en brokerless), la plupart des services sont utilisables indépendamment.
Sur le diagramme, chaque rectangle correspond à un service, Nova mis à part, ils sont relativement simples, en gros, t'as un frontend API et un backend pour faire le boulot. Dans le cas de Nova, c'est le composant central et il doit s'interfacer à plusieurs services pour fournir des fonctionnalités (gestion des autorisations, images, réseaux, stockage etc.)
En comparaison, Eucalyptus semble avoir une architecture plus simple mais chaque composant est nettement plus complexe que dans le cas d'OpenStack. Malgré un leadership distribué (Cf. l'implémentation), je trouve fascinant qu'OpenStack ait une conception aussi bien définie et une implémentation qui reste compréhensible et avec des snippets de code très élégants (et instructifs)
Par exemple, Doug Hellmann a extrait/développé des paquetages Python pour les besoins d'OpenStack qui utilisent de manières très astucieuses setuptools/distribute:
[^] # Re: Pourquoi faire simple quand on peut faire compliqué
Posté par GeneralZod . En réponse à la dépêche Tempête dans les nuages : OpenStack et le bazar des API. Évalué à 6.
L'ensemble parait complexe mais de fait, l'architecture d'OpenStack est relativement simple par rapport aux problématiques adressés.
OpenStack est conçu autour d'une architecture SOA autour d'un bus de messagerie (par défaut RabbitMQ, mais également QPid ou bien zeromq en brokerless), la plupart des services sont utilisables indépendamment.
Sur le diagramme, chaque rectangle correspond à un service, Nova mis à part, ils sont relativement simples, en gros, t'as un frontend API et un backend pour faire le boulot. Dans le cas de Nova, c'est le composant central et il doit s'interfacer à plusieurs services pour fournir des fonctionnalités (gestion des autorisations, images, réseaux, stockage etc.)
En comparaison, Eucalyptus semble avoir une architecture plus simple mais chaque composant est nettement plus complexe que dans le cas d'OpenStack. Malgré un leadership distribué (Cf. l'implémentation), je trouve fascinant qu'OpenStack ait une conception aussi bien définie et une implémentation qui reste compréhensible et avec des snippets de code très élégants (et instructifs)
Par exemple, Doug Hellmann a extrait/développé des paquetages Python pour les besoins d'OpenStack qui utilisent de manières très astucieuses setuptools/distribute:
stevedore: architecture de plugin
Cliff: gestion CLI