Map as a Service OVH Summit 2016
-
Upload
loic-ortola -
Category
Internet
-
view
608 -
download
3
Transcript of Map as a Service OVH Summit 2016
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• FaibleTime-To-Market
• Pay-as-you-go
Indépendance – Maitrise – Personnalisation
• PropriétéIntellectuelle
• Fonc<onnalitéscustom
• SurinstancesDédiées/chez-vous
Jawg Take control of your Maps.
hBp://jawg.io
Wonderland
Wonderland
Les incontournables
1. C’estquoiunecarte?
2. Aquoisertunmap-server?
3. Quiddesperformances/delarobustesse?
1. Qu’entend-on par Carte?
4mé0ersprincipauxdanslesmapsdigitales
• Geocoding• Rou<ng(I<néraire)• Cartes(Fondsdecarte)ex:WMS• Donnéessupplémentaires(VosPOIs)ex:WFS
1. Qu’entend-on par Carte?
CartedeParisàl’échelle1:15000(zoom15)Mondeen<er:70trillionpixels
1. Qu’entend-on par Carte?
CartedeParisàl’échelle1:15000(zoom15)Mondeen<er:1billion<les256x256pixels
1. Qu’entend-on par Carte?
Zoom0Scale1:500Million
Zoom1Scale1:250Million
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?
• Adessinerdesdonnéessurdescartes(routesetc…)
• Afaciliterlestockage/lecache/lesfluxdedonnées
• Agérerlastratégied’import/réimport
2.1. Dessine moi une carte
• Entrée:Règlesde“dessin”• Sor<e:Moteurderendu
• LectureenDB• Clipping/drawing
• Prenddutempsetdesressources• quelquesmsàplusieursminutesderendu• u<liseleCPU,lamémoire&ledisque
2.1. Dessine moi une carte
Besoind’op<misa<ons
…surlaDB
…surlestyle
…surlesrequêtes
2.1. Optimiser le rendu des tuiles
Concept:LaMeta-<leRendreplusieurstuilescôteàcôte,etlesdécouperensuite
Avantages:• EmpêchedesaturerlesI/O• Diminuegrandementlesconnec<onsac<vesBDD
Inconvénients
• Génèredestuilesinu<lesèpluslong
Rendement28/64=43%
Ex: Meta8
Rendement28/256=11%
2.1. Optimiser le rendu des tuiles
2.1. Donc…
• Impossibledepré-calculertouteslestuilesdumondeàtouslesniveauxdezoom.
• c’est(infiniment)long• çaprendtropdeplace,c’estéphémère
• Besoindelogiquesde“cache”etde“pré-rendu”
• Systèmehautementcontraint
2.2. Stockage des tuiles et cache
Une“map”óentre12et48tuilesèCommentdiminuermesI/Oquandjevaischercherdesdonnées?
2.2. Stockage des tuiles et cache
• Stockerlestuilescon<guesensemble(Meta-Tile)
• Concentrerlesrequêtesdemandantlamêmeinforma<on
• Garderuncachemémoire(LRU)
2.3. (Ré-)importer des données
• Unearchiveàimporterdansunebase
• Destraitementssurladonnéepourlerendu
• Peutprendreplusieursheuresàquelquesjours
2.3. (Ré-)importer des données
• ABen<onàlastratégiedemiseàjour(fréquence,diff)
• Besoind’unestratégied’invalida<ondescaches• Adimensionnerdefaçonintelligente
3. Robustesse
Scalable Disponible
Elastique Support
Performant
Map-as-a-Service 1. Introduc<on
2. Lemarchédelacartographie
3. Mapservices1. Defini<on2. GIS3. WMS4. WFS5. Autresmé<ers
4. Contraintes/architecture
5. Etudedecas:plateformesdemapping1. Primi<ves2. KPIs3. BoBlenecks4. Solu<onsdumarché
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. Introduc<on
2. Lemarchédelacartographie
3. Mapservices1. Defini<on2. GIS3. WMS4. WFS5. Autresmé<ers
4. Contraintes/architecture
5. Etudedecas:plateformesdemapping1. Primi<ves2. KPIs3. BoBlenecks4. Solu<onsdumarché
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?
La pandémie
Virus = ZOMBIES Réseau principal Hors ligne
La pandémie
• Lancementd’uneapplica<on:WAZEWorldAgainsttheZombieEpidemic
• Localiselesressources&abrislocaux
Le Scénario Pandémie
1000000U<lisateurspoten<els
1.12 milliards 16% de la
population est sain
11.2 millions 1% ont un accès au réseau internet
Le Scénario Pandémie
Test de performance
• Mode Cluster • Métriques ultra-détaillées • Live reporting
Architecture
+:Ressourcesdédiées-:Scalabilité
+:Ressourcesdédiées-:Scalabiliténon-na<ve
Serveurs Dédiés Private Cloud
+:Scalabilitéen1ligne-:RessourcesMutualisées
Public Cloud
Architecture
+:Ressourcesdédiées-:Scalabilité
+:Scalabilitéen1ligne-:RessourcesMutualisées
+:Ressourcesdédiées-:Scalabiliténon-na<ve
Serveurs Dédiés Public Cloud Private Cloud
Architecture dans la Réalité PRISEENMAINRAPIDITEEXACTITUDE
BANDEPASSANTECPU
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
• 8vCores2,3Ghz• 30GoRAM• 2GbpsBP
• 2vCores2,3Ghz• 7GoRAM• 300MbpsBP
• 8vCores3,1Ghz• 30GoRAM• 2GbpsBP
• 4vCores2,3Ghz• 15GoRAM• 1GbpsBP
• 32vCores3,1Ghz• 120GoRAM• 4GbpsBP
OUIObjec0ve:1milliarddemapsReached:40milliardsdemaps
WAZEsauvelaplanète
Jawg Maps @OVH peut-il tenir une invasion de zombies?
Rétrospective : les embûches • Setup
• Spawn<me• OVHManagervsHorizon+Nova+Neutron
• Déploiement• SSHJ+OpenStack• Configura<onGatlingFrontline
• Run• nf_conntrack_max• steal-cpuetnetworksoyirq• Bandepassante
Rétrospective : avec 4 caches
• 850000u<lisateursen30min• Entre1et15mapviews/user(óentre28et420tuiles/user)• Surles12zoneslespluspeupléesdumondeen<er
Rétrospective : avec 4 caches
• 108kreq/senpointeó~25kreq/s/cache• Moyennedestempsderéponse=65ms• 99.9thpercen<ledetempsderéponse<600ms
Rétrospective : avec 4 caches
• 2GbpsaBeintssurEG-30• ~10ku<lisateursconcurrents
Rétrospective : avec 4 caches
• 90%CPUu<lisé• 5%IOWait• Steal&soyirqnégligeables
Rétrospective : recommandations • Op<miserlabandepassante
• Choisirlesbonnesinstances(CloudouDédié)?• Compressiong-zip(<le-edge-cache)?
• Affinerletuningkernel/DB/Run<me/Conf• filedescriptors,ulimit,conntrack• PostGIS/profild’import
• Op<miserl’architecture• Cachedeniveau2–ObjectStorage• Sépara<onDB/Render
Robustesse
Scalable Disponible
Elastique Support
Performant
Hos0ngOPS
SoTwareDEV
Robustesse
Scalable
Disponible
Elastique
Support
Performant
White Papers
1. Mapservices:fromtheorytoimplementa<on• Disponiblemaintenant@hBp://jawg.io
2. Mapservices:Benchmarks&high-scaleprofiles• 4etrimestre2016
Merci
AdrienPeyron
@APN_FR@OVH
LoïcOrtola
@LoicOrtola@jawgio