SlideShare uma empresa Scribd logo
1 de 55
Map as a Service
Loïc Ortola
CTO – jawg
Adrien Peyron
Solution Architect -
OVH
Hier
Les cartes ont changé
L’ Ère Mr Manuel
L’ Ère A. Larrache
Aujourd’hui
Les cartes ont changé
Délégation – Clé-en-main – Simple
• Standard
• Faible Time-To-Market
• Pay-as-you-go
Indépendance – Maitrise – Personnalisation
•Propriété Intellectuelle
•Fonctionnalités custom
•Sur instances Dédiées / chez-vous
Jawg
Take control of your Maps.
http://jawg.io
Wonderland
Wonderland
Les incontournables
1. C’est quoi une carte?
2. A quoi sert un map-server?
3. Quid des performances / de la robustesse?
1. Qu’entend-on par Carte?
4 métiers principaux dans les maps digitales
• Geocoding
• Routing (Itinéraire)
• Cartes (Fonds de carte) ex : WMS
• Données supplémentaires (Vos POIs) ex : WFS
1. Qu’entend-on par Carte?
Carte de Paris à l’échelle 1:15 000 (zoom 15)
Monde entier: 70 trillion pixels
1. Qu’entend-on par Carte?
Carte de Paris à l’échelle 1:15 000 (zoom 15)
Monde entier: 1 billion tiles 256x256 pixels
1. Qu’entend-on par Carte?
Zoom 0
Scale 1:500 Million
Zoom 1
Scale 1:250 Million
1. Qu’entend-on par Carte?
Rendu jusqu’au Zoom 19:
Somme des tuiles des zooms 0 à 19:
S = ~= 366 billion tiles
1. Qu’entend-on par Carte?
2. Ca sert à quoi un map-server?
• A dessiner des données sur des cartes (routes etc…)
• A faciliter le stockage / le cache / les flux de données
• A gérer la stratégie d’import / réimport
2.1. Dessine moi une carte
• Entrée: Règles de “dessin”
• Sortie: Moteur de rendu
• Lecture en DB
• Clipping / drawing
• Prend du temps et des ressources
• quelques ms à plusieurs minutes de rendu
• utilise le CPU, la mémoire & le disque
2.1. Dessine moi une carte
Besoin d’optimisations
… sur la DB
… sur le style
… sur les requêtes
2.1. Optimiser le rendu des tuiles
Concept : La Meta-tile
Rendre plusieurs tuiles côte à côte, et les découper ensuite
Avantages:
• Empêche de saturer les I/O
• Diminue grandement les connections actives BDD
Inconvénients
• Génère des tuiles inutiles  plus long
Rendement
28/64 = 43%
Ex: Meta8
Rendement
28/256 = 11%
2.1. Optimiser le rendu des tuiles
2.1. Donc…
• Impossible de pré-calculer toutes les tuiles du monde à tous les
niveaux de zoom.
• c’est (infiniment) long
• ça prend trop de place, c’est éphémère
• Besoin de logiques de “cache” et de “pré-rendu”
• Système hautement contraint
2.2. Stockage des tuiles et cache
Une “map”  entre 12 et 48 tuiles
 Comment diminuer mes I/O quand je vais chercher des données?
2.2. Stockage des tuiles et cache
• Stocker les tuiles contigues ensemble (Meta-Tile)
• Concentrer les requêtes demandant la même information
• Garder un cache mémoire (LRU)
2.3. (Ré-)importer des données
• Une archive à importer dans une base
• Des traitements sur la donnée pour le rendu
• Peut prendre plusieurs heures à quelques jours
2.3. (Ré-)importer des données
• Attention à la stratégie de mise à jour (fréquence, diff)
• Besoin d’une stratégie d’invalidation des caches
• A dimensionner de façon intelligente
3. Robustesse
Scalable Disponible
Elastique Support
Performant
Map-as-a-Service
1. Introduction
2. Le marché de la cartographie
3. Map services
1. Definition
2. GIS
3. WMS
4. WFS
5. Autres métiers
4. Contraintes / architecture
5. Etude de cas : plateformes de mapping
1. Primitives
2. KPIs
3. Bottlenecks
4. Solutions du marché
6. Analyse
1. Scenario
2. Documentation
3. Support services
4. Scalabilité
5. Service-discovery
6. Intégration Cloud
7. Je prends le pari
6. Que personne ne lira cette ligne
7. Si tu lis cette-ligne, tu viens de gagner une bière
8. Il ne reste plus qu’à trouver un bar
8. En plus, la journée a été longue non?
6. A propos de cette bière… Tweet @loicortola
9. J’ai faim.
10. Raw Data
11. Conclusion
Map-as-a-Service
1. Introduction
2. Le marché de la cartographie
3. Map services
1. Definition
2. GIS
3. WMS
4. WFS
5. Autres métiers
4. Contraintes / architecture
5. Etude de cas : plateformes de mapping
1. Primitives
2. KPIs
3. Bottlenecks
4. Solutions du marché
6. Analyse
1. Scenario
2. Documentation
3. Support services
4. Scalabilité
5. Service-discovery
6. Intégration Cloud
7. Je prends le pari
6. Que personne ne lira cette ligne
7. Si tu lis cette-ligne, tu viens de gagner une bière
8. Il ne reste plus qu’à trouver un bar
8. En plus, la journée a été longue non?
6. A propos de cette bière… Tweet @loicortola
9. J’ai faim.
10. Raw Data
11. Conclusion
Jawg maps @Ovh peut-il tenir
une invasion de zombies?
Video 1 (see description)
La pandémie
Virus = ZOMBIES Réseau principal
Hors ligne
La pandémie
• Lancement d’une application : WAZE
World
Against the
Zombie
Epidemic
• Localise les ressources & abris locaux
Le Scénario Pandémie
1 000 000
Utilisateurs potentiels
1.12 milliards
16% de la
population est sain
11.2 millions
1% ont un accès
au réseau internet
Video 2 (see description)
Test de performance
• Mode Cluster
• Métriques ultra-détaillées
• Live reporting
Architecture
+ : Ressources dédiées
- : Scalabilité
+ : Ressources dédiées
- : Scalabilité non-native
Serveurs Dédiés Private Cloud
+ : Scalabilité en 1 ligne
- : Ressources Mutualisées
Public Cloud
Architecture
+ : Ressources dédiées
- : Scalabilité
+ : Scalabilité en 1 ligne
- : Ressources Mutualisées
+ : Ressources dédiées
- : Scalabilité non-native
Serveurs Dédiés Public Cloud Private Cloud
Architecture dans la Réalité
PRISE EN MAIN
RAPIDITE
EXACTITUDE
BANDE PASSANTE
CPU
CPU
CPU
MEMOIRE
I/O
UTILISATEURS
CACHES
RENDERS
MTA LB
IP LB CPU
Architecture Test de Charge
EG-30
HG-30
EG-15
HG-120
INJECTEURS
CACHES
RENDERS
MTA LB
RRD DNS EG-7
• 8 vCores 2,3Ghz
• 30 Go RAM
• 2 Gbps BP
• 2 vCores 2,3Ghz
• 7 Go RAM
• 300 Mbps BP
• 8 vCores 3,1Ghz
• 30 Go RAM
• 2 Gbps BP
• 4 vCores 2,3Ghz
• 15 Go RAM
• 1 Gbps BP
• 32 vCores 3,1Ghz
• 120 Go RAM
• 4 Gbps BP
Video 3 (see description)
OUI
Objective: 1 milliard de maps
Reached: 40 milliards de maps
WAZE sauve la planète
Jawg Maps @OVH peut-il tenir
une invasion de zombies?
Rétrospective : les embûches
• Setup
• Spawn time
• OVH Manager vs Horizon + Nova + Neutron
• Déploiement
• SSHJ + OpenStack
• Configuration Gatling Frontline
• Run
• nf_conntrack_max
• steal-cpu et network softirq
• Bande passante
Rétrospective : avec 4 caches
• 850 000 utilisateurs en 30 min
• Entre 1 et 15 map views / user( entre 28 et 420 tuiles / user)
• Sur les 12 zones les plus peuplées du monde entier
Rétrospective : avec 4 caches
• 108 k req/s en pointe  ~25k req/s/cache
• Moyenne des temps de réponse = 65 ms
• 99.9th percentile de temps de réponse < 600ms
Rétrospective : avec 4 caches
• 2 Gbps atteints sur EG-30
• ~10k utilisateurs concurrents
Rétrospective : avec 4 caches
• 90% CPU utilisé
• 5% IOWait
• Steal & softirq négligeables
Rétrospective : recommandations
• Optimiser la bande passante
• Choisir les bonnes instances (Cloud ou Dédié)?
• Compression g-zip (tile-edge-cache)?
• Affiner le tuning kernel / DB / Runtime / Conf
• file descriptors, ulimit, conntrack
• PostGIS / profil d’import
• Optimiser l’architecture
• Cache de niveau 2 – Object Storage
• Séparation DB / Render
Robustesse
Scalable Disponible
Elastique Support
Performant
Hosting
OPS
Software
DEV
Robustesse
Scalable
Disponible
Elastique
Support
Performant
White Papers
1. Map services: from theory to implementation
• Disponible maintenant @ http://jawg.io
2. Map services: Benchmarks & high-scale profiles
• 4e trimestre 2016
Merci
Adrien Peyron
@APN_FR
@OVH
Loïc Ortola
@LoicOrtola
@jawgio

Mais conteúdo relacionado

Semelhante a OVH Summit 2016 - Map as a Service by Löic Ortola

Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)Loic Ortola
 
Philippe Libioulle - Soirée IoT!
Philippe Libioulle - Soirée IoT!Philippe Libioulle - Soirée IoT!
Philippe Libioulle - Soirée IoT!MSDEVMTL
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google CloudPierre Coste
 
Big data et open data
Big data et open dataBig data et open data
Big data et open dataBart Hanssens
 
MapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMathieu Dumoulin
 
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...Amazon Web Services
 
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...Publicis Sapient Engineering
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO Technology
 
La cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMapLa cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMapFlorian Lainez
 
Paris Web 2012 - Les nouveaux horizons de la cartographie sur le Web
Paris Web 2012 - Les nouveaux horizons de la cartographie sur le WebParis Web 2012 - Les nouveaux horizons de la cartographie sur le Web
Paris Web 2012 - Les nouveaux horizons de la cartographie sur le WebBBecquet
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google CloudPierre Coste
 
5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisationFrédéric Rodrigo
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsChristophe Villeneuve
 
Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...
Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...
Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...jollivetc
 
DevoxxFR 2019: Consul @Criteo
DevoxxFR 2019: Consul @CriteoDevoxxFR 2019: Consul @Criteo
DevoxxFR 2019: Consul @CriteoPierre Souchay
 
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010JUG Lausanne
 

Semelhante a OVH Summit 2016 - Map as a Service by Löic Ortola (20)

Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)
 
Philippe Libioulle - Soirée IoT!
Philippe Libioulle - Soirée IoT!Philippe Libioulle - Soirée IoT!
Philippe Libioulle - Soirée IoT!
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google Cloud
 
Big data et open data
Big data et open dataBig data et open data
Big data et open data
 
MapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifié
 
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
 
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gc
 
Osm 20141112-montesquieu
Osm 20141112-montesquieuOsm 20141112-montesquieu
Osm 20141112-montesquieu
 
La cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMapLa cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMap
 
Paris Web 2012 - Les nouveaux horizons de la cartographie sur le Web
Paris Web 2012 - Les nouveaux horizons de la cartographie sur le WebParis Web 2012 - Les nouveaux horizons de la cartographie sur le Web
Paris Web 2012 - Les nouveaux horizons de la cartographie sur le Web
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google Cloud
 
Base de données
Base de donnéesBase de données
Base de données
 
5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation
 
Ns operationqueue
Ns operationqueueNs operationqueue
Ns operationqueue
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
 
Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...
Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...
Capteurs connectés et data visualisation pour mesurer la pénibilité au travai...
 
DevoxxFR 2019: Consul @Criteo
DevoxxFR 2019: Consul @CriteoDevoxxFR 2019: Consul @Criteo
DevoxxFR 2019: Consul @Criteo
 
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
 
Tutoriel Open Street Map - Atelier données
Tutoriel Open Street Map - Atelier donnéesTutoriel Open Street Map - Atelier données
Tutoriel Open Street Map - Atelier données
 

OVH Summit 2016 - Map as a Service by Löic Ortola

  • 1.
  • 2. Map as a Service Loïc Ortola CTO – jawg Adrien Peyron Solution Architect - OVH
  • 4. L’ Ère Mr Manuel
  • 5. L’ Ère A. Larrache
  • 7.
  • 8. Délégation – Clé-en-main – Simple • Standard • Faible Time-To-Market • Pay-as-you-go
  • 9. Indépendance – Maitrise – Personnalisation •Propriété Intellectuelle •Fonctionnalités custom •Sur instances Dédiées / chez-vous
  • 10. Jawg Take control of your Maps. http://jawg.io
  • 13. Les incontournables 1. C’est quoi une carte? 2. A quoi sert un map-server? 3. Quid des performances / de la robustesse?
  • 14. 1. Qu’entend-on par Carte? 4 métiers principaux dans les maps digitales • Geocoding • Routing (Itinéraire) • Cartes (Fonds de carte) ex : WMS • Données supplémentaires (Vos POIs) ex : WFS
  • 15. 1. Qu’entend-on par Carte? Carte de Paris à l’échelle 1:15 000 (zoom 15) Monde entier: 70 trillion pixels
  • 16. 1. Qu’entend-on par Carte? Carte de Paris à l’échelle 1:15 000 (zoom 15) Monde entier: 1 billion tiles 256x256 pixels
  • 17. 1. Qu’entend-on par Carte? Zoom 0 Scale 1:500 Million Zoom 1 Scale 1:250 Million
  • 18. 1. Qu’entend-on par Carte? Rendu jusqu’au Zoom 19: Somme des tuiles des zooms 0 à 19: S = ~= 366 billion tiles
  • 20. 2. Ca sert à quoi un map-server? • A dessiner des données sur des cartes (routes etc…) • A faciliter le stockage / le cache / les flux de données • A gérer la stratégie d’import / réimport
  • 21. 2.1. Dessine moi une carte • Entrée: Règles de “dessin” • Sortie: Moteur de rendu • Lecture en DB • Clipping / drawing • Prend du temps et des ressources • quelques ms à plusieurs minutes de rendu • utilise le CPU, la mémoire & le disque
  • 22. 2.1. Dessine moi une carte Besoin d’optimisations … sur la DB … sur le style … sur les requêtes
  • 23. 2.1. Optimiser le rendu des tuiles Concept : La Meta-tile Rendre plusieurs tuiles côte à côte, et les découper ensuite Avantages: • Empêche de saturer les I/O • Diminue grandement les connections actives BDD Inconvénients • Génère des tuiles inutiles  plus long
  • 24. Rendement 28/64 = 43% Ex: Meta8 Rendement 28/256 = 11% 2.1. Optimiser le rendu des tuiles
  • 25. 2.1. Donc… • Impossible de pré-calculer toutes les tuiles du monde à tous les niveaux de zoom. • c’est (infiniment) long • ça prend trop de place, c’est éphémère • Besoin de logiques de “cache” et de “pré-rendu” • Système hautement contraint
  • 26. 2.2. Stockage des tuiles et cache Une “map”  entre 12 et 48 tuiles  Comment diminuer mes I/O quand je vais chercher des données?
  • 27. 2.2. Stockage des tuiles et cache • Stocker les tuiles contigues ensemble (Meta-Tile) • Concentrer les requêtes demandant la même information • Garder un cache mémoire (LRU)
  • 28. 2.3. (Ré-)importer des données • Une archive à importer dans une base • Des traitements sur la donnée pour le rendu • Peut prendre plusieurs heures à quelques jours
  • 29. 2.3. (Ré-)importer des données • Attention à la stratégie de mise à jour (fréquence, diff) • Besoin d’une stratégie d’invalidation des caches • A dimensionner de façon intelligente
  • 31. Map-as-a-Service 1. Introduction 2. Le marché de la cartographie 3. Map services 1. Definition 2. GIS 3. WMS 4. WFS 5. Autres métiers 4. Contraintes / architecture 5. Etude de cas : plateformes de mapping 1. Primitives 2. KPIs 3. Bottlenecks 4. Solutions du marché 6. Analyse 1. Scenario 2. Documentation 3. Support services 4. Scalabilité 5. Service-discovery 6. Intégration Cloud 7. Je prends le pari 6. Que personne ne lira cette ligne 7. Si tu lis cette-ligne, tu viens de gagner une bière 8. Il ne reste plus qu’à trouver un bar 8. En plus, la journée a été longue non? 6. A propos de cette bière… Tweet @loicortola 9. J’ai faim. 10. Raw Data 11. Conclusion
  • 32. Map-as-a-Service 1. Introduction 2. Le marché de la cartographie 3. Map services 1. Definition 2. GIS 3. WMS 4. WFS 5. Autres métiers 4. Contraintes / architecture 5. Etude de cas : plateformes de mapping 1. Primitives 2. KPIs 3. Bottlenecks 4. Solutions du marché 6. Analyse 1. Scenario 2. Documentation 3. Support services 4. Scalabilité 5. Service-discovery 6. Intégration Cloud 7. Je prends le pari 6. Que personne ne lira cette ligne 7. Si tu lis cette-ligne, tu viens de gagner une bière 8. Il ne reste plus qu’à trouver un bar 8. En plus, la journée a été longue non? 6. A propos de cette bière… Tweet @loicortola 9. J’ai faim. 10. Raw Data 11. Conclusion
  • 33. Jawg maps @Ovh peut-il tenir une invasion de zombies?
  • 34. Video 1 (see description)
  • 35. La pandémie Virus = ZOMBIES Réseau principal Hors ligne
  • 36. La pandémie • Lancement d’une application : WAZE World Against the Zombie Epidemic • Localise les ressources & abris locaux
  • 37. Le Scénario Pandémie 1 000 000 Utilisateurs potentiels 1.12 milliards 16% de la population est sain 11.2 millions 1% ont un accès au réseau internet
  • 38. Video 2 (see description)
  • 39. Test de performance • Mode Cluster • Métriques ultra-détaillées • Live reporting
  • 40. Architecture + : Ressources dédiées - : Scalabilité + : Ressources dédiées - : Scalabilité non-native Serveurs Dédiés Private Cloud + : Scalabilité en 1 ligne - : Ressources Mutualisées Public Cloud
  • 41. Architecture + : Ressources dédiées - : Scalabilité + : Scalabilité en 1 ligne - : Ressources Mutualisées + : Ressources dédiées - : Scalabilité non-native Serveurs Dédiés Public Cloud Private Cloud
  • 42. Architecture dans la Réalité PRISE EN MAIN RAPIDITE EXACTITUDE BANDE PASSANTE CPU CPU CPU MEMOIRE I/O UTILISATEURS CACHES RENDERS MTA LB IP LB CPU
  • 43. Architecture Test de Charge EG-30 HG-30 EG-15 HG-120 INJECTEURS CACHES RENDERS MTA LB RRD DNS EG-7 • 8 vCores 2,3Ghz • 30 Go RAM • 2 Gbps BP • 2 vCores 2,3Ghz • 7 Go RAM • 300 Mbps BP • 8 vCores 3,1Ghz • 30 Go RAM • 2 Gbps BP • 4 vCores 2,3Ghz • 15 Go RAM • 1 Gbps BP • 32 vCores 3,1Ghz • 120 Go RAM • 4 Gbps BP
  • 44. Video 3 (see description)
  • 45. OUI Objective: 1 milliard de maps Reached: 40 milliards de maps WAZE sauve la planète Jawg Maps @OVH peut-il tenir une invasion de zombies?
  • 46. Rétrospective : les embûches • Setup • Spawn time • OVH Manager vs Horizon + Nova + Neutron • Déploiement • SSHJ + OpenStack • Configuration Gatling Frontline • Run • nf_conntrack_max • steal-cpu et network softirq • Bande passante
  • 47. Rétrospective : avec 4 caches • 850 000 utilisateurs en 30 min • Entre 1 et 15 map views / user( entre 28 et 420 tuiles / user) • Sur les 12 zones les plus peuplées du monde entier
  • 48. Rétrospective : avec 4 caches • 108 k req/s en pointe  ~25k req/s/cache • Moyenne des temps de réponse = 65 ms • 99.9th percentile de temps de réponse < 600ms
  • 49. Rétrospective : avec 4 caches • 2 Gbps atteints sur EG-30 • ~10k utilisateurs concurrents
  • 50. Rétrospective : avec 4 caches • 90% CPU utilisé • 5% IOWait • Steal & softirq négligeables
  • 51. Rétrospective : recommandations • Optimiser la bande passante • Choisir les bonnes instances (Cloud ou Dédié)? • Compression g-zip (tile-edge-cache)? • Affiner le tuning kernel / DB / Runtime / Conf • file descriptors, ulimit, conntrack • PostGIS / profil d’import • Optimiser l’architecture • Cache de niveau 2 – Object Storage • Séparation DB / Render
  • 54. White Papers 1. Map services: from theory to implementation • Disponible maintenant @ http://jawg.io 2. Map services: Benchmarks & high-scale profiles • 4e trimestre 2016

Notas do Editor

  1. 20 Years ago, when most people were hearing the word “maps”, this is what they’d imagine. That little piece of paper you’d see in your glove compartment, lying under an old melted chocolate bar from last year Back then, making a trip was something you planned in advance, at home.
  2. Mr Larrache, quand il entre dans la voiture, il ne sait toujours pas où il va ni comment il y va. Mr Larrache, il n’a aucune idée de comment rejoindre ses amis lorsqu’il sort du métro Mr Larrache c’est moi, et c’est vous aussi. Regardez, si je suis ici devant vous, c’est grâce à une map. Et si vous êtes arrivés jusqu’aux docks de paris dans une salle, c’est probablement grâce à une map aussi. Notre vision du déplacement a changé d’une chose qui se planifiait et qui s’étudiait à une action temps-réel.
  3. Et regardez, les maps sont de partout, dès votre sortie du métro ou même quand vous allez attraper le Pikachu le plus proche. J’ai un petit sondage à faire, et promis je ne jugerai pas. Qui parmi vous est déjà sorti du métro, a lancé google maps, et a préféré faire 100m pour se rendre compte que la bulle allait dans la mauvaise direction, plutôt que de chercher les numéros de rue? On est entré dans l’ère de l’assistant personnel, où l’homme choisit de déléguer certains usages à la technologie. “Comment” et “Ou” se déplacer, sont des questions qu’on a délégué à la technologie. Le jour où nous avons compris ça, c’est le jour où Jawg est né dans nos têtes.
  4. When maps become critical assets for a service … new matters come into play. QoS Independence Data Governance / Intellectual Property Custom needs Looking at different options on the market
  5. Bon allez, il faut que je vous fasse une confidence. En fait même si on s’appelle pas Maurice, on a une histoire qui a d’étranges ressemblances à ce que je viens de partager avec vous. Alors ce soir, je représente Jawg, et sa team de passionnés. Tellement passionnés qu’ils sont tous là ce soir pour m’écouter vous raconter des sottises
  6. Requêtes / Indexation / Partitionnement / Tuning Modèle optimisé pour le rendu Polygones simplifiés pour certaines échelles Données simplifiées pour certaines échelles Ai-je vraiment besoin de dessiner les maisons au niveau 12? Est-ce que je dois représenter chaque arbre? Pourquoi demander 28 tuiles contigues plutôt qu’une seule moyenne tuile?
  7. What does business-grade even mean? Among other things, a business grade service usually means that it is: @Antoine Efficient, Scalable, Available, (and that you might get some support out of it.>> Ne pas oublier d’en parler à la fin)
  8. I know you gave me 30 minutes, and such a question would require a decent amount of explanation. If we had all day, this is what we would be covering You know what? That’s boring”
  9. If we get back to our original question “Is OpenStreetMap business-grade?” We could probably find some better way to assert that than going over the big picture. We thought : wouldn’t it be better to try to show a real-world example proving that an OSM application is business-grade? So tonight, instead, we wanted to answer a really important question. A question that keeps everyone up at night. A question you may not even have dared to ask yourself:
  10. TODO: rajouter un zombie, changer la carte
  11. Zombies have infected earth
  12. Zombies have infected earth
  13. A community of OpenStreetMap contributors
  14. 84% contaminated
  15. Description scénario gatling
  16. 3 things: In terms of architecture, we wanted to stick to the classic OpenStreetMap stack: ImpOSM, mod_tile, renderd, squid. What changed is that we tried to do an elastic scenario: when the demand gets higher, new servers get spawned until it reaches the pool limit.
  17. 3 things: In terms of architecture, we wanted to stick to the classic OpenStreetMap stack: ImpOSM, mod_tile, renderd, squid. What changed is that we tried to do an elastic scenario: when the demand gets higher, new servers get spawned until it reaches the pool limit.
  18. Utilisateurs : Automobilistes, visiteurs, vous, nous, chasseurs de Pokemon Serveurs de Cache : tile-edge redis cache, tile-edge disk cache, redis, tile-edge Meta-tile Aware Load Balancer Serveurs de Rendu : Tile-Edge mapnik, metalery, mapni, postgreSQL, postGIS
  19. Injecteurs : Gatling Frontline, machine standard
  20. Injecteurs : Gatling Frontline, machine standard
  21. 99th percentile: 2.1s
  22. Spawn time: Le problème du spawn c’est qu’entre le moment où on aurait besoin d’une nouvelle instance et le moment où elle est opérationnelle, il se passe plusieurs minutes. On avait un soucis avec le Public Cloud qui a été remonté puis corrigé avec OVH, mais ca ne suffisait pas
En effet, le lancement d’un serveur de rendu est associé à une BD de plusieurs centaines de GB. Le temps de provisionner la machine est en général supérieur à la réactivité attendue d’un tel service.
 Manager: Le manager OVH n’est pas adapté à un grand nombre d’instances et c’est dommage car on a rapidement du passer sur Horizon et tout piloter via l’API Openstack, Nova, et Neutron. Run: Soucis avec le trafic trop important sur les caches. Les images de base d’OS OVH ne provisionnaient pas un nf_conntrack_max assez élevé.
  23. Spawn time: Le problème du spawn c’est qu’entre le moment où on aurait besoin d’une nouvelle instance et le moment où elle est opérationnelle, il se passe plusieurs minutes. On avait un soucis avec le Public Cloud qui a été remonté puis corrigé avec OVH, mais ca ne suffisait pas
En effet, le lancement d’un serveur de rendu est associé à une BD de plusieurs centaines de GB. Le temps de provisionner la machine est en général supérieur à la réactivité attendue d’un tel service.
 Manager: Le manager OVH n’est pas adapté à un grand nombre d’instances et c’est dommage car on a rapidement du passer sur Horizon et tout piloter via l’API Openstack, Nova, et Neutron. Run: Soucis avec le trafic trop important sur les caches. Les images de base d’OS OVH ne provisionnaient pas un nf_conntrack_max assez élevé.
  24. Spawn time: Le problème du spawn c’est qu’entre le moment où on aurait besoin d’une nouvelle instance et le moment où elle est opérationnelle, il se passe plusieurs minutes. On avait un soucis avec le Public Cloud qui a été remonté puis corrigé avec OVH, mais ca ne suffisait pas
En effet, le lancement d’un serveur de rendu est associé à une BD de plusieurs centaines de GB. Le temps de provisionner la machine est en général supérieur à la réactivité attendue d’un tel service.
 Manager: Le manager OVH n’est pas adapté à un grand nombre d’instances et c’est dommage car on a rapidement du passer sur Horizon et tout piloter via l’API Openstack, Nova, et Neutron. Run: Soucis avec le trafic trop important sur les caches. Les images de base d’OS OVH ne provisionnaient pas un nf_conntrack_max assez élevé.
  25. Spawn time: Le problème du spawn c’est qu’entre le moment où on aurait besoin d’une nouvelle instance et le moment où elle est opérationnelle, il se passe plusieurs minutes. On avait un soucis avec le Public Cloud qui a été remonté puis corrigé avec OVH, mais ca ne suffisait pas
En effet, le lancement d’un serveur de rendu est associé à une BD de plusieurs centaines de GB. Le temps de provisionner la machine est en général supérieur à la réactivité attendue d’un tel service.
 Manager: Le manager OVH n’est pas adapté à un grand nombre d’instances et c’est dommage car on a rapidement du passer sur Horizon et tout piloter via l’API Openstack, Nova, et Neutron. Run: Soucis avec le trafic trop important sur les caches. Les images de base d’OS OVH ne provisionnaient pas un nf_conntrack_max assez élevé.
  26. Spawn time: Le problème du spawn c’est qu’entre le moment où on aurait besoin d’une nouvelle instance et le moment où elle est opérationnelle, il se passe plusieurs minutes. On avait un soucis avec le Public Cloud qui a été remonté puis corrigé avec OVH, mais ca ne suffisait pas
En effet, le lancement d’un serveur de rendu est associé à une BD de plusieurs centaines de GB. Le temps de provisionner la machine est en général supérieur à la réactivité attendue d’un tel service.
 Manager: Le manager OVH n’est pas adapté à un grand nombre d’instances et c’est dommage car on a rapidement du passer sur Horizon et tout piloter via l’API Openstack, Nova, et Neutron. Run: Soucis avec le trafic trop important sur les caches. Les images de base d’OS OVH ne provisionnaient pas un nf_conntrack_max assez élevé.
  27. Spawn time: Le problème du spawn c’est qu’entre le moment où on aurait besoin d’une nouvelle instance et le moment où elle est opérationnelle, il se passe plusieurs minutes. On avait un soucis avec le Public Cloud qui a été remonté puis corrigé avec OVH, mais ca ne suffisait pas
En effet, le lancement d’un serveur de rendu est associé à une BD de plusieurs centaines de GB. Le temps de provisionner la machine est en général supérieur à la réactivité attendue d’un tel service.
 Manager: Le manager OVH n’est pas adapté à un grand nombre d’instances et c’est dommage car on a rapidement du passer sur Horizon et tout piloter via l’API Openstack, Nova, et Neutron. Run: Soucis avec le trafic trop important sur les caches. Les images de base d’OS OVH ne provisionnaient pas un nf_conntrack_max assez élevé.
  28. What does business-grade even mean? Among other things, a business grade service usually means that it is: @Antoine Efficient, Scalable, Available, (and that you might get some support out of it.>> Ne pas oublier d’en parler à la fin)
  29. What does business-grade even mean? Among other things, a business grade service usually means that it is: @Antoine Efficient, Scalable, Available, (and that you might get some support out of it.>> Ne pas oublier d’en parler à la fin)