OVH Summit 2016 - Map as a Service by Löic Ortola
-
Upload
jawg-maps -
Category
Technology
-
view
107 -
download
1
Transcript of OVH Summit 2016 - Map as a Service by Löic Ortola
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
JawgTake 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 0Scale 1:500 Million
Zoom 1Scale 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-tileRendre 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
Rendement28/64 = 43%
Ex: Meta8
Rendement28/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-Service1. Introduction
2. Le marché de la cartographie
3. Map services1. Definition2. GIS3. WMS4. WFS5. Autres métiers
4. Contraintes / architecture
5. Etude de cas : plateformes de mapping1. Primitives2. KPIs3. Bottlenecks4. Solutions du marché
6. Analyse1. Scenario2. Documentation3. Support services4. Scalabilité5. Service-discovery6. Intégration Cloud
7. Je prends le pari6. Que personne ne lira cette ligne7. Si tu lis cette-ligne, tu viens de gagner une bière8. 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 Data11. Conclusion
Map-as-a-Service1. Introduction
2. Le marché de la cartographie
3. Map services1. Definition2. GIS3. WMS4. WFS5. Autres métiers
4. Contraintes / architecture
5. Etude de cas : plateformes de mapping1. Primitives2. KPIs3. Bottlenecks4. Solutions du marché
6. Analyse1. Scenario2. Documentation3. Support services4. Scalabilité5. Service-discovery6. Intégration Cloud
7. Je prends le pari6. Que personne ne lira cette ligne7. Si tu lis cette-ligne, tu viens de gagner une bière8. 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 Data11. Conclusion
Jawg maps @Ovh peut-il tenir une invasion de zombies?
Video 1 (see description)
La pandémie
Virus = ZOMBIES Réseau principalHors ligne
La pandémie
• Lancement d’une application : WAZEWorld Against the Zombie Epidemic
• Localise les ressources & abris locaux
Le Scénario Pandémie
1 000 000Utilisateurs potentiels
1.12 milliards16% de la
population est sain
11.2 millions1% 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 MAINRAPIDITEEXACTITUDE
BANDE PASSANTECPU
CPU
CPUMEMOIREI/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)
OUIObjective: 1 milliard de maps
Reached: 40 milliards de mapsWAZE 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
HostingOPS
SoftwareDEV
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