Comment déployer et utiliser son Big Data sur Google Cloud Platform ? Par Sébastien Lavayssière et Aurélien Perrier

78605f82de8b2ea497603533d022f1e0?s=47 WeScale
February 20, 2019

Comment déployer et utiliser son Big Data sur Google Cloud Platform ? Par Sébastien Lavayssière et Aurélien Perrier

Au programme de cette session des #WeSpeakCloud : Big Data et Google Cloud Platform.

Aujourd'hui le Cloud est au centre de vos infrastructures et la gestion des données est un point majeur.

Un Cloud est en avance sur cette gestion des données : Google Cloud Platform.
"Mais comment déployer et utiliser son Big Data sur Google Cloud Platform ?"

Durant cette démonstration nous allons voir quels outils utiliser dans GCP pour extraire des données des réseaux sociaux pour une analyse métier.
Nous étudierons une organisation optimum de GCP et de la suite Google Doc pour obtenir une solution fiable et résiliente.
Un seul pré-requis pour profiter pleinement de ce rdv :
Connaître Google Cloud Platform

Mais les #WeSpeakCloud by WeScale késako ?
La transmission et le partage des connaissances font intégralement partie de nos valeurs chez WeScale.
C’est pour cela que nous avons décidé d'organiser les #WeSpeakCloud "et si nous parlions Cloud ?", une série d'évènements gratuits où nous pourrons apprendre et discuter ensemble sur des sujets actuels qui constituent les technologies et l'environnement Cloud.

78605f82de8b2ea497603533d022f1e0?s=128

WeScale

February 20, 2019
Tweet

Transcript

  1. Comment mettre mes BigData dans Google Cloud Platform ?

  2. Présentation BigData @ GCP - WeSpeakCloud WeScale La transmission et

    le partage des connaissances font intégralement partie de nos valeurs chez WeScale. C’est pour cela que nous avons décidé d'organiser, les #WeSpeakCloud, une série d'événements gratuits où nous pourrons apprendre et discuter ensemble sur des sujets actuels qui constituent les technologies et l'environnement Cloud.
  3. • Aurélien Perrier • Sébastien Lavayssière Lancement BigData @ GCP

    - WeSpeakCloud Les présentateurs
  4. Cette session des WeSpeakCloud a pour objectif de présenter une

    méthode de collecte, de traitement et de stockage d’un ou plusieurs flux de données en utilisant le Cloud de Google. C’est une présentation orienté architecture d’infrastructure et système et non une présentation orientée pour des Data Scientistes même si cette projection des données est pour leur usage. Objectifs de cette session BigData @ GCP - WeSpeakCloud Mes Bigdata dans GCP
  5. Besoins de l’application Invention d’un cas client

  6. Le client est une société proposant des services autour des

    réseaux sociaux. Pour la version suivante de son offre de service il a besoin de faire des analyses sur des réseaux sociaux diverses. Objectif de cette application BigData @ GCP - WeSpeakCloud Cas client fictif
  7. Objectif de cette application BigData @ GCP - WeSpeakCloud Cas

    client Data Sources Normalisation Enrichissement Stockage Analytics Visualisation Flux Admin Public
  8. Il veut offrir à ces clients : • Un flux

    d’information multi-canal sur un sujet donné. • Une agrégation des données disponibles via une API REST. • Un dashboard “administrateur” de sélection de messages. • Un dashboard “client” de projection des messages. Et pour ses collaborateurs : • Une source d’information facile sur l’historique des tweets d’un sujet. • Une étude des statistiques du réseau social sur une période de temps. Objectif de cette application BigData @ GCP - WeSpeakCloud Cas client
  9. Le flux est disponible via Server-sent Events. Ce protocole, disponible

    sur HTTP/2, permet la lecture d’un flux en continue. Ce flux peut être utilisé directement par un client. Dans cette démo nous allons utiliser ce flux dans un client web en utilisant HTML5 qui implémente nativement le protocole SSE. Flux de messages “admin” et “client” BigData @ GCP - WeSpeakCloud Cas client
  10. Il faut récupérer deux informations nécessaires aux utilisateurs finaux :

    • Le top 10 des émetteurs. • Les statistiques du système (nombre de messages, latence, …). API Agrégation BigData @ GCP - WeSpeakCloud Cas client
  11. • Scalabilité de la chaîne de traitement : objectif pseudo-temps

    réel. • Traçabilité de bout en bout de la chaîne de traitement. • Traçabilité des requêtes vers l’API . Besoins techniques BigData @ GCP - WeSpeakCloud Cas client
  12. • Démonstration interface “administrateur”. • Démonstration interface “public”. • Démonstration

    de la feuille GSheet. Démo de la solution BigData @ GCP - WeSpeakCloud Présentation au client
  13. Architecture Cloud

  14. Architecture BigData @ GCP - WeSpeakCloud Schéma injectors Kubernetes Injectors

    Twitter Mastodon PubSub Topic Raw PubSub Topic Raw
  15. PubSub • Middleware Oriented Message • Service Managé • Publisher/Subscriber

    • Scalabilité automatique Kubernete Engine • Kubernetes • Service managé • Intégration dans GCP • Scalabilité automatique GRPC • Protocole • Implémenté dans PubSub • Amélioration des performances par rapport à HTTP + Json Outils utilisés BigData @ GCP - WeSpeakCloud PubSub - GKE - gRPC
  16. Architecture BigData @ GCP - WeSpeakCloud Schéma normalizer Kubernetes Normalizers

    Raw Raw Mastodon Twitter Normalized Natural Language API
  17. • Utilisation de “Sentiment Analysis”. • AutoML • Présentation d’un

    indice entre -1 et 1: ◦ Supérieur à 0 : sentiment positif. ◦ Inférieur à 0 : sentiment négatif. Outils utilisés BigData @ GCP - WeSpeakCloud Natural Language API
  18. Et pourquoi pas ? BigData @ GCP - WeSpeakCloud Dataflow

    / Dataproc Cloud Dataflow Cloud Dataproc Service managé permettant l'exécution de pipeline “Beam” ou de job “Spark”. Utilisation: micro-batch et streaming. Cas d’utilisation serverless. Service managé permettant l'exécution de job “Spark” sur une architecture Hadoop. Utilisation: batch
  19. Architecture BigData @ GCP - WeSpeakCloud Schéma consumer Kubernetes Consumers

    Normalized BigTable BigTable Aggregator DataStore Stats CloudScheduler MemoryStore Count Aggregator (listener) Schedule
  20. BigTable • Base de donnée • Orienté colonne • Orienté

    BigData MemoryStore • Redis • Service Managé • Gestion du cache • Accès rapide à la donnée DataStore • Base de donnée • NoSQL • Disponibilité • Lecture rapide Outils utilisés BigData @ GCP - WeSpeakCloud BigTable - MS - DS
  21. • Cron Job • PubSub ou HTTP triggers Outils utilisés

    BigData @ GCP - WeSpeakCloud Cloud scheduler
  22. • Calcul de la clef. • Exemple de code •

    Regardons la table ◦ cbt -instance "test-instance" read "test-table" Zoom sur ... BigData @ GCP - WeSpeakCloud Les data dans BigTable...
  23. Users Users Public Admin Architecture BigData @ GCP - WeSpeakCloud

    Consommation k8s Consumers Public Aggregator DataStore MemoryStore Validated Istio S S E BigTable BigQuery Google Sheet DS Admin S S E Normalized
  24. Google Sheet • SaaS • Tableur • Intégration avec GCP

    facilité BigQuery • Service Managé • Analytics BigQuery DataSet • Public ou privé • Mapping ou repo • Dataset à la journée (?) Outils utilisés BigData @ GCP - WeSpeakCloud GSheet - BQ - BQDS
  25. SELECT ms.user.cell.value as user, ms.sentiment.cell.value as sentiment FROM `slavayssiere-sandbox.test_bq.ms` WHERE

    rowkey LIKE 'twitter-#kubernetes-%' ORDER BY ms.data.cell.timestamp DESC LIMIT 100 Zoom sur ... BigData @ GCP - WeSpeakCloud Les requêtes dans BigQuery...
  26. • en Golang • Serverless • Intégration avec une API

    Gateway… à venir ! Outils utilisés BigData @ GCP - WeSpeakCloud Cloud function
  27. • Javascript Style • Exemple de code Zoom sur ...

    BigData @ GCP - WeSpeakCloud Le développement dans...
  28. Architecture : schéma global BigData @ GCP - WeSpeakCloud Kubernetes

    Injectors Twitter Mastodon Raw Raw Normalizers Mastodon Twitter Norm Consumers BigTable BigTable Agg-app DS Scheduler MS Agg-listen Pub & Priv BigQuery Google Sheet Trig Users Valid
  29. Architecture Infrastructure

  30. Infrastructure Google Cloud - Schéma général BigData @ GCP -

    WeSpeakCloud
  31. Infrastructure Kubernetes - outils utilisés BigData @ GCP - WeSpeakCloud

    Outils Identity-Aware Proxy External DNS Prometheus Operator Istio Helm
  32. Infrastructure as Code BigData @ GCP - WeSpeakCloud Outils Terraform

    Outil IaC, Base de connaissance Infrastructure. Gcloud Commande CLI officielle Google Cloud Plateform, Création / modification / suppression de ressources. Kubectl Commande CLI Kubernetes, Création / modification / suppression de ressources au sein d’un Cluster.
  33. Infrastructure as Code BigData @ GCP - WeSpeakCloud Etapes de

    construction de l’infrastructure • Utilisation des layers Terraform et de Gcloud pour construire l’infrastructure • Utilisation de Helm et Kubectl pour les objets Kubernetes • Bash pour les lier toutes les parties ...
  34. Infrastructure as Code BigData @ GCP - WeSpeakCloud Layer-Base VPC

    Public DNS Private DNS IAM Private Subnet Secondary Range pods Secondary Range services NAT
  35. Infrastructure as Code BigData @ GCP - WeSpeakCloud Layer-Bastion VPC

    Private DNS Private Subnet Bastion Public DNS S S H Outils d’administration HTTP
  36. Infrastructure as Code BigData @ GCP - WeSpeakCloud Layer-Kubernetes VPC

    Private Subnet Secondary Range pods Secondary Range services Kubernetes Node Pool Node-a Node-b Node-c
  37. Infrastructure as Code BigData @ GCP - WeSpeakCloud Layer-Data VPC

    BigTable Node-a Node-b Node-c Cloud Scheduler PubSub - topic 1 PubSub - topic 2 PubSub - topic 3 PubSub - topic n PubSub - sub 1 PubSub - sub 2 PubSub - sub 1
  38. Infrastructure as Code BigData @ GCP - WeSpeakCloud Layer-Services VPC

    Private Subnet Kubernetes BackendConfig Public BackendConfig IAP
  39. Infrastructure Istio BigData @ GCP - WeSpeakCloud Kubernetes istio-system normalizer

    injector consumers app-* agregato r twitter APIs Twitter proxy proxy mastodon proxy proxy proxy proxy twitter mastodon APIs Mastodon svcentry svcentry svcentry svcentry Istio-Gateway-IAP svcentry svcentry svcentry Istio-Gateway-Public
  40. Scalabilité BigData @ GCP - WeSpeakCloud Schéma général Kubernetes namespace:

    custom-metrics service-account Deployment + Service custom-metrics-stackdriver-adapter APIService v1beta1.external.metrics.k8s.io v1beta1.custom.metrics.k8s.io namespace applicatif Deployment application HorizontalPodAutoscaler Pub/sub
  41. Tips

  42. Problèmes rencontrés BigData @ GCP - WeSpeakCloud Etapes • Istio

    : temps de propagation des “ServiceEntry” • Global Load-Balancer HTTP avec GCP : Pilotage avec les “Ingress” de GCE • Gestion de la traçabilité via PubSub...
  43. Code applicatif : exemples BigData @ GCP - WeSpeakCloud •

    Go-mods • Conteneurisation multi-stage • SDK Golang Google Cloud Platform • Server-sent Events Par l’exemple sur “app-sse” et “aggregator” !
  44. Observability BigData @ GCP - WeSpeakCloud Jaeger Prometheus + Grafana

    Kiali SourceGraph
  45. Conclusion enfin la FIN...

  46. • intégration des bucket backend sur les Ingress GKE …

    ("ingress-gce" issues # 33) • Enrichissement des données (Natural Language API & autres...) • Intégration de pipeline automatisés pour ◦ Dataproc ◦ Dataflow • intégration des endpoints Cloud Functions dans le périmètre du LB HTTP IAP • authentification de la GSheet par rapport aux appels REST vers la plateforme La suite... BigData @ GCP - WeSpeakCloud Pour aller plus loin...
  47. Questions ?

  48. • Vous pouvez retrouver tout le code de cette démonstration

    sur: https://github.com/WeScale/bigdata-on-gcp • La présentation est disponible sur SpeakerDeck (lien dans le github) • La vidéo sera disponible sur notre chaîne Youtube : WescaleTV Sur Github... BigData @ GCP - WeSpeakCloud Retrouver la présentation et le code...
  49. 23 rue Taitbout 75009 Paris www.wescale.fr | blog.wescale.fr Aurélien Maury

    Directeur Technique 06 76 24 69 67 aurelien.maury@wescale.fr Sébastien Lavayssière Flying Designer 06 24 99 47 48 sebastien.lavayssiere@wescale.fr Aurélien Perrier Cloud Builder 06 30 05 45 87 aurelien.perrier@wescale.fr