E. Renaux

Hors les cours BLOG

Archive for the ‘INTES’13’ Category

Cloud Foundry

without comments

[ DESCOMBES, PONTONE -FP14 ]

Le Platform as a Service promet une gestion parfaitement fluide des ressources, ainsi qu’une extensibilité infinie et transparente, ce qui le rend attractif.

VMware, via sa filiale Pivotal propose la solution Cloud Foundry, un PaaS open source.

 

Read the rest of this entry »

Written by

mai 17th, 2013 at 2:10 am

Posted in INTES'13

Mozilla TowTruck, développement web collaboratif temps-réel

without comments

[L. BLYWEERT, A. VIGODA – FI-14]

Présentation du projet en vidéo

site-product-shot

Parmi les fonctionnalités de TowTruck : édition de sites web, chat et chat vocal, tout ça en temps réel et à plusieurs

« Projet récent, Mozilla TowTruck a été présenté en avril 2013 par l’équipe de Mozilla Labs. Il permet d’ajouter à un site web des fonctionnalités de collaboration en temps réel, comme la possibilité de voir les changements apportés au site en temps réel, le chat, et le chat vocal. »

TowTruckMozilla Labs (lien officiel)

Read the rest of this entry »

Written by

avril 30th, 2013 at 6:28 pm

Openstack

without comments

[R.KABBAJ, W.FEZZANI- FI 14 – ASTM-14 ]

OpenStack

La solution open source du cloud computing 

OpenStackLogo

Durant ces dernières années, le terme “Cloud computing” est fréquemment utilisé dans le jargon du web. Beaucoup de professionnels et d’internautes s’accordent pour parler de “future du web”. Cette technologie représenterait donc une  révolution dans le domaine de l’internet et de l’informatique.

Le cloud computing est un modèle permettant d’établir un accès par le réseaux à une base partagé de ressources informatiques standard configurables (réseau, serveurs, stockage, applications et services) qui peuvent être rapidement mobilisées et mises à disposition en minimisant les efforts de gestion ou les contacts avec le fournisseur de service.

Quel rôle le cloud computing joue t-il dans l’évolution du web ? Quel est sont objectif ? Quels services propose t-il ? Comment est-il implémenté et quelles solutions apporte t-il ?  Ce sont les questions que nous allons aborder dans cet article et dont allons apporter des réponses.

Il existe  différentes solutions implémentant le cloud computing. OPENSTACK représente aujourd’hui la solution open source vedette sur laquelle nous allons spécialement nous attarder.

Cloud Computing

L’approche la plus simple pour comprendre le cloud computing est l’exemple du jeu à la demande. Cette solution révolutionnaire nous permet de jouer à un jeu vidéo sur un écran d’ordinateur alors que le logiciel du jeu tourne sur un service à distance, qui renvoient la vidéo de ce qui a été joué en lecture en continu (ce qui est communément appelé streaming). Le jeu est hébergé et stocké sur des serveurs, dont l’utilisateur ne connait pas la localisation ni les caractéristiques. Il ne nécessite plus de supports comme les CD, ou de matériels comme les consoles de jeux. Les joueurs doivent seulement posséder un ordinateur relié à Internet, et le cas échéant une manette de jeu.Le modèle que nous traitons se différencie par les cinq caractéristiques essentielles suivantes :

Accès aux services par l’utilisateur à la demande

La mise en œuvre des systèmes est entièrement automatisée et c’est l’utilisateur, au moyen d’une console de commande, qui met en place et gère la configuration à distance.

Accès réseau large bande

Ces centres de traitement sont généralement raccordés directement sur le backbone Internet pour bénéficier d’une excellente connectivité. Les grands fournisseurs répartissent les centres de traitement sur la planète pour fournir un accès aux systèmes en moins de 50 ms de n’importe quel endroit.

Réservoir de ressources (non localisées):

La plupart de ces centres comportent des dizaines de milliers de serveurs et de moyens de stockage pour permettre des montées en charge rapides. Il est souvent possible de choisir une zone géographique pour mettre les données « près » des utilisateurs.

Redimensionnement rapide (élasticité)

La mise en ligne d’une nouvelle instance d’un serveur est réalisée en quelques minutes, l’arrêt et le redémarrage en quelques secondes. Toutes ces opérations peuvent s’effectuer automatiquement par des scripts. Ces mécanismes de gestion permettent de bénéficier pleinement de la facturation à l’usage en adaptant la puissance de calcul au trafic instantané.

Facturation à l’usage (pay as you go)

Il n’y a généralement pas de coût de mise en service (c’est l’utilisateur qui réalise les opérations). La facturation est calculée en fonction de la durée et de la quantité de ressources utilisées. Une unité de traitement stoppée n’est pas facturée.

 Services du Cloud Computing

Dans le cas général, on distingue habituellement quatre grands modèles de service incluant : Software as a Service (SaaS), Data as a Service (DaaS), Platform as a Service (PaaS) et Infrastructure as a Service (IaaS), ainsi que trois modèles de déploiement de cloud computing :

  • Les Clouds privés internes, gérés en interne par une entreprise pour ses besoins.
  • Les Clouds privés externes, ou privatifs, dédiés aux besoins propres d’une seule entreprise, mais dont la gestion est externalisée chez un prestataire.
  • Les Clouds publics, gérés par des entreprises spécialisées qui louent leurs services à de nombreuses entreprises.

Capture2

 

Solutions propriétaires

Les experts dans le domaine désignent Amazon comme étant le leader dans l’industrie du Cloud computing. Amazon a constament dépassé ses concurents en terme d’innovation et de service au client durant les deux dernières années.

Parmis les diffèrentes solutions de cloud computing nous allons comparer les 4 plus imp

Capture2 Capture Capture4 Capture5La solution OpenStack

« OpenStack est un projet informatique de service d’infrastructure (Infrastructure as a Service (IaaS)) du domaine du cloud computing, mené par Rackspace Cloud et laNASA.
C’est un logiciel libre distribué selon les termes de la licence Apache.

  • En juillet 2010, Rackspace Hosting et la NASA ont lancé conjointement un nouveau projet open source dans le domaine du cloud computing sous le nom d’OpenStack1.
  • L’objectif du projet OpenStack est de permettre à toute organisation de créer et d’offrir des services de cloud computing en utilisant du matériel standard.
  • La première version livrée par la communauté, dont le surnom est Austin, fut disponible seulement quatre mois après;
  • Il est prévu de livrer régulièrement des mises à jour logicielles à quelques mois d’intervalle. »          Source Wikipédia

OpenStack compute

Openstack compute est le projet IAAS d’Openstack Cloud Computing . Il permet de créer des instances, gérer des réseaux et des images et y contrôler l’accès par la création d’utilisateurs et de groupes.

Les composants 

  • Hyperviseur Openstack compute nécessite l’utilisation d’un hyperviseur qu’on peut contrôler à travers une API serveur. Le choix de l’hyperviseur est basé sur le budget, les contraintes d’installation et les spécifications techniques exigées. Les hyperviseurs les plus utilisés sont KVM et Xen. Openstack est basé également sur la notion de virtualisation dont les solutions les plus couramment mises en place sont :
  • KVM – Kernel-based Virtual Machine
  •  LXC – Linux Containers (through libvirt)
  •  QEMU – Quick Emulator
  • UML – User Mode Linux
  •  VMware ESX/ESXi 4.1
  • Xen – XenServer 5.5, Xen Cloud Platform (XCP).

Projets et Utilisateurs

Le système Nova est destiné à être accessible par tout utilisateur disposant des droits nécessaires. Ces droits définissent les actions qu’un utilisateur peut effectuer. Ce mécanisme d’authentification est assuré par  le Service Identity qui se base sur la génération de jetons. Avec Nova, on peut avoir les rôles suivants :

  • Administrateur : C’est le role par défaut pour les créateurs du projet, il permet d’ajouter des utilisateurs à un projet, gérer des images, lancer et terminer des instances.

Architecture du système

Openstack Compute est constitué d’un ensemble de modules qui interagissent entre eux afin de fournir un service stable et efficace.

  • Le Cloud Controller est le  module le plus important. Il permet d’orchestrer l’infrastructure globale et assure la coordination entre les différents composants.
  • Compute server c’est le composant qui assure les opérations de calcul et de traitement au sein du Cloud.
  • Object store offre de manière optionnelle un service de stockage de données.
  • Auth Manager est le bloc qui s’occupe de la gestion des droits et de privilèges.
  • Volume controller est le dispositif qui permet la sauvegarde des données nécessaire pour le bon fonctionnement du compute Server
  • API server  est la partie web services du Cloud

p

 Architectures d’installation

il existe différents modes de déploiement pour Nova :

  • Single node Tous les services ainsi que toutes les instances sont hébergés au sein du même serveur. Cette solution est très rarement utilisée, elle  permet uniquement d’effectuer des tests sur le Cloud pour des fins purement techniques.
  •  Two nodes Tous les services sont hébergés au sein d’un serveur Cloud controller Node, à l’exception du service Nova Compute qui est installé sur  un serveur dédié Compute Node.
  • Multiple nodes Un nœud supplémentaire sera ajouté à l’architecture précédente et qui va héberger les fichiers de configuration tels que nova.conf. D’autres services tels que le Volume Controller et le Network Controller peuvent être installés sur d’autres serveurs, ce qui va rendre l’infrastructure plus complexe.

   NOVA Compute

Nova est le projet  IAAS (Infrastructure as a Service) d’openstack. C’est l’equivalent des  solutions propriétaires Amazon EC2 et Rackspace cloud servers à la diffèrence près que celle-ci n’offrent pas la capacité d’exploiter les mécanismes de virtualisation du système d’exploitation host. Nova n’inclut pas un logiciel de virtualisation et permet d’exposer ses fonctionnalité à travers une interface Web.

La majorité des services de base de nova peuvent être déployés selon l’architecture Multi Nodes.  Le  Cloud controller communique avec le service Object Store via le protocole http (Hyper Text Transfer Protocol). Par cotre, il communique ave le reste des service (Scheduler, Network controller et Volume Controller) via AMQP (Advanced Message Queue Protocol).

Architecture Nova

Le projet Openstack est composé de plusieurs sous projets indépendants mais qui peuvent être installés ensemble selon les besoins du Cloud : OpenStack Compute, OpenStack Object Storage, et OpenStack Image Store. Dans le cadre de notre projet, nous allons effectuer une installation single Node Nova Compute Cloud.

p2

Installation

Environnement technique

  • Matériel: une installation stable du cloud Openstack nécessite une machine avec une configuration minimale
  • Système d’exploitation: Openstack fonctionne actuellement sur plusieurs distribution linux telles que Ubuntu, redHate et Centos. Grace aux outils de virtualisation (virtualbox), nous avons eu la possibilité de tester l’installation sur centos et Ubuntu et nous avons trouvé qu’avec Ubuntu, le cloud est plus simple à mettre en place pour des raisons de compatibilité.
  • Configuration réseau: Une carte réseau 1000 Mbps est recommandée, surtout pour une installation en Multi Node.
  • Base de donnée: pour Openstack Compute, on peut utiliser une base de donnée Mysql ou PostgreSQL. Dans notre projet, nous avons choisi d’installer Mysql.
  • Permissions: we can install OpenStack Compute either as root or as a user with sudo permissions if configuring the sudoers file to enable all the permissions.
  • Privilèges : Afin de pouvoir effectuer toutes les étapes d’installation, nous devons disposer des droits d’administrateur, ou avec la commande Sudo après avoir configuré le fichier sudoers.file.

Installation sur Centos 6.1 (voir ce  lien )

Le guide d’installation offert par la communauté comporte des erreurs. Par exemple,le script de préparation de la base de données comporte des erreurs au niveau de  l’attribution des privilèges.Pour résoudre ce problème, des corrections ont été apportées au niveau du mot de passe de l’administrateur. Cette commande :

echo "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'$h' IDENTIFIED BY '$DB_PASS';" | mysql -uroot -p$DB_PASS mysql

doit être remplacée par:

echo "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'$h' IDENTIFIED BY '$DB_PASS';" | mysql -uroot -p$PWD mysql.
  • Certains services comme le RabbitMq et nova Scheduler présentent souvent des conflits, par conséquent,   on doit vérifier leur état de fonctionnement régulièrement.

Au vue des problèmes de stabilité rencontrés sur centos 6.1, nous avons installé Openstack sur Ubuntu 12.4.

Installation sur Ubuntu 12.4 (voir ce  Lien)

Cette installation permet d’obtenir une Cloud stable, mais présente toutefois quelques inconvénients tels que ses limites en terme de mémoire Ram, de cores et d’espace mémoire pour le stockage, car ces caractéristiques dépendent essentiellement de la configuration matérielle du système host [Ref 4].

Une deuxième alternative consiste à utiliser trystack.

Trystack Sandbox

Trystack est une API Openstack, elle offre aux développeurs et aux utilisateurs l’opportunité de tester Openstack sur une instastructure préinstallée. Avec Trystack les utilisateurs peuvent avoir leur propre instance pendant 24 heures. La première infrastrure Trystack comprenait 156 cores, 1040 GB de mémoires et 59.1 TB de mémoire disk pour le stockage. Mais il présente quelques limites comme la durée de vie de l’instance (24 heures), l’impossibilité de charger nos propres images et il n’offre pas un grand nombre d’images. Après s’être familiarisé avec le fonctionnement d’OpenStack, nous nous proposons de développer une application mobile qui va remplacer l’api trystack [Ref1].

p4

Application Mobile

Analyse des besoins

Dans cette partie nous allons énumérer les acteurs ainsi que les différents besoins fonctionnels et non fonctionnels.

Acteurs

  • L’acteur principal dans l’application est l’utilisateur mobile (the tracked user).

Besoins fonctionnels

  • Authentification Pour accéder aux différentes fonctionnalités, l’utilisateur doit entrer son login et mot de passe.
  • Image Service [Ref 2]

– Afficher les images publiques disponibles

– créer une nouvelle image à partir d’une image existante

– Lister les image créées.

– Mettre à jour une image

– Supprimer une image

– Api service

– Afficher les informations sur une API

– Afficher les extensions disponibles

  • Server service operation

– Lister les serveurs (ID,name,links)

– Créer un nouveau serveur

– Afficher les informations détaillées sur le serveur

–  Mettre à jour le nom du serveur et/ou mot de passe

– Arrêter le serveur

– Redemmarer le serveur

– Afficher la liste des Flavors disponibles

  • Key pairs service operations

– Créer un key pair

– Supprimer un key pair

  • Security groups operations

– Créer un security group

– Supprimer un security group

Besoins non fonctionnels

Les Besoins non fonctionnels sont déterminants quant au succès de l’application.

  • Scalabilité l’application mobile doit être extensible et capable d’évoluer.
  • Adaptation Notre application mobile doit être capable de s’adapter aux caractéristiques techniques du mobile telles que la qualité et la résolution de l’écran, la bande de fréquences de fonctionnement, le type du réseau (2G, 3G, 4G).
  • Interface simple et ergonomique
  • L’interface graphique doit permettre à l’utilisateur d’accéder facilement aux fonctionnalité voulues sans avoir à cliquer plusieurs fois, le menu des services doit être centré au milieu de la page.

Réalisation de l’Application mobile

Dans cette section nous allons représenter les différentes étapes de réalisation de l’application mobile qui va intégrer les web services Trystack afin de permettre à l’utilisateur de gérer son Cloud à partir de son téléphone mobile BlackBerry.

Blackberry java plug-in for Eclipse v1.5 [Ref 3]

Le BlackBerry Java Plug-in for Eclipse v1.5  est un plug-in qui permet de développer une application Blackberry. Ce plug-in offre une mise à jour Blackberry Java SDK v7.0 pour Eclipse.

P5

BlackBerry Java Plug-in for Eclipse v1.5

Ce plug-in offre également un simulateur qui permet de tester la capacité de l’application à interagir avec les periphériques du téléphone tels que l’écran, les boutons et les périphériques d’entrée/sortie.

Réalisation

Afin d’utiliser les Web Services [Ref 5], nous avons installé un client Rest.

  • Exemple d’authentification

Pour l’authentification, nous devons récupérer le token associé à l’utilisateur avec la Requête http suivante:

requete auth

 

Par conséquence nous recevons la réponse suivante avec le token nécessaire (en jaune)

auth rep

 

  • Exemple d’affichage des images

L’affichage des images disponible s’obtient via la requête suivante en ajoutant l’attribut token obtenu à l’authentification

imagelist req

 

 

En réponse, nous recevons la liste des images sous un format json que nous allons parser dans l’application BlackBerry.

imagelist rep

 

Dans cette partie nous allons présenter les différentes interfaces utilisateur réalisées dans l’application.

P7

Authentication interface

Pour accéder à l’application, l’utilisateur doit s’authentifier avec un login et un mot de passe.

P10

Image menu interface

Le menu principal apparait avec les services offerts et un bouton pour quitter.

P12

Image details interface

Si l’utilisateur appui sur le bouton image, il sera redirigé vers le menu image qui permet de créer, afficher et supprimer une image.

P14

Key Pair menu interface

Si l’utilisateur clique sur le bouton Key Pair du menu principal, il sera redirigé vers le menu de gestion des Key Pair. Chaque Key Pair est affiché avec le nom et le ID, l’utilisateur peut également créer un Key Pair ou supprimer un Key Pair.

Grace au package HttpConnection offert par le RIM BlackBerry (Research In Motion), nous avons pu intégré les Web Services de l’Api trystrack dans notre application BlackBerry. Les mêmes services auraient pu être offert par le Cloud Openstack installé en local en remplacant l’URI http://nova-api.trystack.org/  par http://127.0.0.1/.

 

 [Ref 1] Trystack Openstack Dashboard    https://trystack.org

[Ref 2] HP Cloud Compute Supplement http://api-docs.hpcloud.com

[Ref 3] Blackberry developper guide http://docs.blackberry.com

[Ref 4]documentation Ubuntu pour Openstack http://doc.ubuntu-fr.org/openstack

[Ref 5] Web Services Trystack  http://docs.openstack.org/api/openstack-compute/2/content/Request_Response_Types-d1e459.html

 

Written by

avril 26th, 2013 at 1:54 pm

Posted in INTES'13

Tagged with , , ,

Sujet de veille technologique INTES 2013

without comments

sujet 1 OpenStack

«OpenStack est un logiciel libre qui permet la construction de cloud privé et public. OpenStack est aussi une communauté et un projet en plus d’un logiciel qui a pour but d’aider les organisations à mettre en oeuvre un système de serveur et de stockage virtuel.» – http://doc.ubuntu-fr.org/openstack

Historique, état de l’art, objectifs, liens actifs, …

sujet 2 Cloud Foundry

Cloud Foundry est une solution de Platform as a Service (PaaS) libre développée par VMware.

Historique, état de l’art, objectifs, liens actifs, …

sujet 3 Mozilla TowTruck, développement web collaboratif temps-réel

«Les Mozilla Labs sortent un nouveau jouet assez sympathique en JavaScript : un service de collaboration en temps réel sur le développement de sites et applications Web. Il offre l’édition collaborative de formulaires et de texte, le partage du pointeur à l’écran, la navigation synchronisée, un outil de messagerie instantanée et de discussion audio.» – http://linuxfr.org/news/towtruck-developpement-web-collaboratif-temps-reel
Documentation, et particulièrement utilisation dans l’enseignement à distance.

Written by

avril 24th, 2013 at 10:31 am

Posted in INTES'13