Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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...
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...
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 cach...
2.1. Dessine moi une carte
• Entrée: Règles de “dessin”
• Sortie: Moteur de rendu
• Lecture en DB
• Clipping / drawing
• P...
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
Ava...
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
•...
2.2. Stockage des tuiles et cache
Une “map”  entre 12 et 48 tuiles
 Comment diminuer mes I/O quand je vais chercher des ...
2.2. Stockage des tuiles et cache
• Stocker les tuiles contigues ensemble (Meta-Tile)
• Concentrer les requêtes demandant ...
2.3. (Ré-)importer des données
• Une archive à importer dans une base
• Des traitements sur la donnée pour le rendu
• Peut...
2.3. (Ré-)importer des données
• Attention à la stratégie de mise à jour (fréquence, diff)
• Besoin d’une stratégie d’inva...
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. Aut...
Map-as-a-Service
1. Introduction
2. Le marché de la cartographie
3. Map services
1. Definition
2. GIS
3. WMS
4. WFS
5. Aut...
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 u...
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 Priv...
Architecture
+ : Ressources dédiées
- : Scalabilité
+ : Scalabilité en 1 ligne
- : Ressources Mutualisées
+ : Ressources d...
Architecture dans la Réalité
PRISE EN MAIN
RAPIDITE
EXACTITUDE
BANDE PASSANTE
CPU
CPU
CPU
MEMOIRE
I/O
UTILISATEURS
CACHES
...
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 ...
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 inv...
Rétrospective : les embûches
• Setup
• Spawn time
• OVH Manager vs Horizon + Nova + Neutron
• Déploiement
• SSHJ + OpenSta...
Rétrospective : avec 4 caches
• 850 000 utilisateurs en 30 min
• Entre 1 et 15 map views / user( entre 28 et 420 tuiles /...
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 p...
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é)?
• Compressi...
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: Benc...
Merci
Adrien Peyron
@APN_FR
@OVH
Loïc Ortola
@LoicOrtola
@jawgio
OVH Summit 2016 - Map as a Service by Löic Ortola
OVH Summit 2016 - Map as a Service by Löic Ortola
Upcoming SlideShare
Loading in …5
×

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

213 views

Published on

OVH Summit 2016
Date: 11 October 2016
Title: Map as a Service
Presenter: Löic Ortola, CTO of Jawg (jawg.io)
Videos: on Jawg's Youtube Channel, titled "state of the map"
https://www.youtube.com/channel/UC2buEGpGLtAO-QdfvWiA09g

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Map as a Service Loïc Ortola CTO – jawg Adrien Peyron Solution Architect - OVH
  2. 2. Hier Les cartes ont changé
  3. 3. L’ Ère Mr Manuel
  4. 4. L’ Ère A. Larrache
  5. 5. Aujourd’hui Les cartes ont changé
  6. 6. Délégation – Clé-en-main – Simple • Standard • Faible Time-To-Market • Pay-as-you-go
  7. 7. Indépendance – Maitrise – Personnalisation •Propriété Intellectuelle •Fonctionnalités custom •Sur instances Dédiées / chez-vous
  8. 8. Jawg Take control of your Maps. http://jawg.io
  9. 9. Wonderland
  10. 10. Wonderland
  11. 11. Les incontournables 1. C’est quoi une carte? 2. A quoi sert un map-server? 3. Quid des performances / de la robustesse?
  12. 12. 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
  13. 13. 1. Qu’entend-on par Carte? Carte de Paris à l’échelle 1:15 000 (zoom 15) Monde entier: 70 trillion pixels
  14. 14. 1. Qu’entend-on par Carte? Carte de Paris à l’échelle 1:15 000 (zoom 15) Monde entier: 1 billion tiles 256x256 pixels
  15. 15. 1. Qu’entend-on par Carte? Zoom 0 Scale 1:500 Million Zoom 1 Scale 1:250 Million
  16. 16. 1. Qu’entend-on par Carte? Rendu jusqu’au Zoom 19: Somme des tuiles des zooms 0 à 19: S = ~= 366 billion tiles
  17. 17. 1. Qu’entend-on par Carte?
  18. 18. 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
  19. 19. 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
  20. 20. 2.1. Dessine moi une carte Besoin d’optimisations … sur la DB … sur le style … sur les requêtes
  21. 21. 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
  22. 22. Rendement 28/64 = 43% Ex: Meta8 Rendement 28/256 = 11% 2.1. Optimiser le rendu des tuiles
  23. 23. 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
  24. 24. 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?
  25. 25. 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)
  26. 26. 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
  27. 27. 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
  28. 28. 3. Robustesse Scalable Disponible Elastique Support Performant
  29. 29. 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
  30. 30. 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
  31. 31. Jawg maps @Ovh peut-il tenir une invasion de zombies?
  32. 32. Video 1 (see description)
  33. 33. La pandémie Virus = ZOMBIES Réseau principal Hors ligne
  34. 34. La pandémie • Lancement d’une application : WAZE World Against the Zombie Epidemic • Localise les ressources & abris locaux
  35. 35. 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
  36. 36. Video 2 (see description)
  37. 37. Test de performance • Mode Cluster • Métriques ultra-détaillées • Live reporting
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. Video 3 (see description)
  43. 43. 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?
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. Rétrospective : avec 4 caches • 2 Gbps atteints sur EG-30 • ~10k utilisateurs concurrents
  48. 48. Rétrospective : avec 4 caches • 90% CPU utilisé • 5% IOWait • Steal & softirq négligeables
  49. 49. 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
  50. 50. Robustesse Scalable Disponible Elastique Support Performant
  51. 51. Hosting OPS Software DEV Robustesse Scalable Disponible Elastique Support Performant
  52. 52. White Papers 1. Map services: from theory to implementation • Disponible maintenant @ http://jawg.io 2. Map services: Benchmarks & high-scale profiles • 4e trimestre 2016
  53. 53. Merci Adrien Peyron @APN_FR @OVH Loïc Ortola @LoicOrtola @jawgio

×