Outils pour utilisateurs

Outils du site


issue106:monopinion

Table des matières

1

Big Data is a term that has morphed into a buzzword that is doing the rounds in today’s information technology circles. Managers speak of Big Data as a concept to somehow make use of the information that is collected by businesses from their customers. Computer system and software vendors see in it a commercial opportunity, and advocates of human rights and freedom are concerned about the social and personal implications - after all, Big Data rhymes well with Big Brother. But what connections are there between the concept of Big Data and the Ubuntu distribution? Let us start out by trying to define the concept somehow. It should be stressed that this cannot be a very definite and precise definition, since geometry is often variable in computer science and the concept of Big Data is about at the limit of what is possible with today’s off-the-shelf hardware. Tomorrow’s technology may change the basic tenets.

Le Big data et Ubuntu

Big data est une expression qui s'est métamorphosée en mot à la mode qui circule dans les sphères actuelles des technologies de l'information. Des administrateurs utilisent le terme comme un concept qui permet de se servir, d'une manière ou d'une autre, des informations collectées par les entreprises, concernant les clients. Les vendeurs de systèmes informatiques et de logiciels le perçoivent comme une occasion commerciale, et les défenseurs des droits de l'homme et de la liberté s'inquiètent des implications sociales et personnelles - après tout, Big data rime bien avec Big brother.

Mais quels sont les liens entre le concept du Big data et la distribution Ubuntu ?

Commençons par essayer de trouver une quelconque définition du concept. Je dois souligner que la définition ne peut être ni très concrète, ni très précise, puisque la géométrie de l'informatique est souvent variable et le concept de Big data s'approche de la limite de ce qui est possible avec le matériel que l'on peut se procurer aujourd'hui dans un magasin lambda. La technologie de demain peut en modifier les principes fondamentaux.

2

Naturally, Big Data is, in the first place, about large amounts of data, as the name itself implies. “Large” may have different meanings depending on context, so let us settle on the idea that “large” in “Big Data” is functionally equivalent to saying a data set “larger than what can be handled (stored or processed) in a reasonable amount of time on a single computer.” As you can see, there is some imprecision here, since the capacities in terms of processing power and disk space vary quite a bit between my laptop and a large mainframe computer. But it is clear from this definition that parallel processing is very much part of what Big Data is all about. This being said, parallel processing can very well take place in separate threads inside a single computer, so caveats apply. Another way of clarifying the concept is by considering how Big Data is generated in the first place. In the initial stages of computer science, data was collected mostly as written documents (printed matter, forms), and then entered painstakingly by hand into computers. Large companies employed whole rooms of people whose task was to type data into perforated cards, paper tape and then magnetic media.

En premier lieu, de par sa nature, le Big data concerne de très grandes quantités de données. Le terme « grand » peut signifier diverses choses, selon le contexte, et nous devons nous mettre d'accord sur l'idée que « Big (grand) » dans Big data est équivalent sur le plan fonctionnel à un ensemble de données « plus grand que ce qui peut être géré (stocké ou traité) dans un laps de temps raisonnable sur un seul ordinateur. » Comme vous pouvez le constater, cette définition comporte pas mal d'imprécisions, puisque les capacités (puissance de calcul, espace disque) peuvent être très différentes selon qu'il s'agit de mon ordinateur portable ou d'un très grand ordinateur central. Ce qui en ressort très clairement, cependant, c'est que le Big data concerne en grande partie le traitement des données en parallèle.

Cela étant dit, le traitement en parallèle peut avoir lieu dans des fils séparés à l'intérieur d'un seul et même ordinateur ; ainsi, des mises en garde s'imposent.

Une autre façon de clarifier le concept est d'examiner comment le Big data est généré au départ. Au cours des premières phases du développement de l'informatique, la plupart des données furent rassemblées en tant que documents écrits (des imprimés, des formulaires), puis rentrées manuellement, avec une attention maximum, dans les ordinateurs. Les grandes entreprises faisaient travailler de grandes salles pleines d'individus dont la tâche étaient de taper les données sur des cartes perforées, sur des rouleaux de papier, puis sur des supports magnétiques.

3

This is no longer the case. Nowadays, large amounts of commercial data are actually entered by the user him- or herself. One of the effects of the growth of e-commerce, and its companions e-business and e-administration, is that normal people actually end up filling in more forms, and with larger amounts of information, than in the day of paper forms. The electronic nature of the data that is input also makes processing much easier and faster. Finally, large amounts of information are now available that have been generated not through an active participation by a human being, but simply through automatic methods. Some examples may help clarify this. Let us say Average Joe walks out of his house one fine morning, gets into his car and goes to the grocery two streets away for a loaf of bread. Naturally, he has his mobile phone in his pocket, so his local telephone utility company has automatic information on his whereabouts by tracking to which cell base-stations his phone connects. If he has left GPS connected on his phone, this may result in both a depleted battery life, and whatever app is running in the background and has been authorized to consult GPS data to track his physical movements. If his route has passed in front of a police automatic license plate reader, data has been generated on his car’s movements. Finally, if he has used a credit card to pay for his acquisition at the store, at least two different financial organizations (his bank, and the store’s bank), now have data on the whereabouts of his credit card, and its usage patterns.

Ce n'est plus le cas. Aujourd'hui, de grandes quantités de données commerciales sont en fait entrées par l'utilisateur lui ou elle-même. L'un des effets de la croissance du e-commerce et de ses compagnons, e-business et e-administration, est que les gens normaux finissent effectivement par remplir davantage de formulaires, avec de plus grandes quantités d'information, qu'à l'époque des formulaires papier. La nature électronique des données entrées rend leur traitement plus facile et plus rapide.

Enfin, de grandes quantités d'information, qui ne sont pas générées par la participation active d'un être humain, mais tout simplement par des méthodes automatisées, sont actuellement disponibles. Quelques exemples pourraient clarifier cette idée. Disons que Monsieur Tout-le-monde quitte sa maison par une belle matinée, s'installe dans sa voiture et va acheter du pain en tranches à l'épicerie à deux rues de sa maison. Bien entendu, son téléphone mobile est dans sa poche, ce qui veut dire que la société qui assure ses services de téléphone reçoit des informations automatiques sur son emplacement en suivant la série de stations de base cellulaires auxquelles son téléphone se connecte. S'il a laissé le GPS de son téléphone activé, ceci peut résulter en une moindre durée de vie de la batterie, mais aussi cela aidera une quelconque appli lancée en arrière-plan, et autorisée à consulter les données GPS, à pister ses mouvements. Si, sur sa route, il est passé devant un lecteur automatique de plaques d'immatriculation de la police, des données concernant les mouvements de sa voiture ont été générées. Enfin, s'il utilise une carte de crédit pour payer son achat au magasin, au moins deux organismes financiers (sa propre banque et celle du magasin) possèdent maintenant des données concernant l'emplacement de sa carte de crédit et sa façon de l'utiliser.

4

It should be stressed that all of this data has been collected purely by automatic means, through the use of machines that are never turned off. Some of the information may be considered private (a private transaction between Average Joe and his baker), but much of it will in fact be considered public information in many jurisdictions. A street is, by nature, a public place, and nobody can have valid expectations of privacy concerning his movements when exposed to public view. Processing Big Data is also quite a handful. Although there is a wide variety of programming languages and data access APIs that can be used to “do” Big Data, the main paradigm is the MapReduce pattern introduced by Google, and nowadays often implemented by Hadoop. To produce an output from large amounts of data, two individual steps are taken - and both are parallelizable. In the first “Map” step, data goes through filtering and sorting. The output from this step is then piped through into a second “Reduce” step, where global outputs can be calculated. For instance, we could consider a classical SQL query such as the largely self-explanatory: SELECT SUM(salary) FROM employee WHERE division = “Logistics” In classical computing, this would require all employee files to be held within a single relational database table, which is then read sequentially - perhaps using an index - to select registers in which field “division” equals “Logistics”. The contents of field “salary” in the chosen rows are then added up and returned.

Il faut souligner que toutes ces données ne sont collectées que par des méthodes automatiques, en se servant de machines qui ne sont jamais éteintes. Une partie des informations peut sembler être du genre privé (une transaction privée entre Monsieur Tout-le-monde et son boulanger), une large partie en sera en fait considérée comme des informations publiques dans de nombreuses juridictions. De par sa nature, une rue est un endroit public et personne ne pourra penser avec raison que ses mouvements, qui ont lieu au vu et au su de tous, sont privés.

Le traitement du Big data nécessite aussi beaucoup d'attention. Bien qu'il existe une grande diversité de langages de programmation et des API pour accéder aux données, qui peuvent s'utiliser pour traiter le Big data, le paradigme principal est le modèle MapReduce introduit par Google et, aujourd'hui, implémenté souvent par Hadoop. Pour produire des résultats à partir de grandes quantités de données, deux étapes distinctes sont nécessaires - et les deux peuvent fonctionner en parallèle. À la première étape, celle de « Map », les données sont filtrées et triées. Les résultats sont alors envoyés vers une seconde étape, l'étape « Reduce », où des résultats globaux peuvent être calculés.

Par exemple, on pourrait examiner une requête classique SQL telle que l'explicite :

SELECT SUM(salary) FROM employee WHERE division = “Logistics”

Dans l'informatique classique, tous les fichiers des employés devraient se trouver dans une seule table de base de données relationnelle qui est lue de façon séquentielle - peut-être à l'aide d'un index - pour sélectionner les enregistrements dans lesquels le champ « division » égale « Logistics ». Le contenu du champ « salary » (salaire) dans les lignes choisies est alors ajouté et retourné.

5

In Big Data, things are a bit different, since employee registers will probably be spread out over several different physical computers. Actually, this is seen as desirable, since each individual record can be replicated several times, thus giving us redundancy. This can be done automatically, for example using Hadoop’s HDFS (Hadoop Distributed File System). In the “Map” step, each individual worker node will analyse the registers at its disposal, producing an intermediate output that consists of, for instance, the names and salaries of those employees that satisfy the criterion: division = “Logistics”. This data is then input into “Reduce”, where possible duplicates are eliminated and the final total is computed. Two interesting considerations arise here. In the first place, each worker node that performs initial selection and sorting is handling large amounts of data. Thus, it makes sense to try and keep the distance between the worker and the data it needs to work on as small as possible. In an ideal situation, the data would reside physically on the same computer system as the worker itself. A second point is that intermediate results are a digested version of the original data; for this reason they will, in most cases, occupy much lower volumes than the original complete set. This will then take up less space and network bandwidth when it needs to be reshuffled and distributed to other workers in preparation for the “Reduce” phase.

Côté Big data, les choses sont un peu différentes, puisque les registres des employés sont sans doute distribués sur plusieurs ordinateurs physiques. En fait, cela est perçu comme souhaitable, puisque chaque enregistrement individuel peut être répliqué plusieurs fois, ce qui nous donne une redondance. On peut le faire de façon automatique, en utilisant, par exemple, le HDFS (Hadoop Distributed File System ou Système de fichiers distribué Hadoop) de Hadoop.

À l'étape « Map », le nœud de chaque employé analysera les registres disponibles et produira une sortie intermédiaire avec, notamment, le nom et le salaire des employés qui satisfont le critère : division = « Logistics ». Ces données sont ensuite entrées dans « Reduce », où les doublons sont éliminés, le cas échéant, et le total final est calculé.

Deux considérations intéressantes se présentent ici. D'abord, chaque nœud d'employé qui fait la sélection et le tri initiaux traite de grandes quantités de données. Ainsi, c'est logique d'essayer de réduire au maximum la distance entre l'employé et les données sur lesquelles le nœud travaille. Dans l'idéal, les données seraient stockées physiquement sur le même système informatique que l'employé. Ensuite, les résultats intermédiaires sont une version digérée des données originales et, pour cette raison, ils occuperont, la plupart du temps, de bien plus petits volumes que l'ensemble complet. Cela prendra moins d'espace et de bande passante quand il faudra le remanier et le distribuer à d'autres employés pour préparer l'étape « Reduce ».

6

Now, let us consider the role our favourite operating system has to play, regarding both the storage and processing of Big Data, and its original collection. It will come as no surprise to the reader that most servers on the Internet run some distribution of the GNU/Linux operating system. This is pertinent to the handling of Big Data, since the very concept could be said to have been invented by Google - who is in a privileged position to collect large amounts of data on its users, and who has been a market leader in trying to make commercial use of this information. Google is also known to be a large GNU/Linux user, at various levels (its own servers, in software development, and as a basis to build Android). There are also quite a few large mainframes in service, running various operating systems. However, in a tendency started many years back, mainframe resources are often parcelled out into various virtual machines. System builders such as IBM are major players in this field, for example with the zSeries and “Linux on a z”: many instances of virtual machines running Linux coexist within the mainframe’s process and memory space. Others such as Amazon run large clouds of virtual machines, though on smaller servers with Intel x86_64 processors. This is where Ubuntu comes in. There are several choices of Linux distributions for a virtual machine, but in actual practice a choice is often made either from the RedHat subset of distributions (Red Hat Enterprise Linux with paid subscription, or CentOS without), or Debian’s. In Debian’s case, we find either Debian itself, without much choice of paid support, or Ubuntu Server with or without commercial support.

Examinons maintenant le rôle joué par notre système d'exploitation préféré pour ce qui concerne le stockage et le traitement du Big data, ainsi que sa collecte initiale. Personne ne sera étonné d'apprendre que la plupart des serveurs sur le Net tournent sous une quelconque distribution du système d'exploitation GNU/Linux. Cela est utile pour le traitement du Big data, puisqu'on pourrait dire que le concept même a été inventé par Google, qui est dans une position privilégiée pour la collecte de grandes quantités de données concernant ses utilisateurs et qui est un leader sur le marché dans l'utilisation commerciale de ces informations. On sait aussi que Google est un grand utilisateur de GNU/Linux, à divers niveaux (ses propres serveurs, le développement de logiciels et comme base de construction d'Android).

Beaucoup de grandes unités centrales sont également en fonction, faisant tourner divers systèmes d'exploitation. Cependant, selon une tendance qui débuta il y a pas mal d'années, les ressources de ces unités centrales sont souvent partagées entre diverses machines virtuelles. Des constructeurs de systèmes, comme IBM, sont les acteurs majeurs dans ce domaine, avec, notamment la zSeries et « Linux on a z » : beaucoup d'instances de machines virtuelles tournant sous Linux coexistent au sein de l'espace processus et mémoire de la grande unité centrale. D'autres, comme Amazon, font tourner de grands nuages de machines virtuelles, bien que ce soit sur de plus petits serveurs munis de processeurs Intel x86_64.

C'est ici qu'Ubuntu fait son apparition. Il y a plusieurs distributions Linux entre lesquelles choisir pour une machine virtuelle, mais, en pratique, le choix est fait souvent entre le sous-ensemble de distributions RedHat (Red Hat Enterprise Linux, avec un abonnement payant, ou CentOS, gratuit) et les distributions de Debian. Dans le cas de Debian, nous trouvons soit Debian lui-même, sans beaucoup de choix de soutien payant, soit Ubuntu Server, avec ou sans une assistance commerciale.

7

The insistence on the availability of paid support options may seem strange to some users. However, it should be taken into account that operating systems used as servers are in a commercial environment. Information systems are mission-critical to businesses’ workflow. Computer department heads are under pressure to deliver, and make sure they can continue to deliver in a timely manner. With these considerations taken into account, it makes sense to pay for quality service to make sure that if and when problems occur, they can be dealt with using not only the company’s own resources, but also high-quality external expertise. This explains why most large Linux distributions propose specific solutions to set up and configure virtual computers in the cloud, often prominently displayed in their web pages. CentOS proposes “a generic cloud-init enabled image” within their first paragraph https://www.centos.org/). Both RedHat (http://www.redhat.com/en/insights/openstack) and Ubuntu (http://www.ubuntu.com/cloud/openstack) are actively involved in building cloud-based farms of virtual servers using OpenStack, thus making convergence between the two Linux server distributions quite straighforward. The virtual (cloud) server technology is often applied to Big Data processing. In the first place, as has already been pointed out, it makes sense to have the workers placed near the data they will be working on, thus reducing network overhead. But most data processed by large organizations is already in the cloud, having been collected through e-commerce servers that are already virtual machines. When the collection point, storage and processing takes place within the same physical facility, data transmission costs are null to negligible, and transfers can take advantage of the server farm’s LAN infrastructure for speed.

L'insistance sur la disponibilité de possibilités d'une assistance payante peuvent sembler bizarre à certains utilisateurs. Toutefois, il faudrait prendre en compte le fait que les systèmes d'exploitation utilisés comme serveurs sont dans un environnement commercial. Les systèmes d'information sont vraiment essentiels au flux de travail des entreprises. Les chefs du service informatique sont sous pression et doivent pouvoir garantir que leur système fonctionnera sans faille et rapidement. Ces considérations rendent logique le paiement d'un service d'assistance de qualité pour s'assurer que, si et quand des problèmes se présentent, ils peuvent être résolus grâce à une expertise extérieure de haute qualité et pas seulement avec les ressources propres de l'entreprise.

Cela explique pourquoi la plupart des grandes distributions Linux proposent des solutions précises pour créer et configurer des ordinateurs virtuels dans le nuage, et ces solutions sont affichées de façon bien visible sur leurs pages Web. Sur leur site, CentOS propose « une image générique d'activation de cloud-init » dans les premiers paragraphes (https://www.centos.org/). RedHat (http://www.redhat.com/en/insights/openstack) et Ubuntu (http://www.ubuntu.com/cloud/openstack), tous les deux, s'impliquent activement dans la construction de fermes de serveurs virtuels basées dans le nuage au moyen d'OpenStack, rendant très simple la convergence entre les deux distributions serveur Linux.

La technologie du serveur virtuel (dans le nuage) s'applique souvent au traitement du Big data. En premier lieu, comme mentionné plus haut, il est logique que les employés soient proches des données sur lesquelles ils vont travailler, réduisant ainsi la surcharge réseau. Mais la plupart des données traitées par de grands organismes se trouvent dans le nuage déjà, ayant été collectées par des serveurs du e-commerce, qui, eux, sont déjà des machines virtuelles. Quand le point de collection, le stockage et le traitement ont lieu à l'intérieur des mêmes structures physiques, le coût de la transmission des données est nul ou presque rien et, pour la vitesse, les transferts peuvent profiter de l'infrastructure LAN de la ferme de serveurs.

8

In the second place, using virtualization as a basis for data processing means organizations (which need to process large amounts of data) no longer need to acquire and maintain large server farms. The infrastructure costs are externalized to cloud computing providers such as Amazon, and leased only as needed. This introduces more flexibility, since smaller or larger numbers of servers may be provisioned as needed according to the size or complexity of each specific problem or data set. Big Data processing today seems to be firmly in the domain of Linux-based virtual machines in the cloud, with Ubuntu as at least one of the main players in the field. But what about data collection in the first place? Please take a moment to navigate to the Ubuntu project’s homepage, http://www.ubuntu.com/. Now consider the main menu options. Beside “Cloud”, “Server” and “Desktop”, we find three further options that relate to devices that may be used for Big Data collection: “Phone”, “Tablet” and “Things”. This last category can be interpreted as Canonical’s interest in putting a version of Ubuntu (Core) on relatively lightweight and inexpensive computing devices, mostly based on versions of the same ARM platform that powers most phones and tablets.

En deuxième lieu, utiliser la virtualisation comme base pour le traitement des données veut dire que les organisations, qui ont besoin de traiter de grandes quantités de données, n'ont plus besoin d'acquérir et d'entretenir de grandes fermes de serveurs. Les coûts d'infrastructure sont externalisés vers des fournisseurs d'informatique dans le nuage, comme Amazon, et ces services ne sont loués qu'au besoin. Cela introduit plus de flexibilité, puisque des serveurs moins, ou plus nombreux, peuvent être utilisés au besoin, selon la taille ou la complexité de chaque problème ou ensemble de données précis.

Aujourd'hui, le traitement du Big data semble se faire strictement par des machines virtuelles dans le nuage basées sur Linux, Ubuntu étant au moins un des acteurs principaux dans le domaine. Mais quid de la collecte des données au départ ?

Veuillez prendre une minute pour naviguer jusqu'à la page d'accueil du projet Ubuntu, http://www.ubuntu.com/. Maintenant, regardez les options du menu principal. Outre « Cloud », « Server » et « Desktop », nous trouvons trois options supplémentaires qui ont un rapport avec des dispositifs qui peuvent servir pour la collecte du Big data : « Phone », « Tablet » et « Things » (objets). On peut interpréter cette dernière catégorie comme l'intérêt qu'a Ubuntu à mettre une version d'Ubuntu (Core) sur des appareils informatiques assez légers et peu chers, pour la plupart basés sur des versions de la même plateforme ARM qui alimente la plupart des téléphones et tablettes.

9

Once these are used to make Average Joe’s consumer electronics more smart - televisions, car entertainment systems, heating systems, and more - and above all more connected to the Internet, possibilities are endless to collect data and forward them on to whatever service provider gets in on the act. Average Joe may even benefit from the innovation. Obtaining real-time access to traffic conditions while driving may be seen as a useful bit of progress for the large part of humanity that lives in congested urban areas. Being able to monitor and fine-tune home central heating at a distance, thus reducing heating bills and carbon emissions cannot be seen as a bad proposition. Ubuntu Core is a perfect fit for this type of application, since its modular structure fits in well with getting “just enough Operating System” for lightweight hardware, leaving the system integrator just with the task of building his own code module for the specific task required of the system. So, basically, Ubuntu is well set to occupy large chunks of the Big Data ecosystem, from storage servers and processing workers in virtual machines, down to the very smart devices that populate data sets. There is just one niggling doubt at the back of my mind. What about individual freedom, including the freedom not to be tracked not only in the digital world, but also in our real-life physical existence? When will the community - and Canonical itself - stand up and clearly state its position on the matter? Just saying…

Une fois que ceux-ci seront utilisés pour rendre l'électronique grand public de Monsieur Tout-le-monde plus intelligente - des téléviseurs, des systèmes de divertissement dans les voitures, des systèmes de chauffage et plus - et surtout connectée au Net, les possibilités de collecter des données et de les transférer à tout fournisseur de service qui s'y est mis, sont infinies.

Il se peut que Monsieur Tout-le-monde bénéficie de l'innovation. Avoir un accès en temps réel aux conditions de la circulation tout en conduisant, peut être considéré comme un progrès utile pour la grande partie de l'humanité vivant dans des zones urbaines congestionnées. Être capable de surveiller et d'ajuster le chauffage central de votre maison à distance, et ainsi réduire les factures de chauffage et les émissions de carbone ne peut pas être jugé comme quelque chose de mauvais.

Ubuntu Core se prête parfaitement à ce type d'application, puisque sa structure modulaire cadre très bien avec l'obtention de « juste assez de système d'exploitation » pour du matériel léger, en ne laissant à l'intégrateur système que la tâche de construire son propre module de code pour le travail précis que le système doit fournir. Ainsi, fondamentalement, Ubuntu est fin prêt pour accaparer de grands morceaux de l'écosystème du Big data, des serveurs de stockage et du traitement des employés dans des machines virtuelles, jusqu'aux dispositifs très intelligents qui alimentent les ensembles de données.

Il y a juste un doute qui me taraude l'esprit.

Quid de la liberté individuelle, y compris la liberté de ne pas être suivi à la trace, non seulement dans le monde numérique, mais aussi dans notre vraie vie d'hommes et de femmes ? Quand la communauté - et Canonical lui-même - se dressera-t-elle pour annoncer clairement sa position sur le sujet ?

Mon grain de sel…

issue106/monopinion.txt · Dernière modification : 2016/03/04 17:53 de andre_domenech