211service.com
Code moins maladroit pour le cloud
Le cloud computing permet aux entreprises de stocker et de traiter les données plus efficacement que jamais. Mais le code utilisé pour contrôler les machines dans un cloud informatique reste étonnamment maladroit. Aujourd'hui, certains chercheurs explorent de nouveaux langages de programmation pour contrôler le cloud, et ils empruntent une approche développée dans les années 80.
La plupart des langages de programmation n'ont jamais été conçus pour gérer autant d'ordinateurs ou autant de données réparties entre eux. Des frameworks logiciels tels que MapReduce de Google et un concurrent ouvert appelé Hadoop fournissent des outils pratiques pour ce faire. Mais il y a de la place pour rendre le processus beaucoup plus efficace.
Nous ne pouvons pas continuer à programmer les ordinateurs comme nous le sommes, dit Joseph Hellerstein , professeur d'informatique à l'Université de Californie à Berkeley. Hellerstein est impliqué dans un projet appelé BOOM , visant à développer de nouvelles techniques de programmation du cloud. Les gens n'ont pas un moyen facile d'écrire des programmes qui tirent parti du fait qu'ils pourraient louer 100 machines sur Amazon.
La plupart des programmes logiciels sont constitués d'instructions qui indiquent à un ordinateur d'effectuer une série d'actions dans un certain ordre. L'un des gros avantages du cloud computing est qu'il permet de scinder un programme afin que différentes instructions puissent être traitées en même temps. Mais il est difficile d'écrire le code nécessaire pour le faire avec la plupart des langages de programmation, et ce problème se traduit par un logiciel pléthorique.
Hellerstein veut permettre de créer des logiciels qui s'exécutent à une échelle beaucoup plus grande, sur des milliers de machines basées sur le cloud, en utilisant beaucoup moins de code. Pour ce faire, il s'est tourné vers les recherches menées dans les années 80 sur la programmation efficace des bases de données. Hellerstein affirme que les technologies de base de données, qui peuvent collecter de grands ensembles de données et les traiter de diverses manières, pourraient être particulièrement efficaces pour tirer parti de la nouvelle puissance de calcul.
L'une des raisons est que les informations de la base de données sont souvent traitées par lots, et peu importe l'ordre utilisé par un ordinateur pour gérer ces lots. Cela permet aux programmeurs de répartir facilement les tâches de base de données entre de nombreux processeurs. Si facile, en fait, que des programmes de cette nature sont parfois qualifiés de parallèles embarrassants.
Le groupe d'Hellerstein a modifié un ancien langage appelé Datalog pour lui permettre d'écrire des programmes pour le cloud. Le problème, dit Hellerstein, est de déterminer dans quelle mesure un programme peut se produire simultanément, d'identifier les moments où il doit absolument s'arrêter et de recueillir des informations sur l'état des différentes tâches. Le groupe développe actuellement un langage appelé Bloom pour fournir aux programmeurs un moyen convivial de gérer la syntaxe souvent complexe du système sous-jacent basé sur Datalog.
Hellerstein espère que Bloom aidera les programmeurs à écrire des logiciels pour le cloud sans avoir à s'éloigner complètement des langages familiers. Le groupe Hellerstein conçoit Bloom comme une bibliothèque pouvant être utilisée avec des langages populaires tels que Java et Python. L'utilisation de Bloom dans l'un de ces langages encouragerait les programmeurs à concevoir des logiciels qui utilisent le plus efficacement possible les ressources disponibles dans le cloud. Cela évite également aux programmeurs d'avoir à apprendre un langage entièrement nouveau.
Georg Gottlob , professeur au Laboratoire d'informatique de l'Université d'Oxford et expert en Datalog, affirme que l'utilisation du langage pour gérer les applications à l'échelle du Web a beaucoup de sens. Lorsque Datalog a été inventé, dit-il, il est arrivé trop tôt pour être largement utilisé en raison de la puissance de traitement limitée à l'époque. Avec la prolifération de l'informatique distribuée, dit Gottlob, le langage a connu une grande renaissance.
C'est là que se dirige l'avenir, déclare Elias Torres, qui utilise des outils de cloud computing dans plusieurs startups. Il y a plusieurs années, Torres a pu utiliser un précurseur de Bloom dans un projet de simplification d'un protocole complexe pour les systèmes distribués. C'était instructif, car j'ai pu me concentrer sur les données circulant dans le système, dit-il.
De nos jours, dit Torres, vous devez comprendre comment les données doivent être stockées, organisées et consultées pour progresser. Toute application Web doit gérer une masse de données sans cesse croissante, et Torres pense que les programmeurs trouveront des outils comme Bloom de plus en plus utiles.