ippevent ogury 2016
TRANSCRIPT
xxxxxSmart mobile acquisition
Smart mobile acquisition
Dev & Ops
Spring-*, Nodejs
Chef, Puppet, Docker, Graphite, ...
Co-auteur “Spring in Action”
Olivier Bazoud - @obazoudSmart mobile acquisition
xxxxxSmart mobile acquisition
Smart mobile acquisition
Smart mobile acquisition
Sommaire
Voyage à travers le cloud
Retour d’expérience
Déploiement
APPSDK
A publisher ADDS the Ogury’s SDK in his App
The publisher PUBLISHES or updates his App with the
Ogury’s SDK inside
APP LIVE ON PLAYSTORE
APP
SDK
The user OPEN the app
to all the users who open an App with the SDK and who are targeted in the campaign
1 Ad which is seen= 1 impression
If the user click on the Ad= 1 icon installed
If the user clicks again on the icon
APPOPEN
SDK
1
4
5 6 7 8
2 3PUBLISHER PART
ADVERTISER PART
APP
ICON
ADCLICK
ADSEEN
ADSENT
DATA is SENT
SEND an AD
Smart mobile acquisition
Smart mobile acquisition
Overview
TARGETINGMethodology
XX
%
We
scor
e ea
ch u
ser
via
the
data
we
have
co
llect
ed a
nd c
ross
ref
eren
ce t
his
wit
h th
e ca
mpa
ign
obje
ctiv
es
Date Time
www.amazon.com/ 22/05
www.citroen.com
www.redbull.com
www.suv.comwww.carmerchant.com/
22/05
22/05
23/05
24/05
26/05
4min.
4min.
4min.
4min.
www.kia.com
Ogury then pushes the delivery of the recommendations based on our
‘compatability score’
USED : Sarenza 22/05
USED : Autoscout24 22/05
Date TimeApp : Candy crush 22/05
App : Cityapp 22/05
App : Mr porter 22/05
App : Forbes 23/05
App : Surfsession 24/05
App : Quicksilver 26/05
4min.
4min.
5min.
0min.
2min.
1min.
100%
98% 100%
95% 100%
96%
97% 99% 94%
100%
95% 96%
50% 55% 52%
51% 54% 50%
DATA ULTRA GRANULAIRE
- Applications téléchargées & usages
- URLs consultées
100% ON TARGET
- Technologie de ciblage- Ciblage
comportementale
EXPERIENCEUTILISATEUR
- Format qui s’adapte- Template Ogury
FACILITE IMPLEMENTATION
- Aucun taggage de site- Pas de SDK à poser
Format statiqueVideo
Toucher votre audience sans déperdition
xxxxxSmart mobile acquisition
Couchbase
NoSQL document-oriented
Performance
Scalability / High availability
Cross Data Center Replication (XDCR)
xxxxxSmart mobile acquisition
Retour d’expérience
No (Dev)Ops
Difficile de scaler le front
Troubleshooting limité
Peu de Monitoring / Alerting
xxxxxSmart mobile acquisition
Hybride: Heroku / AWS
Traiter les évenements
Organiser et Analyser la data
Gestion des gros volumes
xxxxxSmart mobile acquisition
AWS
Cloud IAAS
Scalabilité / Automatisation / Agilité
Infrastructure As Code
Coûts
xxxxxSmart mobile acquisition
Kafka
Broker
Transaction logs
Topics / Partitions
Producers / Consumers
“Data is retained for a configuration period of time”
xxxxxSmart mobile acquisition
EMR / Hadoop
Besoins ponctuels
Targeting
Exploratoire / Troubleshooting
Hive / S3
xxxxxSmart mobile acquisition
Début de l’automatisation
Début de monitoring / alerting
Tuning ELK
Retour d’expérience
Jobs hadoop lents
Heroku cher pour nos besoins
xxxxxSmart mobile acquisition
Smart mobile acquisition
Smart mobile acquisition
Chiffres
250 Millions d’utilisateurs
1 To data compressé / jour
1 Million request per minute
15 Millions messages per minute
30 Milliards de documents dans ES
xxxxxSmart mobile acquisition
Automatisation
Cloud Formation / Chef
Collectd / Sensu / Cloud Watch
Graphite / Grafana
xxxxxSmart mobile acquisition
Cloud Formation
Infrastructure As Code
JSON, JSON, JSON, ...
Stack, Nested stack
Rollback, Evenements, Timeout, ...
xxxxxSmart mobile acquisition
Limites AWS
Lenteur Cloud Formation (RDS, Cloud Front, IAM)
Bonne intégration Cloud Formation / Chef
Retour d’expérience
Packer AMI: image de base seulement
JSON :(
xxxxxSmart mobile acquisition
Automatisation
Créer des environnements facilement (10 + 2)
Automatisation maximum
Déploiement automatique
Cloud AWS
xxxxxSmart mobile acquisition
Environnement
Cloud Formation: 1 env ~ 35 stacks, 200+ au total
Prêt en ~1h30
Environnement complet
Restore des datas de prod
xxxxxSmart mobile acquisition
Déploiement
Comment déployer aussi du Rails, Java, Nodejs, …?
ISO Dévelopement / Production
Déploiement identique
xxxxxSmart mobile acquisition
Docker Compose
Mettre en relation plusieurs containers Docker
docker-compose.yml
Auto Scaling group
Amazon S3
bucket
DockerRegistry
Dev
tag hook
CodeRepositor
y
CI
Push Docker images
End Users Amazon LB
Amazon RDSPostgreSQL
Deploy
1
4
2 3
Deployinstanc
e
update instances5
pull docker images
Amazon S3 bucketPush artifacts
zip: docker-compose.yml
Route 53
xxxxxSmart mobile acquisition
Gestion des branches
git push origin devX-xxxx
Github: Pull Request + Merge
Release / Tag
xxxxxSmart mobile acquisition
Network “host” / Logs cappéPas de problème lié à Docker / Docker compose
Retour d’expérience
150+ containers en production
Choix d’un orchestrateur ?
xxxxxSmart mobile acquisition
Retour d’expérience
Pas de pipeline / Pas de promotion
Environnement: Sélectionner les composants
Gestion des logs
59
SDK
données sur le comportement utilisateur
S3
demande publicité
Hadoop
Smart mobile acquisition
Smart mobile acquisition
Big Data
xxxxxSmart mobile acquisition
Smart mobile acquisition
Smart mobile acquisition
Data
Elastic Map Reduce
Hive
Lecture / Ecriture sur S3
xxxxxSmart mobile acquisition
Retour d’expérience
Créer un cluster EMR “on-demand”
Pré-processing pour chaque use-case
Pas de stockage de résultats intermédiairesLent
Optimisations des coûts
63
Base de données relationnelle (SQL)
Orientée OLAP
Distribué pour les Big Data
Excellentes performances
Très bonne scalabilité
Hébergée dans le cloud AWS
Administration facile
Coût
Smart mobile acquisition
Smart mobile acquisition
Amazon Redshift
xxxxxSmart mobile acquisition
Performances
Avec Hive/S3/20 instances EC2: 4 heures avec 7 jours de data
Avec Redshift/20 noeuds: 1 minute avec 2 mois de data
Compter le nombre d’utilisateurs français ayant consulté plus de 2 fois le site ‘lemonde.fr’
66
Planifie exécution chaînes de scripts
Ordonnancement des tâches
Scripts de différentes natures (batch, sql, …)
Lancement conditionnels
Service d’alerte
Reprise sur erreur
Smart mobile acquisition
Smart mobile acquisition
AWS DataPipeline
xxxxxSmart mobile acquisition
Smart mobile acquisition
Smart mobile acquisition
Voyage à travers le cloud
Retour d’expérience
Déploiement
Conclusion
L’infrastructure accompagne le dévéloppement de la société
xxxxxSmart mobile acquisition
Smart mobile acquisition
DevOpsDev Java/SpringDev NodejsDev AndroidDev Full Stack