SlideShare une entreprise Scribd logo
1  sur  34
Real life targeting & Offline measurement
The leading offline predictive marketing engine
2©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 2©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Discover and deploy with Consul and Ansible
3©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 3©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
OUR BUSINESS
1
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 4
Our solution
GEOLOCATE TARGET MEASUREDISPLAY
1 2 3 4
10+ millions
smartphones
Audiences base on
their offline in-store
behavior
Mobile ads in-app In-store foot
traffic and visits
5©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 5©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Evolution of our service dependency system
2
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Data collection pipeline
Http Server
Java / Vert.x
Message Queue System
(Apache Kafka)
Streaming
server
Java
Geolocation
Events
Google BigQuery
Google Compute Engine
Mobile SDK
Control
server
(Burrow)
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Generalization of our system
A D B
Both A,B and C are dependent of D.
C
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 8
Hostname hardcoded
A
Hostname of
D hardcoded
D
B
Hostname of
D hardcoded
Pro: easy to setup
Cons: if we move the service D to another machine, we need to change A/B/C source code and redeploy.
C
Hostname of
D hardcoded
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 9
Discovery at deployment time
A
Hostname of
C defined at
deployment
time
D
B
Hostname of
C defined at
deployment
time
Pro: easy to setup
Cons: if we move the service D to another machine, we need to change A/B/C source code and redeploy A,B and C.
We provision our instances using an Ansible script.
During the provisioning, Ansible will query the network to retrieve the hostname of the machine providing the D service.
C
Hostname of
C defined at
deployment
time
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 10
Service Discovery using Consul
A D B
Service Registry
Retrieve hostname of a machine providing service D Retrieve hostname of a machine providing service D
Registration
Pro:
• If we move D to another machine, A, B, C will automatically pick up the new address of D
• We can have easily multiple instances providing D
• No need to redeploy using Ansible
Cons: The service registry must not be down.
C
11©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 11©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Basic architecture of Consul
2
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Basic architecture of Consul
• Each node should run a consul agent
• Consul servers are where data is stored and replicated.
• The servers themselves elect a leader.
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 13
Details of our usage of Consul
C
Service Registry
A application
Consul agent
DNS (d.service.consul.)
Consul server
Consul agent
config.json:
“Provides service D”
D application
Machine 1 Machine 2 Machine 3
B application
Consul agent
DNS (d.service.consul.)
14©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 14©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Fake demo
14
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Consul hello world
Instance 1
Consul client
Instance 2
Provides service
“web” on port 80
Nginx
Consul client
Consul server
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Setup the consul server
/etc/consul/config.json
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
Start consul server
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 18
Check consul cluster state
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 19
Configure consul client on instance 1
/etc/consul/config.json
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 20
Start consul client on instance 1
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 21
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 22
Check consul cluster state
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 23
Configure consul client on instance 2
/etc/consul.d/web.json/etc/consul.d/config.json
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 24
Start consul client on instance 2
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 25
Start consul client on instance 2
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 26
Check consul cluster state
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 27
Consul UI
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 28
Retrieve the IP of machine running the service “web”
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 29
Redirect port 53 to 8600 for “.consul” domains
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 30
Try to dig again using the default port
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 31
Access to the service “web”
©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 32
Summary
• Great compatibility with current systems with HTTP and DNS API
• Benefits of service discovery
• Migration of machines
• Add/Remove multiple machines
• Health checks
• Autoscaling of services
• Be careful of consul downtime
33©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 33©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite.
We are hiring!
33
guillaume@databerries.com
Guillaume Charhon
CTO & Co founder
+33 6 41 69 69 37
guillaume@databerries.com

Contenu connexe

Similaire à Consul at databerries / teemo

Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneMicrosoft Technet France
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM France Lab
 
Computerland c cloud-2013oct17
Computerland c cloud-2013oct17Computerland c cloud-2013oct17
Computerland c cloud-2013oct17Patricia NENZI
 
Computerland c cloud-2013oct17
Computerland c cloud-2013oct17Computerland c cloud-2013oct17
Computerland c cloud-2013oct17Patricia NENZI
 
CWIN17 Morocco / Microservices as a factory reda zerhouni
CWIN17 Morocco / Microservices as a factory reda zerhouniCWIN17 Morocco / Microservices as a factory reda zerhouni
CWIN17 Morocco / Microservices as a factory reda zerhouniCapgemini
 
Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...
Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...
Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...Wiiisdom
 
Du business process modeling pour orchestrer des microservices julien cognet
Du business process modeling pour orchestrer des microservices   julien cognetDu business process modeling pour orchestrer des microservices   julien cognet
Du business process modeling pour orchestrer des microservices julien cognetJulien Cognet
 
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs XebiaLabs
 
Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...
Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...
Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...Marseille Innovation
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: AngularHabib Ayad
 
Denodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo
 
MD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDA
MD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDAMD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDA
MD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDAGrégory Weinbach
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Microsoft Décideurs IT
 
Comment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saasComment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saasCDNetworks
 
Presentation mididulibrev2.0
Presentation mididulibrev2.0Presentation mididulibrev2.0
Presentation mididulibrev2.0robertpluss
 
Fin de support et migration des infrastructures, quels choix pour les PME ?
Fin de support et migration des infrastructures, quels choix pour les PME ?Fin de support et migration des infrastructures, quels choix pour les PME ?
Fin de support et migration des infrastructures, quels choix pour les PME ?Microsoft Technet France
 

Similaire à Consul at databerries / teemo (20)

Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderne
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
 
Afterwork "Décollez vers le Cloud"
Afterwork "Décollez vers le Cloud"Afterwork "Décollez vers le Cloud"
Afterwork "Décollez vers le Cloud"
 
Provectio Offre Indirecte
Provectio Offre IndirecteProvectio Offre Indirecte
Provectio Offre Indirecte
 
Computerland c cloud-2013oct17
Computerland c cloud-2013oct17Computerland c cloud-2013oct17
Computerland c cloud-2013oct17
 
Computerland c cloud-2013oct17
Computerland c cloud-2013oct17Computerland c cloud-2013oct17
Computerland c cloud-2013oct17
 
CWIN17 Morocco / Microservices as a factory reda zerhouni
CWIN17 Morocco / Microservices as a factory reda zerhouniCWIN17 Morocco / Microservices as a factory reda zerhouni
CWIN17 Morocco / Microservices as a factory reda zerhouni
 
Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...
Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...
Stratégies de Migration de UNV à UNX et des Bases de Données : Retour d'Expér...
 
Du business process modeling pour orchestrer des microservices julien cognet
Du business process modeling pour orchestrer des microservices   julien cognetDu business process modeling pour orchestrer des microservices   julien cognet
Du business process modeling pour orchestrer des microservices julien cognet
 
Urbanisme et cloud
Urbanisme et cloudUrbanisme et cloud
Urbanisme et cloud
 
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs
 
Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...
Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...
Présentation du Cloud Pro d'Orange : Les opportunites du cloud pour une tpe -...
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: Angular
 
Denodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie API
 
MD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDA
MD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDAMD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDA
MD Day 2009 - Du Client/Serveur au Web - Moderniser son SI grâce au MDA
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
cookbook-fr
cookbook-frcookbook-fr
cookbook-fr
 
Comment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saasComment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saas
 
Presentation mididulibrev2.0
Presentation mididulibrev2.0Presentation mididulibrev2.0
Presentation mididulibrev2.0
 
Fin de support et migration des infrastructures, quels choix pour les PME ?
Fin de support et migration des infrastructures, quels choix pour les PME ?Fin de support et migration des infrastructures, quels choix pour les PME ?
Fin de support et migration des infrastructures, quels choix pour les PME ?
 

Consul at databerries / teemo

  • 1. Real life targeting & Offline measurement The leading offline predictive marketing engine
  • 2. 2©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 2©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Discover and deploy with Consul and Ansible
  • 3. 3©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 3©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. OUR BUSINESS 1
  • 4. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 4 Our solution GEOLOCATE TARGET MEASUREDISPLAY 1 2 3 4 10+ millions smartphones Audiences base on their offline in-store behavior Mobile ads in-app In-store foot traffic and visits
  • 5. 5©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 5©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Evolution of our service dependency system 2
  • 6. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Data collection pipeline Http Server Java / Vert.x Message Queue System (Apache Kafka) Streaming server Java Geolocation Events Google BigQuery Google Compute Engine Mobile SDK Control server (Burrow)
  • 7. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Generalization of our system A D B Both A,B and C are dependent of D. C
  • 8. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 8 Hostname hardcoded A Hostname of D hardcoded D B Hostname of D hardcoded Pro: easy to setup Cons: if we move the service D to another machine, we need to change A/B/C source code and redeploy. C Hostname of D hardcoded
  • 9. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 9 Discovery at deployment time A Hostname of C defined at deployment time D B Hostname of C defined at deployment time Pro: easy to setup Cons: if we move the service D to another machine, we need to change A/B/C source code and redeploy A,B and C. We provision our instances using an Ansible script. During the provisioning, Ansible will query the network to retrieve the hostname of the machine providing the D service. C Hostname of C defined at deployment time
  • 10. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 10 Service Discovery using Consul A D B Service Registry Retrieve hostname of a machine providing service D Retrieve hostname of a machine providing service D Registration Pro: • If we move D to another machine, A, B, C will automatically pick up the new address of D • We can have easily multiple instances providing D • No need to redeploy using Ansible Cons: The service registry must not be down. C
  • 11. 11©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 11©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Basic architecture of Consul 2
  • 12. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Basic architecture of Consul • Each node should run a consul agent • Consul servers are where data is stored and replicated. • The servers themselves elect a leader.
  • 13. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 13 Details of our usage of Consul C Service Registry A application Consul agent DNS (d.service.consul.) Consul server Consul agent config.json: “Provides service D” D application Machine 1 Machine 2 Machine 3 B application Consul agent DNS (d.service.consul.)
  • 14. 14©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 14©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Fake demo 14
  • 15. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Consul hello world Instance 1 Consul client Instance 2 Provides service “web” on port 80 Nginx Consul client Consul server
  • 16. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Setup the consul server /etc/consul/config.json
  • 17. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. Start consul server
  • 18. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 18 Check consul cluster state
  • 19. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 19 Configure consul client on instance 1 /etc/consul/config.json
  • 20. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 20 Start consul client on instance 1
  • 21. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 21
  • 22. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 22 Check consul cluster state
  • 23. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 23 Configure consul client on instance 2 /etc/consul.d/web.json/etc/consul.d/config.json
  • 24. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 24 Start consul client on instance 2
  • 25. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 25 Start consul client on instance 2
  • 26. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 26 Check consul cluster state
  • 27. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 27 Consul UI
  • 28. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 28 Retrieve the IP of machine running the service “web”
  • 29. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 29 Redirect port 53 to 8600 for “.consul” domains
  • 30. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 30 Try to dig again using the default port
  • 31. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 31 Access to the service “web”
  • 32. ©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 32 Summary • Great compatibility with current systems with HTTP and DNS API • Benefits of service discovery • Migration of machines • Add/Remove multiple machines • Health checks • Autoscaling of services • Be careful of consul downtime
  • 33. 33©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. 33©Databerries 2017. Ce document est propriété exclusive de Databerries. Toute diffusion sans accord préalable est interdite. We are hiring! 33 guillaume@databerries.com
  • 34. Guillaume Charhon CTO & Co founder +33 6 41 69 69 37 guillaume@databerries.com

Notes de l'éditeur

  1. We target retailers prospects based on the places they attend in real life, by using the geolocation of millions of smartphones continuously. We run advertising campaigns on theses prospects, then we measure the exact number of people who visited the retailer points of sale. Make an arrow to highlight 3 components. Example of stores: restaurants, supermarket, stadium
  2. Add conclusion