Archives de catégorie : iT

Deep Learning : définition, concept et usages potentiels

Nous avons vu que le Machine Learning est un domaine de l’intelligence artificielle qui vise à étudier comment des algorithmes peuvent apprendre en étudiant des exemples.

Le Deep Learning est une méthode particulière d’apprentissage, qui ouvre de nouvelles possibilités.

Des exemples connus et visibles tirant partie de ces procédés de Deep Learning sont AlphaGo qui s’est imposé face aux champions du jeu de Go, DeepDream de Google ou même Watson d’IBM.

Afin de qualifier le Deep Learning un rapide rappel sur le Machine Learning s’impose.

Le Machine Learning

Le Machine Learning vise à entraîner un algorithme en se basant sur des exemples, avec pour objectif la construction d’un modèle prédictif.

Le Machine Learning vise à entraîner un algorithme en se basant sur des exemples, avec pour objectif la construction d’un modèle prédictif.

Le but est d’être capable de déterminer ce qui lie une sortie à une entrée.

Nous avons pris un exemple simple basé sur les données suivantes :

Notre objectif était de déterminer la fonction ou l’algorithme qui transforme les nombres en entrées en ceux en sortie.

Pour cela le Machine Learning va étudier les exemples fournis, puis essayer de déterminer l’algorithme de transformation. Cette phase s’appelle l’apprentissage.

C’est là que l’algorithme se sert des exemples fournis pour trouver un lien entre les données en sorties et les données en entrées. Ainsi il sera capable, peu importe le nombre en entrée, de déterminer le nombre en sortie.

Pour parvenir à cet objectif, l’algorithme va définir une fonction f(x)=aX, et faire varier a, jusqu’à ce qu’il trouve la bonne valeur. “a” est une caractéristique permettant de déterminer la sortie en fonction de l’entrée. Ici c’est a =2, et donc la fonction liant les entrées aux sortie est Y = f(x) = 2x.

Ensuite il sera capable de déterminer quelle sera la sortie (Y) pour n’importe quelle valeur de X, même si cette valeur n’est pas présente dans les exemples utilisés pour l’apprentissage.

Cette deuxième phase, c’est la prédiction. Simplement, l’algorithme est maintenant capable de déterminer que si X = 5, Y= 10.

Dans notre article précédent, nous nous en étions arrêté là. Maintenant comment modéliser des problématiques plus compliquées avec des dizaines de caractéristiques comme “a” différentes ?

Les réseaux de neurones

Prenons un exemple concret et cherchons à construire un algorithme qui exprime le temps qu’il a fait dans une journée (beau temps ou mauvais temps).

Pour cela, il faut lui fournir un certain nombre de paramètres en entrée :

  • La température
  • L’hygrométrie
  • La pression atmosphérique
  • La vitesse du vent

Et lui donner des exemples pour s’entraîner.

Evidemment plus le nombre d’exemple sera grand et varié, plus l’entraînement permettra d’arriver à un modèle précis et pertinent. Ici il faudrait un grand nombre de cas exposés pour être capable de généraliser la subjectivité liée au beau temps ou au mauvais temps. Pour la simplicité de l’exemple, nous nous en tiendrons à ces quelques valeurs.

Au final, nous aurons un algorithme qui pourra déterminer pour n’importe quel ensemble de ces entrées (Température, pression, hygrométrie, vitesse du vent) s’il fait beau ou non.

Pour modéliser et appréhender cette relation complexe, une simple fonction ne suffit pas, nous avons besoin d’un réseau de neurones.

Ce réseau de neurones aura deux couches (et sera donc extrêmement simple) :

L’intérêt du réseau de neurones est de modéliser l’impact des différents facteurs et leur relation entre eux. Lorsque la complexité des facteurs est grande, plutôt que de les traiter tous ensemble, on décompose l’analyse en étapes, les plus petites possibles.

Chaque étape est représentée par un neurone. Un neurone reçoit un certain nombre d’informations, chacune pondérée (p), et renvoi une réponse binaire 0 ou 1.

Ensuite cette réponse va venir alimenter le neurone suivant dans le réseau, qui lui-même produira une réponse binaire, et ainsi de suite jusqu’au dernier neurone du réseau.

La sortie du dernier neurone du réseau représente la réponse que l’on cherche à obtenir.

Pour affiner ce modèle, on joue sur la pondération de chaque entrée et le seuil qui déclenche la sortie 0 ou la sortie 1.

Autrement dit, un neurone : est une fonction mathématique qui met en relation une entrée X et une sortie Y. L’importance de chaque critère d’entrée est pondéré par un coefficient “p”. Avec le seuil “s”, d’activation de la sortie (qui va définir à quel moment la sortie va afficher 0 ou 1, soleil ou pluie ici), ce sont les deux variables qui vont pouvoir évoluer pour affiner et donc entraîner notre réseau de neurone pendant la phase d’apprentissage.

Le réseau de neurones permet donc de traiter des cas complexes avec de multiples entrées. Toutefois que se passe t’il lorsque les entrées sont encore plus nombreuses ?

Machine Learning et concepts abstraits

Dans le cas d’une image où l’objectif est d’identifier automatiquement ce qu’elle représente, les entrées seraient les pixels. Une image de 300x300px, représente 90 000 pixels et donc 90 000 valeurs en entrées potentielles. Tout traiter dans un réseau de neurones traditionnel serait bien trop complexe, et ce dernier serait incapable d’intégrer les concepts nécessaires à l’abstraction de l’image pour en déduire quoi que ce soit.

Intuitivement, nous serions tentés de penser qu’il faut traiter l’image par groupe de pixels pour faire ressortir des arbres, des constructions, des personnages etc…

C’est exactement ce qu’il manque pour pouvoir traiter ces images : des caractéristiques représentatives qui vont représenter au final, les entrées à traiter par le réseau de neurones.

Dans ce cas un algorithme tiers (non lié au réseau de neurone ou au machine learning) identifiera des caractéristiques prédéfinies.

Par exemple, si l’on veut que l’algorithme soit capable de distinguer sur des photos les motos des voitures, les caractéristiques à identifier en amont seraient

  • Nombre de roues
  • Nombres de vitres
  • La forme
  • Présence d’un casque…

Une fois ces caractéristiques identifiées il “suffit” de les passer au réseau de neurones qui, comme pour l’exemple de la météo, les traitera à partir d’exemples et identifiera une logique pour distinguer moto et voitures.

Cette solution nous laisse néanmoins avec deux problèmes :

  • Les performances de tels algorithmes sont loin d’être parfaites (15% d’erreurs)
  • Les caractéristiques à identifier dépendent de l’expertise humaine. Que faire alors dans une situation où les caractéristiques distinctives d’une situation ne sont pas identifiables par l’homme ? Autrement dit lorsqu’on ne sait pas déterminer intuitivement le lien entre la sortie et l’entrée ?

Le Deep Learning

Le Deep Learning construit lui-même ses caractéristiques d’analyse.

Ce qui rend le deep learning différent des méthodes de machine learning traditionnelles c’est que lors d’analyses complexes, les caractéristiques essentielles du traitement ne seront plus identifiées par un traitement humain dans algorithme préalable, mais directement par l’algorithme de Deep Learning.

En effet, si le réseau de neurones est suffisamment bien entraîné, il sera en mesure deconstruire lui-même ces caractéristiques, et sera donc capable d’identifier ce qu’il y a sur une image. Dans notre cas une moto ou une voiture, sans lui avoir transmis au préalable des informations sur ce qui caractérise une voiture ou une moto.

Pour ce faire, il construira à partir des exemples à disposition, ses propres caractéristiques (parfois similaires à celles qu’un humain aurait identifiées : Nombre de roues, Vitres, forme, casque…) et s’en servira pour analyser l’image et définir s’il s’agit d’une moto ou d’une voiture.

Pour parvenir à cela on utilisera un réseau de neurone profond (plusieurs couches), auquel, une fois entraîné, on passera directement l’image en entrée.

Pour résumer, lorsque les méthodes traditionnelles d’analyse d’images, résument au préalable l’image selon des caractéristiques définies par des experts, le Deep Learning construit lui-même ses caractéristiques d’analyse.

Le Deep Learning permet donc implicitement de répondre à des questions du type “que peut on déduire de ces données ?” et ainsi décrire des caractéristiques parfois cachées ou des relations entre des données souvent impossibles à identifier pour l’homme.

Nous disions plus tôt que passer des images sans les résumer à des réseaux de neurones serait trop complexe, et c’était le cas jusqu’en 2012 environ.

Même si leur origine remonte à aux années 90 avec Yann Le Cun, c’est donc au début des années 2010 avec les travaux de Geoffrey Hinton, que les algorithmes de Deep Learning ont commencé à démontrer leur efficacité.

Qu’est ce qui a changé ?

Cela est rendu possible par le partage de bases de données d’images catégories, qui permettent d’entraîner ces réseaux de neurones

Les architectures des réseaux de neurones se sont améliorés et la puissance de calcul disponible a grimpée en flèche (grâce au Cloud notamment).

Mais la plus grande révolution, c’est la disponibilité des données. En effet, le grand enjeu pour le Deep Learning (encore plus que pour le machine learning) reste la capacité à être correctement entraîné et à avoir à disposition un nombre virtuellement infini d’exemples pour parfaire le modèle à construire.

Dans l’exemple précédent, pour qu’un tel réseau de Deep Learning fonctionne, il faut un nombre très élevé d’exemples de photos catégorisées représentant des voitures et des motos.

Cela est rendu possible par le partage de bases de données d’images catégories, qui permettent d’entraîner ces réseaux de neurones (Image Net, par exemple).

Et concrètement ?

Plus ambitieux, le Deep Learning permet d’établir des relations et d’identifier des causes qui restent indétectable par l’homme.

Maintenant que le concept de Deep Learning est précisé, qu’est-ce que cela peut apporter ?

Evidemment, en allant dans le sens de l’exemple, analyser et décrire des images ou des vidéos pour faciliter des études ou automatiser des actions. Par exemple, pour un service client, être capable de préqualifier un défaut sur un produit, à partir de l’analyse automatique de la photo envoyée par le client insatisfait, en améliorant drastiquement le délai de traitement de sa demande.

Plus ambitieux, le Deep Learning permet d’établir des relations et d’identifier des causes qui restent indétectable par l’homme. On peut penser à un système de détection de fraudes avancées dans des contextes Big Data bancaires ou une optimisation de l’infrastructure de son informatique en fonction d’une demande qui serait anticipée par un réseau Deep Learning traitant en temps réel les actions des utilisateurs.

Enfin, le plus intriguant (et le plus étonnant), reste la capacité à transformer les réseaux Deep Learning en modèle génératif.

Le concept est simple : une fois le modèle entraîné (et donc les caractéristiques de traitement identifiées), on est en capacité d’inverser le processus en fournissant des entrées aux caractéristiques de traitement en sortie de réseau, pour obtenir une image originale.

Dans le cas de notre réseau qui permettait d’identifier motos et voitures, on peut imaginer lui fournir une information en entrée étant “Moto” et le voir créer des images originales de motos.

Une réponse à des pannes de créativité ou d’originalité dans le design des produits ?

Pour aller à la source, visitez https://www.tensorflow.org/ Un MOOC par Vincent Vanhoucke, Principal Scientist at Google Brain Team : https://www.udacity.com/course/deep-learning–ud730

Installation Nutanix Ce sur une station de travail

Résultat de recherche d'images pour "nutanix"

 

1 – Présentation de la solution

La plate-forme de virtualisation informatique Nutanix est une solution d’infrastructure convergente qui mutualise la puissance de calcul (serveur) et la puissance de stockage en un unique appareil intégré.

Nutanix a été conçu en mettant l’accent sur la simplicité, grâce aux mêmes principes et technologies utilisés par des innovateurs informatiques tels que Google, Facebook, ou Amazon.

La solution adapte ces principes et technologies pour les entreprises et les institutions.

La plate-forme Nutanix se présente comme une solution simple et performante comparée aux infrastructures de datacenters traditionnels :

  • Rentabilisation instantanée : déploiement en moins de 30 minutes
  • Pas de perturbation des opérations en cours
  • Fonctionne avec les composants existants, garantie des investissements déjà réalisés
  • Réduit le prix et la complexité du stockage
  • Facilement adaptable
  • Matériel non-propriétaire prêt à l’emploi
  • Fournit des capacités de stockage avancées pour les entreprises

La conception  modulable de la solution permet à votre organisation de démarrer avec des déploiements modestes  et de les développer au fur et à mesure selon vos besoins. Avec un seul appareil, vous pouvez réaliser de la petite opération jusqu’aux déploiements de grande envergure, en passant par des initiatives de virtualisation de postes, des tests et développements d’applications, des projets Big Data, et plus encore.

En outre, la plate-forme de virtualisation informatique Nutanix intègre des ressources serveur haute-performance et du stockage dans un appareil rack 2U économique. Il supprime ainsi la nécessité d’architectures de stockage en réseau tel que le SAN (Storage Area Network) ou le NAS (Network-Attached Storage). L’évolutivité et les performances dont bénéficient les plus grands et les plus efficaces datacenters du monde sont désormais disponibles pour les entreprises et organismes de toute taille.

2 – Les prérequis :

  • Intel Processor with VT-x support.
  • 32Go de ram. La CVM prend 16Go plus quelques GO pour la faire tourner. Il est possible de faire tourner la version CE (community edition) sur Workstation/Fusion avec 12Go par node (via un tweak)
  • 1 x 200Go SSD (tweak possible)
  • 1 x 500Go HDD
  • Intel NIC

Ma plateforme de test:

  • Gigabyte Ga-x79-UD3
  • Intel i7 3820
  • SSD Disk : Samsung PRO 850 250Go
  • HDD Disk : WD 3Tb 7200rpm Sata 6Gb HDD
  • RAM : 32GB
  • Configuration : Nutanix CE installé en version Single-Node sur Workstation de VmWare

3 – Inscription sur le site my.nutanix.com et téléchargement de la version CE.

Une fois inscris sur le site, il vous faudra télécharger la version CE. Ce fichier se nomme ce-2015.06.08-beta.img.gz. Une fois le fichier extrait il prendra le nom de ce-201x.xx.xx-beta.img. Chaque release porte un nom différent.

4 – Préparation de l’environnement de test

Si comme moi vous n’avez que votre station de travail comme laboratoire, il va falloir préparer cet environnement pour les besoins du test.

Commencer par identifier les disques durs qui vont vous servir pour ce test.

Dans mon cas, il s’agissait de c:\ d:\ et e:\.

J’ai préparé chaque disque dur en créant un répertoire Virtual-Machines\Nutanix à la racine.

C:\ pour l’iso

D:\ en tant que SSD

E:\ pour le stockage lent

Il faut ensuite copier le fichier image dans le répertoire de travail puis le renommer en flat-ce.vmdk ansi que créer un fichier ce.vmdk qui servira au boot de notre image.

Voici ce que vous devez mettre dans le fichier ce.vmdk :

# Disk DescriptorFile
version=4
encoding=”UTF-8″
CID=4470c879
parentCID=ffffffff
isNativeSnapshot=”no”
createType=”vmfs”
# Extent description
RW 14540800 VMFS “ce-flat.vmdk”
# The Disk Data Base
#DDB
ddb.adapterType = “lsilogic”
ddb.geometry.cylinders = “905”
ddb.geometry.heads = “255”
ddb.geometry.sectors = “63”
ddb.longContentID = “ac2a7619c0a01d87476fe8124470c879”
ddb.uuid = “60 00 C2 9b 69 2f c9 76-74 c4 07 9e 10 87 3b f9”
ddb.virtualHWVersion = “10”

Une fois le tout préparé, il ne reste plus qu’a créer la VM qui accueillera Nutanix.

  • 8 cores
  • 16Go
  • Intel Vt-X enable
  • Le premier disque le fichier que nous avons fait auparavant : ce.vmdk
  • Le second disque pointera dans le répertoire sur le disque D :
  • Le troisième disque pointera dans le répertoire sur le disque E :

 5 – Le lancement

Une fois votre VM démarrée, vous arrivez sur cette écran :

Tapez install et appuyez sur entré.

Si vous avez de la chance et possédez une bonne configuration les tests de la plateforme passerons et vous pourrez continuer l’installation, si ce n’est pas le cas, il va falloir faire un petit tweak pour que le système prenne en compte votre matériel.

Connectez vous sur l’image d’installation et faire un petit changement de configuration dans le format des disques détectés :

NCE (17)

Au lieu de taper ‘’ install ‘’, vous allez taper ‘’ root ‘’ avec le mot de passe ‘’ nutanix/4u ‘’

 Une fois connecter sur la VM, faire ;

  1. Fdisk –l
  2. Identifier le second disque (200go)
  3. Récupérer son nom (sdb pour mon cas)
  4. Executer “cat /sys/block/sda/queue/rotational” 0 pour le SSD et 1 pour le HDD
  5. Executer “echo 0 > /sys/block/sda/queue/rotational” pour changer la valeur de 1 to 0
  6. Vous pouvez relancer l’installation J

Une fois l’installation lancée, vous arrivez sur cet écran ;

NCE (19)

Choisir le clavier correspondant à votre matériel.

Ensuite il faut renseigner l’ip du host KVM et celle du CVM.

Libre à vous de choisir la plage d’adressage par rapport à votre infra.

Il est conseillé par exepérience de déchocher la case ‘’Create single-node cluser’’. On devra déclarer ce node en cluster à la fin de l installation.

Suivant puis installer.

NCE (21)

Une fois l’installation terminée, il va falloir manuellement créer le cluster (mono node)

NCE (25)

 6 – La création du cluster

 Se connecter en SSH sur le CVM et utiliser les identifiants suivant ;

User : nutanix

Pass : nutanix/4u

Taper la commande suivante : ‘’ cluster -s cvm_ip_address create ‘’

Remplacer cvm-ip-address par celle de votre CVM. Dans le cas de plusieurs nodes, il suffit de mettre les adresses des CVM séparées par une virgule.

Ensuite taper : ncli cluster add-to-name-servers servers=8.8.8.8

Faire un ping : ping 8.8.8.8 puis ping www.google.fr

7 – Se connecter à l’interface graphique

Se connecter sur l’interface PRISM à l’adresse de votre CVM
NCE (31)

Pour cela, ouvrez une page web et mettez l’addresse comme suit :

https://CVM_IP_Master:9440

Utilisez les identifiants suivants ;

Login : admin

Pass : admin

Cela vous permettra de reset le compte admin avec votre mot de passe.

Il faut impérativement que la VM communique avec votre passerelle réseaux car elle doit pouvoir se connecter sur le site communautaire de Nutanix. Vous devrez utiliser les identifiants créer pour la 3 étape de ce tutorial.
NCE (33)
NCE (34)

Si vous n’arrivez pas à vous connecter sur l’inerface c’est que votre machine virtuelle ne communique pas avec la passerelle. Il faudra troubleshooter la connexion soit sur l’hyperviseur soit dans les fichiers de conf de votre CVM.

Voici à quoi ressemble l’interface.

NCE (35)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tier3, Tier4… de quoi s’agit-il ?

Classification des différents tiers Datacenter

 

Il faut que l’usine tourne !   C’est la première responsabilité du DSI.

Chaque jour, de nombreuses entreprises se tournent vers le Cloud Computing et l’externalisation de leur SI. Véritable révolution dans la gestion etl’administration des services informatiques, le Cloud soulève également de réelles questions en matière de sécurité et de fiabilité. Le choix d’un fournisseur pour le Cloud comme pour l’infogérance de son Datacenter privé, prend tout son sens lorsqu’on s’intéresse aux différents tiers de datacenter, véritable échelle des niveaux de sécurité et de fiabilité offerts par ces centres de données.

Niveaux et tiers Datacenter

Définition des différents tiers de Datacenter:

Tier 1 : Un seul circuit électrique pour l’énergie et la distribution de refroidissement, sans composants redondants
Disponibilité : 99.67% – 28.8 heures d’interruption/an – Aucune redondance 

Tier 2 : Un seul circuit électrique pour l’énergie et la distribution de refroidissement, avec composants redondants
Disponibilité : 99.75% – 22 heures d’interruption/an – Redondance partielle

Tier 3 : Plusieurs circuits électriques pour l’énergie et la distribution de refroidissement (un seul actif), avec composants redondants
Disponibilité : 99.982% – 1.6 heures d’interruption/an – Redondance N+1

Tier 4 : Plusieurs circuits électriques pour l’énergie et la distribution de refroidissement, avec composants redondants actifs et supporte la tolérance de panne
Disponibilité : 99.995% – 0.8 heures d’interruption/an – Redondance 2N+1

Différences Tier 3 et Tier 4:

Les Datacenters de Tier 3 assurent une disponibilité de 99,98%, permettant de gérer des opérations de maintenance sans affecter la continuité des services des serveurs hébergés. Cependant, le Tier 3 n’inclut pas une redondance complète et distincte et ne sont donc pas à l’abri de coupures en cas d’incidents sur l’infrastructure.

Les Datacenters de Tier 4 représentent le plus haut niveau de garantie avec des taux de disponibilité de 99,99%. Cette certification assure une redondance complète des circuits électriques, des dispositifs de refroidissement et du matériel réseau et permet de garantir la complète disponibilité des services hébergés, même en cas de lourds incidents techniques.

Le choix d’un fournisseur Cloud

En fonction de la criticité des services qu’une entreprise souhaite externaliser, elle pourra faire le choix d’un datacenter de dernière génération, offrant une certification et des garanties pour la sérénité de ses données.

Le choix d’un fournisseur Cloud doit aller au-delà de la notoriété et des services proposés par celui-ci. Les tiers de datacenter permettent une vision claire et précise des niveaux de sécurité et de fiabilité que peuvent offrir ces derniers.

BIG DATA, VOUS NOUS EN AVEZ DEMANDÉ PLUS !

Datamart, data marketing, data warehouse, DMP, data intelligence, real time buidding… On vous en dit plus ! Le monde du Big Data est toujours en mutation, dans cet article nous appréhenderons de plus près les nouvelles notions qui ont vu le jour à travers ce phénomène, et ce pour mieux le comprendre.

Datawarehouse et Datamart

Tout d’abord, nous allons aborder avec vous les notions de Data warehouse et Datamart, qui sont deux notions de base dans le monde de la grosse donnée et qui vont plutôt de paires. Le terme data warehouse désigne littéralement en français « entrepôt de données » (warehouse = entrepôt en anglais) ou alors communément appelé « base de données décisionnelle » pour l’entreprise. Il représente une base de données qui sert à rassembler, stocker et classer les données numériques. Aussi, le data warehouse est mis à jour. Vous l’aurez compris, le data warehouse sert de base de données décisionnelle à l’entreprise, qui en y regroupant toutes les informations qu’elle possède de manière ordonnée, elle se constitue une sorte de référentiel qui lui permet de prendre de meilleures décisions. Logique. Ceci, comme nous l’avons vu dans l’article précèdent, rentre dans le cadre de l’optimisation des informations et des actions. En effet, à partir de ces données, l’outil fournira des statistiques et rapports utiles et pertinents.

Sans titre

Comme représenté sur le schéma ci-dessus, l’origine des données contenues dans le data warehouse est diverse étant donné que les applications de l’entreprise sont multiples, telles que le CRM ou l’ERP. Le but y est donc de consolider toutes ces informations ensemble de manière cohérente. Le créateur du concept de Data Warehouse est Bill Inmon, et le définit comme « une collection de données thématiques, intégrées, non volatiles et historiées pour la prise de décisions. »

On confond souvent data warehouse et datamart, car le termeDatamart, -littéralement magasin de données en français- désigne un sous-ensemble du data warehouse contenant les données ciblées du data warehouse pour un secteur particulier de l’entreprise. Un datamart peut par exemple contenir des données concernant un département, un service ou une gamme de produits par exemple. On parle de DataMart Marketing, DataMart Commercial … Et ces différents datamarts constituent le data warehouse.

Sans titre2

Ces deux notions servent donc à l’informatique décisionnelle et le pilotage de l’activité de l’entreprise.

Nouvelles activités liées au management de données

Pour commencer, le Data Management Plateforme est en quelque sorte un prise de conscience des données et du Big data par les entreprises. Il s’agit de collecter tout type de données autour d’une personne (client) afin de proposer une offre de produit ou service personnalisé. Cela se résume à capitaliser les informations collectées en ligne ou non, sur le client. Ces données sont la plupart du temps analysées afin de déterminer le profil de l’utilisateur. Ensuite, elles sont classées selon différents critères établis par l’entreprise, et peuvent être croisées avec d’autres bases de données afin d’obtenir des informations plus fines. De plus, une DMP, de par sa connaissance d’une personne –i.e. ses informations personnelles et ses goûts-peut atteindre une autre personne qui lui ressemble par l’analyse de cookie. Une autre personne fortement susceptible de devenir cliente donc. La DMP permettra également à une entreprise de suivre les performances de ses campagnes. Un outil crucial, le projet big data est mis en place dans près de 64% des entreprises interrogées en 2014 par le cabinet de conseil et de recherche américain Gartner. Comme nous l’avons étayé dans l’article précédent, la capitalisation des données est un enjeu important pour les entreprises qui optimisent ainsi leur travail de prospection, de personnalisation et de fidélisation.

Ceci nous mène à aborder les nouveaux secteurs métiers liés au Big data.

Le terme data marketing témoigne de la prise en compte par les entreprises de l’importance de la gestion des données collectées sur internet. Apparu dans les années 2000, ce terme est aujourd’hui courant et regroupe des techniques de marketing destinées à capitaliser les informations contenues dans la base de données et à alimenter la base de données. Les progrès ont, depuis, atteint un niveau tel que les entreprises sont aujourd’hui capables de prédire les comportements des consommateurs. Comme ce fut le cas lors de la campagne présidentielle américaine en 2012, l’analyse de données des électeurs et le ciblage effectué par l’équipe de campagne de Barack Obama est un exemple marquant.

Sans titre1

Pour ne citer que lui, le Real Time Bidding provient du data marketing. Le terme désigne « enchère en temps réel » en français. Le RTB est une technologie utilisée dans la publicité en ligne, qui vient bousculer les règles des espaces publicitaires sur internet. Le principe est d’allouer des espaces publicitaires en temps réel à la suite d’enchères organisées par les annonceurs. Ces espaces sont alloués dans le cadre d’ad-exchange en fonction de la taille de la bannière, du contexte de la page web, et en fonction des données relative à l’internaute en ligne. Concrètement, le RTB permet de simplifier le processus d’achat d’espaces de publicités et d’optimiser les investissements publicitaires. Preuve que cette tendance est efficace : les budgets des annonceurs européens dédiés aux campagnes publicitaires sont en hausse 92% en 2014 d’après le site Ad-Exchange.fr.

En espérant vous avoir éclairé sur certains points, nous serons ravis de lire vos retours dans les commentaires.

!

LA MÉTHODE AGILE – OPTIMISATION DE LA RELATION « CLIENT / FOURNISSEUR »

Placer le client au centre des démarches et des personnes. C’est l’objectif des méthodes de développement dites « Agiles ». De quoi s’agit-il ? Et surtout quels en sont les avantages et y a-t-il des inconvénients ou des risques d’échecs ?

La méthode Agile est aujourd’hui très répandue dans les sociétés de services ou les agences web. J’ai souvent entendu qu’un des avantages de cette méthode était qu’on pouvait prendre ce qu’on voulait dedans, mais contrairement aux idées reçues, cette méthode ne portera ses fruits que si elle est respectée à la lettre. En effet, chaque étape est importante. Nous verrons ainsi les nombreux avantages ainsi que les inconvénients ou risques éventuels à utiliser cette méthode.
Principes de fonctionnement des méthodes « Agile »
Le principe de base des méthodes « Agile » est qu’il est contre-productif qu’avant de développer un produit, il faille le planifier et en spécifier les moindres détails. En effet, prévoir tous les aspects de la production entraîne dans la plupart des cas frustrations et pertes de temps car les aléas surviennent fréquemment. C’est cette approche prédictive et séquentielle de type waterfall ou cycle en V que les tenants des méthodes « Agile » veulent casser. Ainsi, au lieu de fixer les objectifs lointains, le mieux serait de procéder par étapes c’est-à-dire fixer des objectifs à court terme et commencer le développement sans perdre de temps. Chaque fois que cet objectif est atteint, on passe au prochain et ainsi de suite jusqu’à atteindre le but ultime. Au niveau d’un développement de logiciel, c’est le client qui transmet à l’équipe de développeurs sa vision du produit avec la liste des fonctionnalités qu’aurait ce produit. Il communique ainsi directement avec l’équipe et ensemble ils estiment le coût de chaque fonctionnalité pour aboutir à une idée approximative du budget final. De ce fait, on raisonne plus « produit » que « projet », d’où l’utilisation du terme « gestion de produit » au lieu de « gestion de projet ».
L’Agile manifesto 
Ces méthodes « Agile » se sont beaucoup développées et on a pu en recenser une dizaine de variantes jusqu’au début des années 2000. Conscientes qu’une certaine uniformisation était devenue nécessaire, 17 grandes figures du développement logiciel s’étaient réunies aux Etats-Unis en 2001 pour déterminer les critères communs et les principes fondamentaux de ce qui allait devenir un « Manifeste Agile ». D’après ce manifesto, les méthodes « Agile » demandent une plus grande implication du client et permettent une meilleure réactivité des développeurs face à ses demandes. Ce manifeste prône 4 valeurs fondamentales inhérentes aux méthodes « Agile » : l’équipe, l’application, la collaboration et l’acceptation du changement. De ces valeurs découlent 12 principes généraux qui se basent essentiellement sur une relation privilégiée entre le client et les développeurs. La priorité est ainsi donnée à la satisfaction du client et pour y arriver, une implication totale de l’équipe est requise. Cette équipe doit être capable de réagir très vite face aux éventuels changements requis par le client ou aux modifications de la méthode de travail face à des obstacles imprévus. Elle doit également être capable de se remettre en cause et de rechercher perpétuellement à évoluer.
La conception d’un produit « Agile »
La première étape consiste à effectuer une première planification de l’itération ou Sprint dans le jargon des développeurs. Cette réunion fera ressortir les éléments prioritaires de la liste des exigences fonctionnelles du produit. Chaque exigence représente une user storie (US) ou « histoire utilisateur ». Une US doit être rédigée dans un bon français et décrit e fonctionnement ainsi que le parcours de l’utilisateur de la fonctionnalité. Elle doit également contenir les cas de tests ainsi que les critères de validation de la fonctionnalité développée.
En accord avec le client, aussi appelé Product Owner, les premières livraisons devraient être effectuées à la fin de cette itération (une itération à une durée d’environ 2 à 3 semaines suivant le nombre d’US présentent dans le backlog). Le backlog est l’ensemble des US à développer durant l’itération en cours.
Une autre réunion appelée Revue de Sprint est organisée à la fin de chaque Sprint durant laquelle les développeurs présentent au client les fonctionnalités développées. Ce dernier pourra ainsi tout de suite donner son feedback, ce qui présente l’avantage de gagner beaucoup de temps et d’ajuster les fonctionnalités ou les méthodes de travail le cas échéant.
Vient ensuite une rétrospective de Sprint qui permet à tous les acteurs d’améliorer des choses et de s’améliorer également. Une autre particularité de la méthode « Agile » est la réalisation de mêlées quotidiennes qui permettent à l’équipe de développeurs de synchroniser leur travail. Appelée aussi Stand Up meeting, cette réunion qui ne dure pas plus de 15 minutes permet à chacun de déterminer ce qu’ils ont réalisé depuis la dernière mêlée, de ce qu’ils auront à terminer avant la prochaine Stand Up meeting et d’identifier les obstacles qui pourraient les bloquer. En effet, les trois questions « phares » du scrum master sont :
  1. Qu’as tu fais hier ?
  2. Que vas tu faire aujourd’hui ?
  3. As tu des points bloquants ?
Quelques  outils d’aide à la gestion d’une équipe « Agile »
De nombreux outils d’aide à la gestion d’une équipe « Agile » ont fait leur apparition ces dernières années. On peut en citer pêle-mêle Agilefant, IceScrum, Agilo, eXPlainPMT ou encore XPlanner. D’autres sont apparus dernièrement comme le JIRA Agile qui a l’avantage d’être facilement utilisable même pour les débutants. Il permet d’élaborer des tableaux de tâches, de créer et d’estimer les user stories (US), d’identifier l’engagement et la vélocité de l’équipe ou encore de créer divers rapports sur l’état d’avancement des projets. En outre, un outil comme PMTool offre un large choix de rapports dans une interface simple mais très complète. Ainsi, les développeurs tout comme les chefs de projet (Scrum master) dispose d’une interface simple pour saisir leur feuille de temps et rendre compte de leurs activités. Un tableau de bord personnalisable est également disponible pour permettre à l’utilisateur d’avoir sous ses yeux les principaux indicateurs pour le suivi de son projet/développement tout en prenant en compte l’itération en cours. Les questions/incidents pourront enfin être gérés de manière très aisé car cette action est centralisée et se fait en un seul clic grâce à un menu très discret qui s’affiche partout (quel que soit la rubrique en cours de consultation).
Conclusion
 
Avantages
  • Méthode fun !
  • Excellente réactivité vis-à-vis du client (product owners => PO)
  • Qualité accrue du fait de la présence des PO
  • Favorise et facilite la communication avec les autres membres de l’équipe
  • Développements hors sujet très peu probable
Inconvénients
  • Changement radical de gestion de projet/produit : fort impact sur tous les intervenants
  • Dans les grosses sociétés : collaboration/synchronisation difficile avec les autres équipes qui n’utilisent pas cette méthode. (délais différents donc réactivité plus longues)
  • Contraignante, surtout au début le temps que tout le monde s’y habitue.
  • Bonne volonté et bonne entente de tous les participants impératif.
  • Gros travail de rédaction pour les PO => création des « users stories » + cas de tests + critères de validation de l’US
  • Les développeurs doivent accepter le changement (revenir sur du code pour le modifier voir le supprimer).
  • Les développeurs doivent être autonomes (une équipe « Agile » doit être auto gérée)
  • La sociabilité doit être une qualité de tous les intervenants (communication)

DNS ANYCAST

Dans un article récemment publié, Paul Vixie, un des auteurs et architecte de BIND, l’un des serveurs de noms les plus répandus, explique pourquoi les serveurs DNS devraient utiliser anycast afin d’obtenir des réponses plus rapide tout en augmentant la fiabilité. L’argument principal développé contre l’unicast est l’existence de résolveurs qui ne sont pas assez malins pour choisir le meilleur serveur de noms à interroger, ce qui conduit certaines requêtes à faire le tour de la planète et donc une latence importante et incompressible.

Unicast & anycast

La plupart des adresses IP que l’on manipule sont des adressesunicast, c’est à dire des adresses qui désigne un unique destinataire. À chaque fois que vous envoyez un paquet vers une adresse de ce type, celui-ci sera routé vers un unique destinataire. Il existe aussi des adressesmulticast (qui comprennent les adresses broadcast) pour lesquelles plusieurs destinataires reçoivent une copie du paquet.

Les adresses anycast permettent d’envoyer le paquet à un destinataire parmi plusieurs. Il n’y a donc pas de copie, mais pas de destinataire unique. Idéalement, le paquet parvient au destinataire le plus proche.

Il n’existe pas de méthode universelle pour déterminer si une adresse IPest une adresse unicast ou anycast. Par exemple,78.47.78.132 est une adresse unicast tandis que 192.5.5.241 est une adresse anycast.

L’ISC, qui maintient BIND, est aussi l’opérateur du serveur racine « F », l’un des 13 serveurs racines du DNS. Celui-ci peut être interrogé en utilisant l’IP 192.5.5.241 ou 2001:500:2f::f qui sont des adresses anycast. L’ISC a publié un document expliquant le principe derrière les DNSanycast. Plusieurs nœuds à travers le monde annoncent le même réseau en utilisant BGP. Quand un routeur a besoin d’envoyer une requête sur l’IP anycast, il aura plusieurs choix possible dans sa table de routageBGP. Il sélectionne habituellement le chemin le plus court.

Certains nœuds peuvent choisir de limiter l’annonce du réseau anycast afin de ne servir qu’un nombre réduit de clients (les siens). On les appelle les nœuds locaux (par opposition aux nœuds globaux).

Lab

Essayons de mettre en place un serveur DNS anycast dans un petit lab. Nous allons utiliser uniquement un réseau IPv6. Notre serveurDNS sera constitué de deux nœuds globaux, G1 et G2, et d’un nœud local, L1. Nous allons construire pour l’occassion une sorte de mini-Internet:

Lab DNS anycast

Schéma du lab DNS anycast

Mise en place

Nous allons utiliser des machines virtuelles UML pour chaque nœud. Pour plus de détails, lisez mon article précédent sur les labs de test avec User Mode Linux. Pour récupérer et mettre en place ce lab, c’est très simple :

$ git clone https://vincentbernat@github.com/vincentbernat/network-lab.git
$ cd network-lab/lab-anycast-dns
$ ./setup

Pour que le lab fonctionne, il faut installer les dépendances réclamées par le script sur votre système. Ce script a été testé sur une Debian Sid. Si certaines dépendances n’existent pas pour votre distribution, si elles ne se comportent pas comme sous Debian ou encore si vous ne voulez pas les installer sur votre système, une autre solution est d’utiliserdebootstrap pour construire un système utilisable dans le cadre de ce lab :

$ sudo debootstrap sid ./sid-chroot http://ftp.debian.org/debian/
[...]
$ sudo chroot ./sid-chroot /bin/bash
# apt-get install iproute zsh aufs-tools
[...]
# apt-get install bird6
[...]
# exit
$ sudo mkdir -p ./sid-chroot/$HOME
$ sudo chown $(whoami) ./sid-chroot/$HOME
$ ROOT=./sid-chroot ./setup

Le lab comprend beaucoup de machines UML. Chacune d’entre elles dispose de 64 Mo. Elles n’utilisent normalement pas réellement cette mémoire mais en raison du mécanisme de cache, il faut s’attendre à une utilisation proche des 64 Mo. Il faut donc un peu moins de 2 GO de mémoire pour faire tourner le lab. Chaque machine crée de plus un fichier représentant sa mémoire sur le disque. Il faut donc également 2 Go de libre dans /tmp.

Les routeurs ont été nommés selon le numéro de leur AS. Le routeur de l’AS 64652 est donc 64652. Paris, NewYork et Tokyo sont des exceptions.

Nous n’utilisons qu’un seul switch mais nous allons exploiter desVLANpour créer un réseau L2 pour chaque lien représenté sur le schéma. Chacun de ces réseaux disposera également de son propre réseau L3. Ces réseaux d’interconnexion sont préfixés par2001:db8:ffff:. Les AS qui se trouvent en feuille disposent en plus de leur propre réseau L3 de la forme 2001:db8:X::/48X est le numéro de l’AS (en décimal) moins 60000. Jetez un œil à /etc/hostspour obtenir les adresses IP de tout le monde une fois le lab lancé.

Routage

L’AS 64600 est une sorte de fournisseur de transit Tier-1 (commeLevel 3 Communications). Il dispose de trois points de présence (PoP): Paris, New York et Tokyo. L’AS 64650 est un fournisseur de transit européen, l’AS 64640 est un fournisseur de transit asiatique et les AS 64610, 64620 et 64630 sont des fournisseurs de transit nord-américains qui s’échangent du peering. Les autres AS sont des fournisseurs d’accès à Internet.

Ce n’est pas vraiment une image fidèle de ce à quoi Internet ressemble réellement mais cette modélisation permet de nous abstraire de pas mal de complications avec BGP. En tout point du réseau, le meilleur chemin d’un nœud à un autre est toujours le chemin le plus court du point de vue de BGP. Chaque routeur BGPne disposera que d’une configuration basique. Paris, New York et Tokyo faisant partie du même AS, ils parleront iBGP entre eux. La topologie en maille n’est là que pour permettre l’utilisation de iBGP : cela n’apporte pas de redondance étant donné qu’une route iBGP ne peut pas être redistribuée dans iBGP. Il faudrait utilier un IGP à l’intérieur de l’AS 64600 si on voulait obtenir en plus de la redondance. Nous n’utilisons pas non plus d’IGP au niveau des ASterminaux : pour des raisons de simplicité, on se contente de redistributer dans BGP les routes directement connectées.

Dans le lab précédent, Quagga avait été utilisé comme démon de routage. Pour changer, ici, ce sera BIRD. Il s’agit d’un démon de routage plus moderne et mieux architecturé. Il est capable de manipuler en interne un nombre arbitraire de tables de routage. Il ne contient cependant pas toutes les fonctionnalités offertes par Quagga. La configuration de BIRDest générée automatiquement depuis le fichier /etc/hosts. Nous n’utilisons qu’une seule table de routage. Celle-ci sera exportée vers le noyau et vers toutes les instances BGP. Certaines routes directement connectées seront importées dans cette table (celles représentant les réseaux des clients) ainsi que toutes les routes en provenance des voisinsBGP. Voici un extrait de la configuration de 64610 :

protocol direct {
   description "Client networks";
   import filter {
     if net ~ [ 2001:db8:4600::/40{40,48} ] then accept;
     reject;
   };
   export none;
}

protocol kernel {
   persist;
   import none;
   export all;
}

protocol bgp {
   description "BGP with peer NewYork";
   local as 64610;
   neighbor 2001:db8:ffff:4600:4610::1 as 64600;
   gateway direct;
   hold time 30;
   export all;
   import all;
}

Nous n’exportons pas les réseaux d’interconnexion entre les routeurs pour garder des tables de routage faciles à lire. Cela signifie que les adresses de ces réseaux ne sont pas routables malgré l’utilisation d’IPpubliques. Voici la table de routage telle que vue par64610 (on utiliserbirdc6 pour se connecter à BIRD) :

bird> show route
2001:db8:4622::/48 via 2001:db8:ffff:4610:4620::2 on eth3 [bgp4 18:52] * (100) [AS64622i]
                   via 2001:db8:ffff:4600:4610::1 on eth0 [bgp1 18:52] (100) [AS64622i]
2001:db8:4621::/48 via 2001:db8:ffff:4610:4620::2 on eth3 [bgp4 18:52] * (100) [AS64621i]
                   via 2001:db8:ffff:4600:4610::1 on eth0 [bgp1 18:52] (100) [AS64621i]
2001:db8:4612::/48 via 2001:db8:ffff:4610:4612::2 on eth2 [bgp3 18:52] * (100) [AS64612i]
2001:db8:4611::/48 via 2001:db8:ffff:4610:4611::2 on eth1 [bgp2 18:52] * (100) [AS64611i]

Comme on peut le remarquer, le routeur connaît plusieurs chemins vers le même réseau mais il ne sélectionne que celui qu’il considère comme le meilleur (basé principalement sur la longueur du chemin en nombre d’AS traversés).

bird> show route 2001:db8:4622::/48 all
2001:db8:4622::/48 via 2001:db8:ffff:4610:4620::2 on eth3 [bgp4 18:52] * (100) [AS64622i]
        Type: BGP unicast univ
        BGP.origin: IGP
        BGP.as_path: 64620 64622
        BGP.next_hop: 2001:db8:ffff:4610:4620::2 fe80::e05f:a3ff:fef2:f4e0
        BGP.local_pref: 100
                   via 2001:db8:ffff:4600:4610::1 on eth0 [bgp1 18:52] (100) [AS64622i]
        Type: BGP unicast univ
        BGP.origin: IGP
        BGP.as_path: 64600 64620 64622
        BGP.next_hop: 2001:db8:ffff:4600:4610::1 fe80::3426:63ff:fe5e:afbd
        BGP.local_pref: 100

Vérifions que tout fonctionne en utilisant traceroute6 depuis C1 :

# traceroute6 G2.lab
traceroute to G2.lab (2001:db8:4612::2:53), 30 hops max, 80 byte packets
 1  64652-eth1.lab (2001:db8:4652::1)  -338.277 ms  -338.449 ms  -338.502 ms
 2  64650-eth2.lab (2001:db8:ffff:4650:4652::1)  -338.324 ms  -338.363 ms  -338.384 ms
 3  Paris-eth2.lab (2001:db8:ffff:4600:4650::1)  -338.191 ms  -338.329 ms  -338.282 ms
 4  NewYork-eth0.lab (2001:db8:ffff:4600:4600:1:0:2)  -338.144 ms  -338.182 ms  -338.235 ms
 5  64610-eth0.lab (2001:db8:ffff:4600:4610::2)  -338.078 ms  -337.958 ms  -337.944 ms
 6  64612-eth0.lab (2001:db8:ffff:4610:4612::2)  -337.778 ms  -338.103 ms  -338.041 ms
 7  G2.lab (2001:db8:4612::2:53)  -338.001 ms  -338.045 ms  -338.080 ms

Cassons le lien entre NewYork et 64610 pour voir ce qui se produit. Ce lien est porté dans le VLAN 10. vde_switch ne permettant pas de casser facilement un lien, on va simplement changer le VLAN de ce lien en prenant le VLAN 4093. Après au plus 30 secondes, la sessionBGP entreNewYork et 64610 est rompue et C1 va utiliser un nouveau chemin :

# traceroute6 G2.lab
traceroute to G2.lab (2001:db8:4612::2:53), 30 hops max, 80 byte packets
 1  64652-eth1.lab (2001:db8:4652::1)  -338.382 ms  -338.499 ms  -338.503 ms
 2  64650-eth2.lab (2001:db8:ffff:4650:4652::1)  -338.284 ms  -338.317 ms  -338.151 ms
 3  Paris-eth2.lab (2001:db8:ffff:4600:4650::1)  -337.954 ms  -338.031 ms  -337.924 ms
 4  NewYork-eth0.lab (2001:db8:ffff:4600:4600:1:0:2)  -337.655 ms  -337.751 ms  -337.844 ms
 5  64620-eth0.lab (2001:db8:ffff:4600:4620::2)  -337.762 ms  -337.507 ms  -337.611 ms
 6  64610-eth3.lab (2001:db8:ffff:4610:4620::1)  -337.531 ms  -338.024 ms  -337.998 ms
 7  64612-eth0.lab (2001:db8:ffff:4610:4612::2)  -337.860 ms  -337.931 ms  -337.992 ms
 8  G2.lab (2001:db8:4612::2:53)  -337.863 ms  -337.768 ms  -337.808 ms

Configuration du serveur DNS anycast

Notre service DNS a trois nœuds. Deux globaux, situés en Europe et en Amérique du Nord, et un local destiné aux clients de l’AS 64620 uniquement. L’adresse IP du service DNS est2001:db8:aaaa::53/48. Nous assignons cette adresse à G1, G2 et L1. L’adresse 2001:db8:aaaa::1/48 est attribuée à 64651, 64612 et64621. La configuration de BIRD est alors modifiée pour que ce réseau soit redistributée dans BGP au même titre que les réseaux classiques :

protocol direct {
   description "Client networks";
   import filter {
     if net ~ [ 2001:db8:4600::/40{40,48} ] then accept;
     if net ~ [ 2001:db8:aaaa::/48 ] then accept;
     reject;
   };
   export none;
}

NSD est utilisé comme serveur de noms. Il s’agit d’un serveur de noms non récursif. Sa configuration est très simple. On s’assure uniquement qu’il n’écoute que sur l’adresse anycast afin d’être certain qu’il réponde sur la bonne adresse. Il sert la zoneexample.com dont le champ TXT est personnalisé pour chaque serveur afin de déterminer quel serveur nous avons interrogé :

#(C1) host -t TXT example.com 2001:db8:aaaa::53
Using domain server:
Name: 2001:db8:aaaa::53
Address: 2001:db8:aaaa::53#53
Aliases:

example.com descriptive text "G1"
#(C5) host -t TXT example.com 2001:db8:aaaa::53
Using domain server:
Name: 2001:db8:aaaa::53
Address: 2001:db8:aaaa::53#53
Aliases:

example.com descriptive text "G2"

Si nous essayons depuis C3, L1 répond alors que nous ne sommes pas clients de l’AS 64620. La façon la plus courante pour régler ceci est de configurer 64621 pour qu’il ajoute une communauté spéciale à la route en question qui indiquera à 64620 qu’il ne faut pas redistribuer cette route :

protocol direct {
   description "Client networks";
   import filter {
     if net ~ [ 2001:db8:4600::/40{40,48} ] then accept;
     if net ~ [ 2001:db8:aaaa::/48 ] then {
          bgp_community.add((65535,65281));
          accept;
     }
     reject;
   };
   export none;
}

La communauté utilisée est connue sous le nom no-export. BIRDsait comment la gérer automatiquement. Nous rencontrons cependant quelques limitations liées à BIRD :

  1. Il faut que 64622 reçoive tout de même cette route (car il est client de l’AS 64620). Pour se faire, on doit normalement construire une confédération BGP pour l’AS 64620. Celle-ci contiendra les AS64621 et 64622. De l’extérieur, cette confédération sera vue comme l’AS 64620. Les routes marquées comme non exportables seront tout de même exportée dans la confédération. BIRD ne supporte pas les confédérations.
  2. BIRD sélectionne d’abord la meilleure route à l’export puis ensuite applique le filtre. Cela signifie que même si 64620 connaît une autre route vers 2001:db8:aaaa::/48, il sélectionnera d’abord la route vers L1, la filtrera car marquée en no-export et n’enverra aucune route vers 64622.

Une autre solution est de configurer BIRD sur 64620 pour ne pas exporter la route en question vers les AS 64600, 64610 et 64630. Il est possible d’utiliser une communauté personnalisée pour marquer la route et de baser le filtre sur cette communauté, mais pour des raisons de simplicité, nous construisons le filtre en testant directement la route.

filter keep_local_dns {
   if net ~ [ 2001:db8:aaaa::/48 ] then reject;
   accept;
}
protocol bgp {
   description "BGP with peer NewYork";
   local as 64620;
   neighbor 2001:db8:ffff:4600:4620::1 as 64600;
   gateway direct;
   hold time 30;
   export filter keep_local_dns;
   import all;
}

Désormais, seul C4 pourra interroger L1. Si l’AS 64621 disparaît du réseau, C4 se rabattra sur G2. C’est un point important à noter : la redondance assurée par anycast se fait au niveau des AS. SiL1fonctionne mal (serveur en panne par exemple), les requêtes seront toujours redirigées vers lui. Il faut ajouter de la redondance à l’intérieur de l’AS ou arrêter d’annoncer la route en cas de panne du serveur.

Au-delà du DNS

Il est possible d’utiliser anycast pour serveurs des requêtes HTTP. C’est quelque chose de beaucoup moins commun car rien ne garantit que tous les paquets d’une connexion TCP seront acheminés vers le même serveur. Cela ne pose pas de problème avce le DNS car on envoie un paquet, on reçoit une réponse et c’est fini. Il existe au moins deux CDNfaisant de l’anycast (MaxCDN etCacheFly).

Sur le papier, mettre en place un serveur HTTP sur une adresse anycast n’est pas différent de la mise en place d’un DNS. Il faut cependant s’assurer que le routage reste stable afin de ne pas changer de serveurHTTP au milieu de la connexion. Il est aussi possible de mélanger unicast et anycast :

  • un serveur DNS anycast renvoie l’adresse unicast d’un serveurHTTPproche, ou
  • un serveur DNS anycast renvoie l’adresse anycast d’un serveurHTTP qui répondra par un redirect vers un serveur unicast proche quand la requête concerne un fichier de taille importante.

DÉSINSTALLER L’APPLICATION “OBTENIR WINDOWS 10” DE WINDOWS 7/8.1

Afin d’inciter les utilisateurs à effectuer la mise à jour gratuite vers Windows 10, Microsoft a installé sur nos ordinateurs l’application “Obtenir Windows 10” qui prend la forme d’une icône dans la barre de notification de Windows 7/8.1. Cette application est très pratique pour les utilisateurs intéressés par la prochaine version de Windows : elle permet en effet de vérifier la compatibilité de son matériel et de ses logiciels avec Windows 10 et d’être alerté dès que celui-ci sera disponible.

Mais vous, vous êtes différent. Oui, vous, vous ne voulez pas de Windows 10 ! Vous résistez et resterez encore et toujours à cet envahisseur venu d’Amérique. Windows 7/8.1 est votre maison et pour rien au monde vous ne souhaitez en changer. Vous garderez Windows 7/8.1 coûte que coûte 😀

Je suis là pour ça mes amis ! Ce tutoriel vous permettra de supprimer définitivement l’application “Obtenir Windows 10” de votre système et pas seulement de la barre de notification.

Soyez prêt, car l’application est assez coriace à désinstaller ! :mrgreen:

Désinstallation de la mise à jour KB3035583

Commençons par supprimer la mise à jourKB3035583 – responsable de l’installation de l’application “Obtenir Windows 10” – qui s’est installée automatiquement via Windows Update. En désinstallant cette mise à jour, l’application “Obtenir Windows 10” sera désinstallée (en partie) de notre PC. Néanmoins, elle est toujours susceptible de revenir puisque Microsoft l’a définie en tant mise à jour importante et non facultative. C’est pourquoi nous irons ensuite empêcher cette mise à jour KB3035583 de se réinstaller automatiquement.

Rendez-vous dans Panneau de configuration >Système et sécurité > Windows Update puis cliquez sur le lien Mises à jour installées dans le volet en bas à gauche.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-mises-a-jour-installees

Recherchez le terme “KB3035583” dans le champ de recherche en haut à droite. Cliquez droit sur Mise à jour pour Microsoft Windows (KB3035583) et sélectionnez Désinstaller.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-supprimer-kb3035583

Voilà, la mise à jour KB3035583 est bien désinstallée. Maintenant, on va faire en sorte qu’elle ne se réinstalle plus automatiquement. C’est en effet une mise à jour automatique qualifiée d’importante par Microsoft. Pour ce faire, revenez sur la page d’accueil de Windows Update et cliquez sur le lien Rechercher les mises à jour.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-rechercher-mises-a-jour

Une fois la recherche terminée, cliquez sur X mises à jour importantes sont disponibles. Cliquez droit surMise à jour pour Windows (KB3035583) et sélectionnez Masquer la mise à jour.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-masquer-kb3035583

Ça y est, la mise à jour KB3035583 ne nous embêtera plus à l’avenir 😀 Si vous souhaitez la réinstaller plus tard, cliquez sur Restaurer les mises à jour masquées sur la page d’accueil de Windows Update et restaurez la mise à jour KB3035583.

Suppression des fichiers et des dossiers GWX

Malgré la suppression de la mise à jour KB3035583, les fichiers et les dossiers de l’application GWX (a.k.a “Get Windows X”,“Obtenir Windows 10” en français) sont toujours présents ! Quelle bande de petits filous chez Microsoft :mrgreen:

Nous allons donc devoir supprimer les dossiers contenant l’exécutable GWX.exe :

  • C:\Windows\System32\GWX
  • C:\Windows\SysWOW64\GWX (seulement pour les versions 64 bits de Windows)

Il n’est pas possible de les supprimer directement car même si vous possédez les droits administrateurs, vous n’êtes pas le propriétaire de ces dossiers. C’est pourquoi, avant de les supprimer, on va d’abord se définir comme propriétaire des dossiers GWX.

Commençons par nous occuper du dossierC:\Windows\System32\GWX.

Cliquez droit sur le dossier et faites Propriétés.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-proprietes-gwx

Cliquez sur le bouton Avancé en bas à droite.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-proprietes-gwx-avance

Vous voyez, c’est actuellement TrustedInstaller le propriétaire du dossier. Cliquez sur Modifier pour le changer.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-modifier-proprietaire-gwx

Entrez votre nom d’utilisateur (attention à bien l’orthographier !) puis cliquez sur le bouton Vérifier les noms. Si Windows trouve l’utilisateur, celui-ci sera souligné et précédé du nom de l’ordinateur. Si vous n’arrivez pas à trouver votre nom d’utilisateur, cliquez sur Avancé, Rechercher puis sélectionnez votre nom d’utilisateur dans la liste qui s’est affichée.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-definir-proprietaire-gwx

Cliquez sur OK, cochez la case Remplacer le propriétaire des sous-conteneurs et des objets puis cliquez une dernière fois sur OK.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-remplacer-proprietaire-gwx

Nous voilà de nouveau sur la fenêtre Propriétés de GWX. Maintenant que nous sommes propriétaires du dossier GMX, on va s’attribuer les droits complets afin de pouvoir le supprimer ! Pour ce faire, cliquez sur Modifier, Ajouter, entrez votre nom utilisateur (comme tout à l’heure) puis cliquez surOK.

Sélectionnez votre nom d’utilisateur dans la zone du haut puis cochez la case Contrôle total sous la colonne Autoriser.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-droits-dossier-gwx

Cliquez sur Appliquer et fermez les différentes boites de dialogue en faisant OK. Maintenant on va (enfin) pouvoir supprimer ce maudit dossier ! 😀Cliquez droit sur ce dernier et faites Supprimer. Normalement, la corbeille devrait être sa nouvelle demeure 😉

Effectuez les mêmes opérations pour le dossierC:\Windows\SysWOW64\GWX (si vous avez une version 64 bits de Windows) et vous aurez mis un terme au processus GWX.exe !

Suppression des tâches planifiées GWX

L’application “Obtenir Windows 10” s’est aussi glissée dans les tâches planifiées ! Je suppose que vous connaissez la sentence…

Oui, au bûcher !

Euh oui c’est à peu près ça 😀 Ouvrez le Planificateur de tâches qui se trouve dans le Panneau de configuration > Système et sécurité > Outils d’administration (ou en entrant taskschd.msc dans la boite de dialogue Exécuter – touches Windows + R).

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-ouvrir-planificateur-de-taches

Déroulez la Bibliothèque du Planificateur dans le volet de gauche > Microsoft > Windows > Setup et repérez les dossiers gwx et GWXTriggers. Pour supprimer un dossier, il faut d’abord supprimer les tâches qu’il contient. Malheureusement, en raison d’un problème de droits, on ne va pouvoir supprimer les tâches du dossier GMXTriggers tout de suite.

Commençons par le dossier gmx : supprimez les deux tâches qu’il contient (launchtrayprocess etrefreshgwxconfig) puis supprimez le dossier gmx lui-même (clic droit > Supprimer).

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-supprimer-taches-planifiees-gwx

Pour supprimer GWXTriggers, on va devoir s’octroyer propriétaire du dossier et nous attribuer les droits complets (comme nous l’avons fait tout à l’heure).

Ouvrez la boite de dialogue Exécuter (touches Windows + R) et saisissez tasks. Cette action ouvre le dossier C:\Windows\System32\Tasks dans lequel sont stockées toutes les tâches listées dans lePlanificateur de tâches.

Dirigez-vous vers le Microsoft\Windows\Setup et comme nous l’avons fait tout à l’heure pour le dossier C:\Windows\System32\GMX, définissez-vous propriétaire du dossier et octroyez-vous les droits complets. Terminez par supprimer le dossierGWXTriggers.

desinstaller-lapplication-obtenir-windows-10-supprimer-icone-windows-10-supprimer-gwx-triggers

Retournez dans le Planificateur de tâches, rafraichissez la fenêtre (Action > Actualiser) : le dossier GWXTriggers a bien été désintégré ! :mrgreen:

Félicitations ! Ça n’aura pas été de tout repos mais l’application “Obtenir Windows 10” a bien été supprimée définitivement de votre ordinateur :)Vous pouvez maintenant vous programmer une petite soirée en amoureux avec votre Windows 7/8.1 chéri, vous l’avez bien mérité

BIG DATA : MYTHES ET RÉALITÉS

Au-delà des algorithmes analytiques et prédictifs, on définit souvent le Big Data par les 3 ou 5 V : volume, variété, vitesse, véracité et valeur. Même s’ils fleurent bon le marketing, ces termes recèlent quelques enseignements précieux.

Tout a commencé avec les 3 V : Volume, variété, vitesse. Trois mots censés résumer les problématiques posées par la gestion de l’information et démontrer l’incapacité des outils d’analyse en place de traiter de tels volumes, aussi variés et à grande vitesse.

dell

Les 3 V originaux du Big Data

L’objectif des 3 V visait aussi, et surtout, à prouver l’intérêt de recourir aux technologies Big Data pour remédier à ces situations face auxquelles les solutions de datawarehouse ou datamarts classiques se révèlent impuissantes ou très onéreuses.

Volume

E-mails, documents bureautiques, transactions commerciales ou dans les ERP, tweets, photos, senseurs et capteurs : combien d’informations sont produites chaque seconde ? Selon une étude de l’institut IMS Research, il y aura plus de 22 milliards d’appareils connectés à internet d’ici 5 ans et ces derniers généreront près de 3 trillions d’octets d’information par jour. Les entreprises ne parlent plus en gigaoctets, mais déjà en téraoctets, voire en pétaoctets.

Concrètement, comment tirer des enseignements sur une marque ou un produit en analysant plusieurs téraoctets de tweets produits chaque jour et en quelques minutes ? Comment analyser plusieurs dizaines de millions compteurs électriques en temps réel pour anticiper une panne ? C’est ce type de questions auxquelles s’attaquent les technologies Big Data. Et les datawarehouses traditionnels ne sont pas conçus pour ce type d’analyse.

Variété

Traditionnellement, l’informatique analytique traite les données structurées issues des bases de données. Or, plus de 80 % des informations produites sont dites non structurées : textes, images, vidéos, voix, capteurs, etc. Le Big Data se propose d’effectuer des analyses sur l’ensemble des informations, structurées ou non. Corréler toutes ces informations permet de prendre de meilleures décisions et de fiabiliser les tendances en analyse prédictive.

Voici quelques exemples des bénéfices de la corrélation de ces informations : analyser les comportements d’achat en temps réel pour mieux conseiller et augmenter le volume de transactions, améliorer sa relation client sur tous les canaux, dégager les tendances pour définir des modèles statistiques et améliorer ses produits ou services, ou profiler anonymement ses consommateurs…

Vitesse

Lorsqu’il s’agit de détecter de la fraude au niveau international ou de proposer la meilleure offre au client selon son profil au moment même de son achat, attendre deux minutes est souvent intolérable. La vitesse est donc l’une des caractéristiques du Big Data qui utilise des technologies de pointe éprouvées pour obtenir des performances inédites : traitement massivement parallèle, In-Memory, clustering, etc.

Au départ réservé aux traitements différés de gros volumes de données en mode batch, le Big Data intègre aujourd’hui le streaming de données et le temps réel, y compris avec la possibilité de ne rien stocker. Ainsi, il devient possible d’analyser des millions de transactions commerciales par jour pour détecter d’éventuelles fraudes. Ou encore de corréler en temps réel les informations issues des réseaux sociaux et du CRM (logiciel de gestion de la relation client) pour qualifier précisément un client.

Deux nouveaux V : objectif business

Les premiers projets Big Data ont souvent bluffé leurs initiateurs par leurs performances et leur capacité à effectivement intégrer de grands volumes de données très variées. Mais ils ont aussi mis en lumière deux autres V, l’un pour la qualité de l’information, l’autre pour la valeur intrinsèque apportée à l’entreprise. Bref : la fin de l’expérimentation pour ouvrir la voie à la l’opérationnalisation.

Véracité

À quoi bon analyser un grand volume de données s’il l’on ne peut s’assurer de la fiabilité de l’information ? Des mécanismes de vérification de la véracité et de la qualité des données sont donc intégrés aux processus Big Data, impliquant généralement les utilisateurs finaux, pour mériter la confiance des utilisateurs métiers. Une grande rigueur dans la sélection des sources de données, leur collecte, leurs recoupements et leur enrichissement, s’avère cruciale. Sans oublier les obligations légales selon le secteur de l’entreprise.

Valeur

Ce dernier V est certainement celui qui devrait arriver en tête lors du lancement d’un projet Big Data. Quelle valeur cette application apportera-t-elle à l’entreprise ou à l’activité pour laquelle elle est développée ? La création de valeur pour l’entreprise et ses clients est effectivement au cœur du sujet Big Data. Néanmoins, la capacité de ces technologies à dévoiler des résultats ou des tendances inattendus ou inédits contribue fortement à son succès auprès des utilisateurs qui sont de plus en plus demandeurs. Et n’est-ce pas là une preuve de la valeur créée ?

Exemple avec l’analyse en temps réel des opérations informatiques. Celle-ci permet de détecter instantanément les pannes et même de les anticiper, via des outils de supervision avec alertes. Non seulement les incidents sont détectés, mais bien souvent leur origine probable est aussi mentionnée. Système informatique optimisé, productivité améliorée : forte valeur ajoutée.