MARGO

Actualité

Exploration de Google Cloud Platform

de l’infrastructure à la Data Science

Par Joshua Mifsud Consultant DataScientist chez Margo

06/03/2018

Google propose une cinquantaine de produits sur son Cloud, de l’infrastructure (stockage et puissance de calcul) au Machine Learning, en passant par la transformation et l’analyse de données massives. Ce sont des outils qui sont, pour la plupart, rapides à mettre en place (set-up en 10 min voire moins) et peu coûteux par rapport à une infrastructure standard on-premise.

On y trouve des solutions clé en main en mode SaaS (Software as a Service) telles que des APIs de Machine Learning (reconnaissance de visages ou encore détection de sentiments…) ainsi que des solutions plus bas niveau comme le storage et le Cloud Computing en mode IaaS ((Infrastructure as a Service). Sont aussi disponibles des produits à mi-chemin entre l’infrastructure et le service qui permettent de déployer ses propres applications : les PaaS (Platform as a Service).

3 différents types de services : du service d’infrastructure (IaaS) au service clé en main (SaaS)

 

A l’heure du serverless

La grande majorité des produits Google Cloud fonctionnent en mode « serverless ». Ces serveurs sont quelque part dans le Cloud de Google, cependant, ils sont invisibles pour l’utilisateur qui n’a plus à se soucier du dimensionnement de l’infrastructure. Autrement dit, le système se met à l’échelle en fonction du besoin en calcul et en stockage de l’utilisateur pour de très gros volumes.

Google App Engine permet de déployer sa propre application sur le PaaS de façon sécurisée en gérant facilement le versioning.  Il est d’ailleurs possible de faire de l’A/B testing en déployant deux versions différentes d’une même application. Cette solution est capable de se mettre à l’échelle pour 1 milliard d’utilisateurs.

Le storage sur le Cloud

Google Cloud offre de nombreuses solutions de stockage adaptées à différents besoins. Il faut compter seulement quelques minutes pour installer une instance de stockage dans le Cloud.

La plus basique est le stockage de fichiers plats, immutables sur le Cloud Storage, que l’on paie selon le volume de fichiers présents dans l’instance (appelée bucket). Il est possible de choisir le type de bucket selon l’utilisation que l’on en fait, avec des latences adaptées en conséquence (selon que l’accès doit être fréquent et rapide ou très rare).

Des produits tels que BigTable ou DataStore permettent de stocker des données sous forme de documents en disposant d’un débit élevé et d’une latence très faible (5 ms pour accéder à 1 To), idéal pour du real-time processing.

Le Cloud Compute 

Il est très aisé (cela prend moins d’une minute) de monter une machine dans le Cloud via une console ou en ligne de commande. On choisit le nombre de cœurs (jusqu’à 64 !), ainsi que la RAM et le disque (HDD ou SDD). Il est possible de monter les machines en réseau pour répartir la charge de calcul sur l’ensemble des machines, ce processus prend environ 10 min. La puissance de calcul est facturée au prorata du fonctionnement de la machine (une machine éteinte coûte 0$).

Le Big Data

Plusieurs outils permettent de faire du processing sur de très gros volumes de données. Parmi eux, Dataflow qui permet de faire de l’ETL en batch ou en streaming. Il est provisionné automatiquement et son API permet par exemple de calculer une moyenne sur une fenêtre glissante en une seule ligne de code

L’outil BigQuery offre un système relationnel (mais non transactionnel) en mode serverless qui permet de faire de l’analytics sur des bases de données relationnelles en langage SQL. Ses capacités de calcul permettent de traiter 1 milliards de lignes en deux secondes pour une requête comprenant un comptage et un « group by », des performances difficiles à trouver sur une infrastructure possédant une telle capacité de calcul.

Enfin, il est possible de monter un cluster Hadoop (équipé de Pig/Hive/Spark) en moins de 2 min via la console Cloud ou en ligne de commande. Dans son cluster, on peut notamment utiliser des machines dites « preemptible » moins coûteuses, qui peuvent être utilisées à tout moment par Google. De plus, si un processing est en cours, il est quand même possible d’ajouter ou de retirer un nœud au cluster.

Machine Learning/Deep Learning

En termes de Machine Learning, Google dispose d’APIs basées sur Tensorflow qui permet, entre autres, d’implémenter des réseaux de neurones. Une API NLP (Natural Language Processing) permet d’identifier des entités présentes dans un texte ainsi que leurs natures (organisations, personnes, célébrités) et d’en extraire un sentiment et son intensité.

L’API Google Vision permet à l’utilisateur de détecter des visages dans une image ainsi que les émotions qui s’en dégagent avec un certain niveau de confiance.

On peut aussi réaliser de la reconnaissance d’objets dans une vidéo et ainsi lister les objets d’une image à différents moments de la vidéo.

Il est intéressant de noter que l’infrastructure derrière ces APIs n’utilise pas des processeurs habituels tels que des CPU (Computer Processing Unit) ou des GPU (Graphic Processor Unit). Google a conçu de nouveaux types de processeurs appelé TPU (Tensor Processor Unit) optimisés pour le calcul matriciel que nécessite les réseaux neuronaux, ce qui explique des temps de calcul minimes. Les TPU sont aussi disponibles sur le Cloud Compute.

Pour les Data Scientists, l’instance DataLab du cloud permet de manipuler des données et de construire des modèles de Machine Learning ou de Deep Learning (avec Tensorflow) via un notebook Python très similaire à Jupyter et muni nativement des bibliothèques Data Sciences de base (numpy, pandas, scikit learn, ntlk pour le text-mining, matplotlib et seaborn pour data viz et tensorflow). Cependant, nous avons pu constater à plusieurs reprises que ce composant présente des instabilités (notamment des problèmes de connexion SSH).

Une dernière possibilité intéressante, à mi-chemin entre l’API clé en main et la modélisation « from scratch », est Cloud AutoML. Cette fonctionnalité permet d’entraîner les modèles de Google avec ses propres données afin de s’adapter au contexte du problème à traiter.

En synthèse

La solution Google Cloud Platform permet très rapidement de créer des applications et de les héberger sur des environnements totalement « serverless » avec un mode de facturation basé sur une consommation à la seconde des infrastructures. Pour les contextes de Data Science, Google fournit une suite complète de composants techniques et de solutions qui permettent très rapidement de disposer de capacités importantes pour explorer et exploiter des gisements de données.

 


Par Joshua Mifsud Consultant DataScientist chez Margo
Big Data
Cloud
Data
Google
Machine Learning
Actualité

La Data Science appliquée au monde du retail : les 10 use-cases incontournables

La Data Science impacte de plus en plus les business model dans toutes les industries, et notamment dans la vente de détail. Selon IBM, 62% des détaillants déclarent que l'utilisation de techniques relatives au Big Data leur donne un sérieux avantage compétitif. Savoir ce que veut votre client et à quel moment est aujourd’hui à portée de main grâce à la data science. Pour cela il suffit d’avoir les bons outils et les bons processus en place pour les utiliser. Nous présentons dans cet article 10 applications essentielles de la data science au domaine du retail.

18/05/2018 Découvrir 
Actualité

Introduction aux Chatbots avec Dialogflow

DialogFlow est un très bon outil pour apprendre à créer des Chatbots qui pourront ensuite être intégrés dans vos propres sites web ou applications. Dans cet article, je commencerai par introduire quelques notions sur Dialogflow et les Chatbots, puis je vous expliquerai comment créer simplement un Chatbot sur cette plateforme.

07/05/2018 Découvrir 
Actualité

Introduction aux systèmes réactifs

Les systèmes réactifs sont un style d’architecture permettant à de multiples applications individuelles de se fondre en une seule unité, en réagissant à leur environnement, tout en restant conscientes les unes des autres. La première formalisation de ce terme a vu le jour avec la création du « Reactive Manifesto » en 2013 par Jonas Boner qui, en rassemblant certains des esprits les plus brillants dans l’industrie des systèmes distribués, souhaitait clarifier la confusion autour de la réactivité (qui est devenu un « buzz-word ») et construire une base solide pour un style de développement viable.

04/05/2018 Découvrir 
Actualité

Mise en place d'une plateforme centralisée de gestion des logs avec la suite Elastic

Les cas d’usage de la suite elastic sont nombreux. Nous citons à titre d’exemple la correction d’un dysfonctionnement applicatif par la récupération des erreurs explicites (exception, message d’erreur ..etc) et le suivi de la charge d’une application (mémoire consommée, CPU ..etc), ce qui permet d’avoir une vision globale de la production. De même au niveau métier, il est possible d’exploiter la suite pour valider une chaîne de workflow par l’extraction des données spécifiques et leurs analyses.

04/05/2018 Découvrir 
Actualité

Introduction à TensorFlow sur le datalab de Google Cloud Platform

TensorFlow est une librairie logicielle, open source depuis 2015, de calcul numérique développée par Google. Dans ce mini-tutoriel, nous allons vous apprendre comment utiliser datalab sur GCP et écrire votre premier programme en TensorFlow.

04/05/2018 Découvrir 
Actualité

Les horloges de Lamport et le pattern de l’Idempotent Producer (Kafka)

Connaissez-vous les horloges de Lamport ? Devoxx France 2018 était l’occasion, lors du très intéressant talk de DuyHai DOAN, de découvrir ou redécouvrir cet algorithme formalisé par Leslie Lamport en 1978, plus que jamais utilisé aujourd’hui dans le domaine des systèmes distribués, et qui aurait notamment inspiré les développeurs de Kafka dans l’implémentation du pattern de l’Idempotent Producer.

26/04/2018 Découvrir