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

55

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

Page 1: OVH Summit 2016 - Map as a Service by Löic Ortola
Page 2: 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

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

Hier

Les cartes ont changé

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

L’ Ère Mr Manuel

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

L’ Ère A. Larrache

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

Aujourd’hui

Les cartes ont changé

Page 7: OVH Summit 2016 - Map as a Service by Löic Ortola
Page 8: OVH Summit 2016 - Map as a Service by Löic Ortola

Délégation – Clé-en-main – Simple

• Standard

• Faible Time-To-Market

• Pay-as-you-go

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

Indépendance – Maitrise – Personnalisation

•Propriété Intellectuelle

•Fonctionnalités custom

•Sur instances Dédiées / chez-vous

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

JawgTake control of your Maps.

http://jawg.io

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

Wonderland

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

Wonderland

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

Les incontournables

1. C’est quoi une carte?

2. A quoi sert un map-server?

3. Quid des performances / de la robustesse?

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

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

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

1. Qu’entend-on par Carte?

Carte de Paris à l’échelle 1:15 000 (zoom 15)Monde entier: 70 trillion pixels

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

1. Qu’entend-on par Carte?

Carte de Paris à l’échelle 1:15 000 (zoom 15)Monde entier: 1 billion tiles 256x256 pixels

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

1. Qu’entend-on par Carte?

Zoom 0Scale 1:500 Million

Zoom 1Scale 1:250 Million

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

1. Qu’entend-on par Carte?

Rendu jusqu’au Zoom 19: Somme des tuiles des zooms 0 à 19:

S = ~= 366 billion tiles

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

1. Qu’entend-on par Carte?

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

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

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

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

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

2.1. Dessine moi une carte

Besoin d’optimisations

… sur la DB

… sur le style

… sur les requêtes

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

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

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

Rendement28/64 = 43%

Ex: Meta8

Rendement28/256 = 11%

2.1. Optimiser le rendu des tuiles

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

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

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

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?

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

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)

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

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

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

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

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

3. Robustesse

Scalable Disponible

Elastique Support

Performant

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

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

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

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

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

Jawg maps @Ovh peut-il tenir une invasion de zombies?

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

Video 1 (see description)

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

La pandémie

Virus = ZOMBIES Réseau principalHors ligne

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

La pandémie

• Lancement d’une application : WAZEWorld Against the Zombie Epidemic

• Localise les ressources & abris locaux

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

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

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

Video 2 (see description)

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

Test de performance

• Mode Cluster• Métriques ultra-

détaillées• Live reporting

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

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

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

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

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

Architecture dans la RéalitéPRISE EN MAINRAPIDITEEXACTITUDE

BANDE PASSANTECPU

CPU

CPUMEMOIREI/O

UTILISATEURS

CACHES

RENDERS

MTA LB

IP LB CPU

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

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

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

Video 3 (see description)

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

OUIObjective: 1 milliard de maps

Reached: 40 milliards de mapsWAZE sauve la planète

Jawg Maps @OVH peut-il tenir une invasion de zombies?

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

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

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

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

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

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

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

Rétrospective : avec 4 caches

• 2 Gbps atteints sur EG-30• ~10k utilisateurs concurrents

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

Rétrospective : avec 4 caches

• 90% CPU utilisé• 5% IOWait• Steal & softirq négligeables

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

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

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

Robustesse

Scalable Disponible

Elastique Support

Performant

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

HostingOPS

SoftwareDEV

Robustesse

Scalable

Disponible

Elastique

Support

Performant

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

White Papers

1. Map services: from theory to implementation• Disponible maintenant @ http://jawg.io

2. Map services: Benchmarks & high-scale profiles• 4e trimestre 2016

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

Merci

Adrien Peyron

@APN_FR@OVH

Loïc Ortola

@LoicOrtola@jawgio