samedi 21 juillet 2012

Atelier Afrinic IPv6 à N'Djamena

Aujourd'hui c'est le dernier jour de la formation INRM + IPv6 à N'Djamena. J'ai pensé qu'il serait bien de partager avec mes chers lecteurs quelques photos souvenir de cet événement pendant qu'on est en pause.

De gauche à droite: Dr M
Une vue des invités à la cérémonie d'ouverture

Le SG du Ministère des Postes et Tic pendant la cérémonie d'ouverture

Une vue des participants à l'atelier



Le représentant d'un sponsor (SkyVision) présentant leur produits

Réunion annuelle de l'association des domaines nationaux de premier niveau africains



Sur Internet, chaque pays dispose d'une extension qui permet d'associer un site web au pays donné. On appelle une telle extension le "domaine de premier niveau" du pays en question, soit en anglais "ccTLD" pour "Country Code Top Level Domain".
En Afrique, AfTLD est l'organisation qui regroupe tous les ccTLD africains. Cette année, le réunion annuelle se tiendra en Zambie du 23 au 27 juillet prochain.

Plus de détails sur le site officiel de l'organisation.

Reférences:

Internet aux mains de la maison blanche en cas de crise?

 Voici un article qui nous fait replace sous les projeteurs le besoin d'avoir un Internet vraiment libre, neutre et ouvert:

http://www.egaliteetreconciliation.fr/En-cas-de-crise-Barack-Obama-aura-les-pleins-pouvoirs-sur-Internet-12935.html

Bonne lecture!

vendredi 20 juillet 2012

Formation de formateurs sur le thème "Entreprendre avec les logiciels libres en Afrique"

Le programme ict@innovation (http://www.ict-innovation.fossfa.net) lance un Appel à Candidature pour participer à la formation de formateurs sur le thème "Entreprendre avec les logiciels libres en Afrique". Cette formation aura lieu au Sénégal en Septembre 2012.

Voici le détail de l'appel à candidature:

Formateurs Futurs pour "Entreprendre avec les logiciels libres en Afrique" en Afrique de l'Ouest.

Délai de candidature 22 Juillet
  • Êtes-vous intéressés à établir une entreprise prospère basée sur les logiciels libres et à aider les autres à faire de même? 
  • Avez-vous une solide expérience dans les affaires et les logiciels libres?
  • Avez-vous des expériences dans la formation des autres, et/ou faites-vous partie d'une institution de formation ?
Alors réagissez pour faire partie d'un passionnant programme de formation en « entreprendre avec les logiciels libres en Afrique ».

L'appel des participants pour la formation de formateurs est désormais ouvert à l'adresse:
http://www.ict-innovation.fossfa.net/AppelSenegal.

Le programme tic@innovation, un partenariat entre FOSSFA et GIZ, est à la recherche d'experts ouest-africains et d'institutions qui souhaiteraint devenir des formateurs qualifiés dans le domaine de la mise en place d'affaires basées sur les logiciels libres.

Vous avez la possibilité de:

  • bien approfondir vos connaissances en entreprendre avec les logiciels libres en Afrique 
  • devenir un formateur sur ce thème et mettre en place des formations en "Entreprendre avec les Logiciels Libres en Afrique" comme une source de revenue
  • d'intégrer cette formation dans le programme de formation de votre institution
  • faire partie d'une communauté passionnante d'experts Africains de logiciels libres et d'hommes d'affaires
Comme tic@innovation a mis en œuvre des Formations de Formateurs sur les modèles d'entreprises Africains basées sur les logiciels libres dans divers pays de l'Afrique de l'Est et du Sud avec succès, tic@innovation va maintenant mettre en œuvre ces formations en Afrique occidentale aussi. 
La formation de l'Afrique de l'Ouest sera composée d'une phase présentielle à temps plein, phase de deux semaines au Sénégal en Septembre 2012, et accompagnée  par une formation en ligne à temps partiel de 4 semaines.

Le texte intégral de l'appel pour les participants, y compris des instructions sur la façon de postuler, peuvent être trouvés en ligne à l'adresse http://www.ict-innovation.fossfa.net/AppelSenegal.

mercredi 18 juillet 2012

Premier atelier IPv6 au Tchad

A la demande de l'Agence Universitaire de la Francophonie et avec l'appui du cabinet HTCE, AfriNIC, le régistre d'adresses IP pour l'Afrique organise du 18 au 21 juillet 2012.
Le but de cet atelier:
  • informer la communauté internet tchadienne
    • des problèmes liés au tarissement des pools d'adresses IPv4, tant au niveau d'IANA que des régistres régionaux (APNIC et RIPE/NCC entre autres),
    •  des challenges associés à l'évolution des besoins et des usages/applications sur Internet (Internet des objets, qualité de service, optimisation des tables de routage et donc stabilité d'Internet, etc),
    • des possibilités offerts par le registre en tant que facilitateur: formations, services particuliers (allocations d'adresses IP(v4,v6), de numéro AS (4  octets uniquement depuis peu), RPKI, AnyCast, etc)
  • former les ingénieurs tchadiens à la conception, la planification et l'implémentation de réseaux IPv6
  • encourager la participation tchadienne dans la communauté internet africaine.
L'atelier a été ouvert ce jour par le secrétaire général du ministère des postes et des TIC du Tchad devant  un parterre de personnalités tel que le directeur de l'office national de radio et télévision du Tchad, le directeur technique de l'office tchadien de régulation des télécommunications, de nombreux recteurs ou directeurs généraux d'établissements d'enseignement supérieur.
Il est important de signaler que cet évènement a été sponsorisé par l'ONRTV et l'OTRT.
Cet atelier est une première avec en vue de marquer le début d'une série d'ateliers nationaux.

samedi 2 avril 2011

Virtualisation en français facile: les conteneurs

Bien que cette approche de la virtualisation soit possible non seulement sur les systèmes Linux mais aussi sur des OS de la famille Unix et BSD, je ne ferai dans cet article que référence à Linux que je connais mieux.

Cette technique de virtualisation repose sur le cloisonnement des applications et des ressources qui leur sont affectées constituant ainsi de sorte de machines virtuelles indépendantes et isolées les unes des autres.
Pour comprendre ce qui se passe sous le capot, je vais décrire ici une approche d'isolation d'applications utilisée.

Sur un système Linux, chaque programme qui s'exécute est représentée en mémoire sous la forme d'une structure de donnée appellé PCB (Process Control Block) qui contient entre autres, les informations suivantes:
  • l'état du programme (en cours d'exécution, en attente d'une lecture/écriture mémoire ou disque, en veille, etc),
  • le contenu des régistres du processeur concernant ce programme (processus),
  • les limites de la mémoire attribué à ce processus,
  • la liste des périphériques d'entrée/sortie alloués au processus,
  • la liste des fichiers ouverts attribué à ce processus (n'oubliez pas ce que je vous ai dit dans un précédent article : sur linux, tout est vue suivant l'abstration de fichiers),
  • etc
Ces informations définissent la « vue » qu'à le processus du système d'exploitation dans lequel il tourne.

De l'autre côté, les processus sous linux sont organisés sous forme d'arbre, les noeuds fils représentant des processus fils et les noeuds parents les processus parents; le processus initial est crée juste à la fin du démarrage du système d'exploitation (en fin d'article, j'indique des ressources expliquant la séquence de démarrage d'un système Linux).

Un processus fils est crée par clonage du processus parent et se voit ensuite attribuer un ID (grosso modo). Il hérite donc de la « vue » de son parent (et donc voit l'environnement dans lequel il s'exécute de la même façon que son parent). Cette propriété signifie que, à moins qu'on attribue à ce processus un code différent, des périphériques d' E/S, des limitations d'accès mémoire et une liste de fichiers différentes, ce processus fils s'exécutera exactement dans les mêmes conditions que le processus qui l'a crée (son parent).

Une machine virtuelle sera alors constituée d'un processus parent (équivalent au processus initial appelé init, qui est le père de tous les processus sous les systèmes linux) qui se chargera de démarrer l'ensemble des applications constituant la machine virtuelle (un serveur web, un shell, un programme de gestion des connexions, etc).
Sur la figure précédente, chaque "isolateur" correspond à un processus init-like tel qu'exprimé par la formule:
machine virtuelle = processus (isolateur) + ses processus descendants fournissant les services effectifs de la machine virtuelle.

En fonction des besoins, cette technique peut s'accompagner de la mise en place d'un réseau virtuelle (on verra dans l'atelier de ce soir comment mettre ceci en oeuvre), des disques virtuels (de simples fichiers vus par le conteneur comme des disques à l'image de manipulation qu'on peut faire avec un "mount -o loop"), etc, constituant ainsi tous les composants nécessaires au fonctionnement de la machine virtuelle.

Sources:
[1] http://fr.wikipedia.org/wiki/Virtualisation
[2] http://fr.wikipedia.org/wiki/Linux-VServer
[3] http://fr.wikipedia.org/wiki/Chroot
[4] http://fr.wikipedia.org/wiki/BSD_Jail
[5] http://fr.wikipedia.org/wiki/OpenVZ
[6] http://veillard.com/Talks/SL09LinuxVirt.pdf

jeudi 31 mars 2011

Virtualisation en français facile

Introduction
Comme promis, cet article, le premier d'une série d' articles sur la virtualisation, a pour but d'introduire mon intervention sur le salon irc où nous animons une série de présentation sur divers sujet recouvrant l'informatique du point de vue du logiciel libre et open source.

Définition
Le terme "virtuel" fait référence à quelque chose qui n'est pas réel, physique. En informatique, on appliquera la notion de virtualisation principalement au matériel. Ainsi, virtualiser un matériel donné signifie "simuler" ce matériel par des moyens logiciels. On parlera alors de "machine virtuelle" ou d'"environnement virtuel" (Virtual Environment) pour faire référence au résultat de cette simulation.

Intérêt ( source [1] )

Les raisons qui poussent à l'utilisation de la virtualisation sont nombreuses et relèvent des mobiles autant académiques qu' industriels :
  • utilisation optimale des ressources d'un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives),
  • installation, déploiement et migration facile des machines virtuelles d'une machine physique à une autre, notamment dans le contexte d'une mise en production à partir d'un environnement de qualification ou de pré-production, livraison facilitée,
  • économie sur le matériel par mutualisation (consommation électrique, entretien physique, surveillance, support, compatibilité matérielle, etc.)
  • installation, tests, développements, cassage et possibilité de recommencer sans casser le système d'exploitation hôte
  • sécurisation et/ou isolation d'un réseau (cassage des systèmes d'exploitation virtuels, mais pas des systèmes d'exploitation hôtes qui sont invisibles pour l'attaquant, tests d'architectures applicatives et réseau)
  • isolation des différents utilisateurs simultanés d'une même machine (utilisation de type site central)
  • allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,
  • diminution des risques liés au dimensionnement des serveurs lors de la définition de l'architecture d'une application, l'ajout de puissance (nouveau serveur etc) étant alors transparent.
Principe
Sur un ordinateur normal, on retrouve toujours trois grandes parties:
  • le matériel qui consiste en des éléments électroniques et mécaniques et qui constitue la partie visible de l'ordinateur,
  • le système d'exploitation qui permet de piloter le matériel, d'optimiser, de gérer et d'assurer (dans le sens fiabilité et sécurité) l'accès au matériel (disques durs, lecteurs CD/disquettes, etc) par la troisième couche,
  • une troisième couche qui concerne l'ensemble des applications installées dans ce système d'exploitation et qui sont les principaux points d'interaction avec l'utilisateur. Cette couche est aussi désigné par l'expression "espace utilisateur" en opposition à l'"espace noyau" (qui concerne principalement l'OS).

Grâce à cette organisation, les applications métiers n'ont pas directement accès au matériel, mais plutôt y accèdent via une interface logicielle bien définie (on parle d'API pour Application Programming Interface) proposée par le noyau du système d'exploitation. Cela présente de nombreux avantages comme la simplification de l'écriture des applications métiers ou une meilleure utilisation/protection/répartition des ressources matérielles entre autres choses.

Mais en y réfléchissant de plus près, on pourrait constater qu' en utilisant les différentes interfaces proposée par cette répartition des couches fonctionnelles, on pourrait ainsi tromper les couches supérieures:
  • en mettant un logiciel (hyperviseur) entre le matériel et l'OS, on pourrait présenter à celui-ci, un matériel ayant des caractéristiques différentes des caractéristiques réelles, à charge à ce logiciel d'assurer la conversion. On parle ici d'hyperviseur de type 1.
  • en mettant un logiciel (hyperviseur) entre l'OS et les applications, on pourrait présenter à un autre OS un matériel différent du matériel réel et installer dans ce dernier OS différentes applications. L'ensemble OS + applications + hyperviseur étant vu par l'OS de base comme de simples applications. On parle dans ce cas d'hyperviseur de type 2,
  • toujours en restant entre le système d'exploitation et la couche applicative, on pourrait éviter le niveau supplémentaire d'abstraction proposé par la solution précédente et simplement faire croire aux applications qu'elles tournent dans un OS différent de l'OS réel. On parle d'émulateurs dans ce cas;
  • il existe une troisième catégorie qui est en quelque sorte une variante de la catégorie des machines virtuelles que nous avons appelée "émulateurs". Ce type de machines virtuelles est courant principalement dans les systèmes unix et linux. Il s'agit d'environnement chrooté ou de conteneurs. En effet, dans les systèmes Linux et Unix, tout est fichier, de sorte que même les différentes ressources matérielles ( interfaces réseaux, disques durs, mémoire RAM, etc) sont utilisées suivant cette abstraction. Il est alors possible de rediriger un certain nombre de ressources comme celles-ci vers une application (au sens unix/linux du terme) donnée.
Dans les articles suivants, on verra chaque catégorie plus en détails.

[1] Virtualisation sur wikipedia