Les appliances virtuelles constituent le concept clé du modèle d'application CA AppLogic.
Une appliance virtuelle CA AppLogic est un objet instanciable qui consiste en un périmètre et un intérieur. Le périmètre inclut tout le nécessaire pour configurer l'appliance, la lier à des données sur des volumes de stockage externes et le connecter à d'autres appliances. L'intérieur consiste en un ordinateur virtuel et un volume de démarrage contenant le système d'exploitation, les fichiers de configuration et le logiciel d'application qui s'exécute dans l'appliance.

L'illustration ci-dessus montre en détail l'anatomie d'une appliance virtuelle typique. Le périmètre de l'appliance se compose des éléments suivants :
des terminaux, y compris des entrées comme IN et des sorties comme DBASE et LOG
des volumes d'extension, comme le volume Contenu
L'intérieur de l'appliance consiste en une machine virtuelle et un volume de démarrage. Le volume de démarrage est configuré avec une version appropriée de Linux, ainsi que tous les autres packages logiciels et scripts requis par l'appliance. L'ordinateur virtuel est configuré pour s'amorcer à partir du volume de démarrage et comporte plusieurs cartes d'interface réseau virtuelles.
La carte virtuelle eth0 est toujours configurée comme interface par défaut, ce qui vous donne la possibilité de vous connecter à l'appliance, d'installer le logiciel et de dépanner celui-ci, tout comme vous le feriez avec n'importe quel serveur distant.
De plus, CA AppLogic crée une carte réseau virtuelle distincte pour chaque terminal (entrée ou sortie) défini sur le périmètre de l'appliance. Bien qu'il soit possible de diriger tout le trafic entrant et sortant de l'appliance à travers une même carte réseau virtuelle, l'utilisation d'une carte distincte pour chaque terminal facilite pour CA AppLogic la configuration et la supervision du trafic réseau, l'application des protocoles de connexion et l'amélioration de la sécurité.
Le périmètre contient un ensemble de propriétés spécifiques à l'appliance, ou paramètres, que vous pouvez utiliser pour configurer l'appliance. Lorsque vous faites démarrer l'appliance, CA AppLogic crée automatiquement une variable d'environnement pour chaque propriété et l'initialise avec la valeur que vous avez affectée à cette propriété. De plus, CA AppLogic propage les valeurs de la propriété dans un ou plusieurs des fichiers de configuration que contient le volume de démarrage. Cela facilite l'utilisation des propriétés comme mécanisme premier pour configurer les appliances.
Le périmètre peut également contenir un ou plusieurs espaces réservés de volume. Un espace réservé est un logement prédéfini pour un volume de stockage. Vous remplissez le logement en configurant l'appliance avec le nom d'un volume à monter. Cela vous donne l'équivalent virtuel d'un disque amovible. Beaucoup d'appliances utilisent ce mécanisme pour accéder à des contenus comme des pages HTML, un code personnalisé ou des bases de données.
CA AppLogic affecte également à chaque appliance un budget de ressources matérielles incluant un ensemble de trois plages qui définissent l'utilisation d'UC minimale et maximale, la mémoire utilisée et la bande passante utilisée pour l'appliance.
Finalement, CA AppLogic associe à chaque appliance un ensemble d'attributs d'exécution qui affectent la façon dont le système planifie et exécute l'appliance. Vous utiliserez probablement souvent deux de ces attributs : la valeur d'ordre de démarrage et l'indicateur de migration. L'ordre de démarrage permet de spécifier et de modifier l'ordre dans lequel les appliances de la même application démarrent, en tenant compte de toutes les dépendance entre eux. L'indicateur de migration est vrai par défaut, ce qui indique à CA AppLogic que cette appliance peut être migrée d'un serveur à un autre à la discrétion du planificateur. En définissant cet indicateur sur faux, l'appliance demeurera sur un serveur spécifique.
CA AppLogic traite les appliances virtuelles comme des objets de composant de premier niveau. Lorsque vous créez un nouveau type d'appliance, ce que vous créez en pratique est une classe d'appliances, qui permet à CA AppLogic de savoir comment fabriquer à la demande des appliances de ce type (ce sont des instances nommées de la classe). Du fait que les classes d'appliance sont des modèles destinés à produire des instances, elles ne peuvent pas être exécutées. Une application exécutable réelle contient uniquement des instances, configurées et interconnectées pour travailler ensemble.

L'illustration ci-dessus montre comment CA AppLogic instancie des classes. Toutes les classes ont un descripteur de classe associé, qui définit :
un ou plusieurs volumes de classe, dont l'un est désigné comme volume de démarrage
La définition complète d'une classe consiste dans son descripteur de classe et l'ensemble complet de volumes de classe identifiés dans le descripteur, y compris leur contenu : système d'exploitation, logiciel d'application et scripts qui définissent ensemble le comportement de l'appliance.
Les classes d'appliance ordinaires peuvent produire un nombre quelconque d'instances. Les singletons sont des classes limitées à une instance unique à la fois. Les singletons sont utiles lorsque vous devez modifier ou dépanner une classe. du fait que seules les instances peuvent s'exécuter sur le système, vous avez toujours besoin d'une instance pour tester et dépanner la classe. Les singletons simplifient le processus. Ils permettent de tester et de dépanner l'instance, puis de générer automatiquement une nouvelle classe à partir de l'instance active.
La définition de classe n'est pas suffisante pour créer une instance exécutable utilisable. CA AppLogic a également besoins de connaître les paramètres d'instance,.qui définissent comment l'instance doit être connectée, configurée et exécutée. Les paramètres d'instance consistent en valeurs spécifiques pour les ressources matérielles, les attributs d'exécution, les connexions de terminal, les propriétés d'appliance et les noms de volumes externes.
Pour créer une instance, CA AppLogic interprète le descripteur de classe et crée un ordinateur virtuel avec un adaptateur réseau virtuel pour chaque terminal et un périphérique de bloc virtuel pour chaque volume. Il crée alors une instance d'interface réseau virtuelle pour chacun des adaptateurs et la lie à l'adaptateur approprié.
Ensuite, le système crée une instance de volume virtuel pour chaque volume spécifié dans le descripteur en répliquant le volume de classe approprié et la lie au périphérique de bloc correspondant.
L'instance nouvellement créée est configurée à l'aide des valeurs de la propriété, habituellement en modifiant les fichiers de configuration identifiés dans la définition de classe et localisés sur un ou plusieurs volumes instanciés. Du fait que chaque volume d'instance est une copie du volume de classe respectif, ces modifications sont spécifiques à l'instance.
CA AppLogic démarre alors les ordinateurs virtuels, ce qui aboutit à l'amorçage et au lancement des divers services configurés dans l'appliance. Il utilise les ressources matérielles et les attributs d'exécution pour contrôler le démarrage, le placement, la planification et la migration de la nouvelle instance.
CA AppLogic sépare les données de configuration et de connexion spécifiques à chaque instance d'appliance des informations communes à toutes les appliances d'une classe donnée, incluant le code de système d'exploitation, le code de moteur d'application et les paramètres de configuration requis pour les faire fonctionner ensemble.
Contrairement aux attributs d'exécution, que vous pouvez appliquer à toute appliance, CA AppLogic permet de définir des paramètres de configuration spécifiques à chaque classe d'appliance. CA AppLogic fournit un mécanisme de propriété pour définir et modifier un ensemble de ces paramètres de configuration à travers une interface de propriété universelle.
Pour vous appuyer sur le mécanisme de propriété CA AppLogic, vous définissez les propriétés en spécifiant leur nom, leur type de données et leur valeur par défaut comme partie de la définition de classe. Vous pouvez également sélectionner un ou plusieurs fichiers de configuration présents sur les volumes de l'appliance comme cibles des valeurs de la propriété.
Dans une instance d'appliance, vous pouvez accéder à une valeur de propriété selon deux approches :
Pour chaque propriété sur le périmètre de l'appliance, CA AppLogic définit une variable d'environnement appelée comme la propriété. Au moment du démarrage, la valeur de la variable est initialisée sur la valeur affectée à la propriété. Cela simplifie l'accès aux propriétés par des démons, des utilitaires et des scripts qui s'exécutent à l'intérieur de l'appliance.
Remarque : Vous pouvez utiliser une propriété définie sur une appliance pour définir la valeur d'un ou plusieurs paramètres localisés dans des fichiers de configuration basés texte. Pour mapper une propriété de l'appliance sur un paramètre présent dans un fichier de configuration, vous devez identifier la valeur dans le fichier avec un commentaire étiqueté spécial, identifiant le nom de la propriété que vous essayez de mapper. Lorsque la propriété est définie, CA AppLogic remplace la valeur présente dans le fichier par la valeur affectée à la propriété.
Les terminaux CA AppLogic sont des points de connexion pour les interactions logiques entre les appliances. L'abstraction terminale est conçue pour que les packages logiciels existant dans des appliances virtuelles puissent communiquer aux travers des terminaux sans requérir de modification.
Un terminal peut être une entrée ou une sortie. Les entrées sont des terminaux qui acceptent des connexions réseau. Les sorties sont des terminaux à l'origine de connexions réseau. En ce qui concerne les flux de requêtes et de données, les deux types de terminaux sont bidirectionnels. Un terminal consiste en un nom réseau, un adaptateur réseau virtuel et une interface réseau virtuelle.
Lorsqu'une sortie d'une appliance est reliée à une entrée d'une autre appliance, CA AppLogic crée un branchement virtuel entre les interfaces réseau virtuelles respectives et affecte des adresses IP virtuelles aux deux extrémités de la connexion.
Remarque : Les adresses IP virtuelles sont uniquement présentes dans l'intérêt du logiciel qui s'exécute sur l'ordinateur virtuel. Ce ne sont pas des adresses réseaux réelles, routables. Le trafic réel sur la connexion est distribué au travers du branchement virtuel.
Pour le qui s'exécute dans une appliance virtuelle, les terminaux s'affichent comme des hôtes réseau nommés. Une entrée définit un nom d'hôte sur lequel un serveur comme Apache peut écouter les requêtes de connexion entrantes. Lorsqu'elle n'est pas connectée, une sortie est visible dans l'ordinateur virtuel sous forme d'hôte non accessible. Lorsqu'elle est reliée à une entrée d'une autre appliance, la même sortie se comporte comme un hôte réseau valide, avec lequel les connexions sont établies. Si vous vous connectez à l'appliance et adressez une commande ping à une sortie connectée, vous verrez que le nom de la sortie se résout sur l'adresse IP de l'entrée de l'autre appliance à laquelle la sortie est reliée.
Remarque : Les terminaux éliminent les références à d'autres appliances et serveurs.
Le code qui s'exécute dans une appliance verra un "réseau" uniquement composé de quelques hôtes, un pour chaque terminal défini sur le périmètre de l'appliance. Cela permet la connexion de différentes instances de la même appliance dans des structures différentes sans modifier la configuration de l'appliance.
Par exemple, si vous créez une appliance qui doit accéder à un serveur de base de données, vous pouvez définir une sortie pour accéder à cette base de données et l'appeler DBASE. Lors de la configuration du pilote JDBC dans votre appliance, vous définissez simplement le nom de la sortie "DBASE" comme nom d'hôte du serveur de base de données cible. Lors de l'exécution, chaque instance de votre appliance peut être reliée à un serveur de base de données différent, sans vous imposer de modifier le nom d'hôte cible pour le pilote JDBC : le même nom d'hôte, "DBASE", se résoudra automatiquement sur l'adresse IP correcte du serveur de base de données auquel l'instance particulière est reliée.
Vous pouvez spécifier les protocoles autorisés pour chaque terminal. Cela a l'effet de créer un pare-feu virtuel sur le terminal, en ne laissant entrer ou sortir que les protocoles autorisés. Mieux encore, lorsque vous configurez l'application, CA AppLogic garantit que seuls les terminaux utilisant des protocoles compatibles sont interconnectés. Par exemple, si le logiciel de votre appliance est configuré pour utiliser MySQL au travers de la sortie DBASE, vous pouvez, déclarer MySQL comme protocole pour DBASE pour éviter que la sortie DBASE ne soit accidentellement liée à un serveur Oracle.
Remarque : Vous pouvez déclarer tout terminal comme obligatoire, en indiquant à CA AppLogic que votre appliance ne peut pas fonctionner sans être reliée à cette sorte de service externe. CA AppLogic refusera de lancer une application si un terminal obligatoire reste non connecté et vous indiquera le terminal que vous avez oublié de connecter.
Chaque appliance requiert au minimum un volume de stockage, celui à partir duquel il démarre. Ces volumes sont fournis dans le cadre de la définition de classe de l'appliance et instanciés chaque fois qu'une instance de l'appliance est créée. Il est souvent utile de définir vos appliances avec des espaces réservés pour des volumes supplémentaires. Lorsque vous définissez un espace réservé, il devient un "logement", dans lequel vous pouvez ultérieurement brancher un volume externe.
Les volumes que vous pouvez "brancher" dans un logement d'espace réservé sont désignés volumes virtuels d'application. Vous créez un volume virtuel d'application explicitement, en exécutant la commande appropriée et en spécifiant un nom, une taille de stockage et le type du système de fichiers désiré. Vous pouvez monter des volumes virtuels d'application sur le contrôleur CA AppLogic pour transférer des données à destination ou en provenance de ces volumes.
Par exemple, il est utile de définir une appliance de serveur Web avec deux volumes - un volume de démarrage et un volume de contenu. Le volume de démarrage contient le logiciel et les fichiers de configuration requis pour démarrer Linux et exécuter un serveur Web Apache. Ce volume devient une partie de la définition de classe et il est instancié pour chaque instance de l'appliance.
Le volume de contenu, toutefois, est un espace réservé pour un volume virtuel d'application qui contiendra les fichiers HTML, les images statiques et les scripts pour un site Web spécifique. La configuration d'une instance de l'appliance de serveur Web avec une référence au volume de contenu produit une instance de serveur Web Apache qui servira ce site Web particulier. Les pages et autres contenus de ce serveur Web seront placés sur le volume de contenu.
Astuce : Vous pouvez utiliser un volume virtuel d'application unique pour déployer le contenu pour des serveurs Web multiples. Une approche simple pour cela consiste à ajouter une propriété spécifiant le répertoire de base sur le volume à partir duquel l'appliance donnée accédera au contenu. Cela facilite la configuration de serveurs Web multiples comportant le même volume de contenu, tout en définissant chaque instance pour servir le contenu à partir d'un répertoire différent.
Vous pouvez utiliser le même modèle pour concevoir un serveur J2EE générique configuré avec un volume (et un chemin d'accès de base) contenant les packages EJB pour une fonction d'application particulière ou un serveur de base de données générique configuré avec un volume et un chemin d'accès contenant une base de données spécifique.
En pratique, l'utilisation de cette combinaison d'un volume virtuel d'application et d'une propriété de chemin d'accès de répertoire permet d'associer sur un même volume l'interface utilisateur, le contenu statique, le code et les données de l'application, ce qui simplifie le déploiement, les modifications et la maintenance.
| Copyright © 2012 CA. Tous droits réservés. |
|