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

Post on 12-Apr-2017

107 views 1 download

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