Le cloud computing au service des applications cartographiques à haute disponibilité Claude Philipona Les Rencontres de SIG-la-Lettre, Mai 2010 camptocamp SA / www.camptocamp.com / info@camptocamp.com
Agenda Camptocamp Les besoins actuels des applications web cartographiques Cas d'école: SwitzerlandMobility.ch Cloud Computing: Introduction Cloud Computing: Architecture Cloud Computing: Industrialisation - Automatisation Cloud Computing: Amazon Web Services Démonstrations Questions 2
Editeur et intégrateur de solutions logicielles Open Source Lausanne Chambéry 3
Des produits et services complémentaires Geospatial Solutions Business Solutions Système d'information géographique Progiciels de gestion intégrés (ERP) Sécurité Base de données Spatiale Business Intelligence Gestion de parc Linux complexe Infrastructure de données Traitement de données (ETL) Cloud computing (AWS) Web Services Infrastructure Solutions Téléphonie VoIP CONSEIL, ETUDE, R&D (organisme agréé) MISE EN OEUVRE SUPPORT LOGICIEL LIBRE FORMATION (organisme agréé) 4
Besoins actuel des applications web Plus de pages web -> des applications web Forte intéractivité, rapide, réactive Ergonomie de qualité Utilisation des capacités asynchrones AJAX, widgets 5
Besoins actuels des applications cartos Slippy maps (tiled) Rapide et réactive Widgets Interaction avec la carte Haute qualité du rendu des cartes (antialiasing) Suuporte les montées en charge A la Google Maps! (mais pour ses propres données) 6
Cas d'école: SwitzerlandMobility.ch SuisseMobile est le réseau national destiné à la mobilité douce, en particulier pour les loisirs et le tourisme. SwitzerlandMobility.ch couvre 5 domaines: Cyclisme Mountain Bike Marche Skating Canoë 7
SwitzerlandMobility.ch Webmapping 8
SwitzerlandMobility.ch exigences Tuilages (=tile) pour toutes les couches 80 couches de données Haute qualité de rendu cartographique Permettre la combinaison de toutes les couches 1000+ utilisateurs en parallèle Avoir des frais d'infrastructure bas 9
Comment remplir ces exigences? Paradigme web 1.0 de génération de carte à la demande pas applicable. Implémentation d'un serveur de tuile Serveurs cartographiques supportent 20 à 50 demandes en parallèle Mise en place de caches des données Utilisation du cloud computing pour clusteriser l'application 10
Implémentation Utilisation du framework cartographique Open Source MapFish Utilisation de serveur cartographique pour la génération des tuiles OpenLayers Tilecache GeoExt ExtJS PostGres / PostGIS TileForge permettant de générer des images de 256x256 pixels pour toutes les couches Hébergement sur Amazon (AWS) 11
Limitations du tuilage Echelles fixes Les navigateurs ne supportent pas 80 couches, mais seulement 5 à 10 couches (< 1000 images) Aggrégation de tuiles au niveau du serveur Pour permettre toutes les combinaisons Rapide et plus léger que la génération complète d'images + = 12
Comment supporter de fortes charges? ressources Coût infra: 60 Coût infra: 12 Coût infra: 5 Temps 13
Cloud Computing (1) Un nouveau buzzword? Location self-service de ressources informatiques On paie seulement ce qui est réellement consommé 14
Cloud Computing (2) Mais comment est-ce possible? Virtualisation des serveurs physiques Puissance des serveurs en constante augmentation Rapidité d'internet en constante augmentation Qui propose des ressources dans le cloud? Amazon, GoGrid, Rackspace, Google et bien d'autres encore 15
Cloud computing: Architecture de base Requêtes HTTP Flux de gestion (différents protocoles) Clients Caching-Reverse-Proxy Cluster applicatif (contenu dynamique) Management TileForge Cluster de stockage (contenu statique) 16
Cloud computing: Architecture de base Requêtes HTTP Flux de gestion (différents protocoles) Clients Caching-Reverse-Proxy Cluster applicatif (contenu dynamique) Management TileForge Cluster de stockage (contenu statique) 17
Zoom Le caching-reverse-proxy Load-balancing Contrôle de la santé des clusters Création et gestion d'un cache Contrôle/restriction des accès Réécriture et normalisation des URLs Sticky sessions Logiciels OpenSource : Varnish, HAProxy 18
Cloud computing: Architecture de base Requêtes HTTP Flux de gestion (différents protocoles) Clients Caching-Reverse-Proxy Cluster applicatif (contenu dynamique) Management TileForge Cluster de stockage (contenu statique) 19
Zoom Le serveur applicatif Les modes d'hébergement: Mutualisé (plusieurs applications sur un seul serveur) Dédié (une application = un serveur) Clusterisé (N serveurs pour une application) APP (Applications) DEV (Développement) MW (Middleware) OS (Operation System) OPS (Opérationnel) HW (Hardware) 20
Industrialisation et automatisation Automatisation de A à Z, HW+OS+MW+APP HW: Dans amazon: EC2 OS + MW via le système Puppet APP: Système de déploiement 21
Puppet Langage déclaratif pour décrire un système Un serveur et un client pour distribuer ces recettes Une librairie qui réalise ces configurations 22
Puppet, le principe 23
Puppet, un exemple class sudo { package {'sudo': ensure => installed, } } file { '/etc/sudoers': owner => root, group => root, mode => 440, source => 'puppet:///sudo/etc/sudoers', require => Package['sudo'], } node 'kulma.wrk.lsn.camptocamp.com' { include sudo } 24
Cloud computing: Architecture de base Requêtes HTTP Flux de gestion (différents protocoles) Clients Caching-Reverse-Proxy Cluster applicatif (contenu dynamique) Management TileForge Cluster de stockage (contenu statique) 25
Zoom Cluster de stockage Espace illimité, accessible en HTTP Dans Amazon: S3 Service HTTP, opérations simples (GET/PUT/DELETE) Amazon S3 n'est pas un système de fichiers! Les données peuvent être privées ou publics Stockage idéal pour des tuiles Fond de carte CH ~ 3To/300'000'000 de fichiers Système de fichiers traditionnels pas adaptés 26
Cloud computing: Architecture de base Requêtes HTTP Flux de gestion (différents protocoles) Clients Caching-Reverse-Proxy Cluster applicatif (contenu dynamique) Management TileForge Cluster de stockage (contenu statique) 27
Zoom Le serveur de management Principe: Chaque instance est responsable de son état Gestion distribuée de la collecte d'informations Monitoring avec Nagios Métriques systèmes avec Collectd Statistiques de fréquentation avec AWStats Logs avec Syslog-NG Analyse des logs avec Logcheck Ajout, suppression d'instances (auto-scaling) Centralisation des modèles de serveurs (recettes Puppet) Interface Web de visualisation des ressources 28
Zoom Le serveur de management 29
Cloud computing: Architecture de base Requêtes HTTP Flux de gestion (différents protocoles) Clients Caching-Reverse-Proxy Cluster applicatif (contenu dynamique) Management TileForge Cluster de stockage (contenu statique) 30
Zoom La forge à tuiles (TileForge) Chaque noeud réalise une partie du travail Les geo-données (~ 1.5 To) sont directement disponibles dans les instances Elastic Block Store (EBS) Les tuiles générées sont directement écrites sur S3 31
Cas d'utilisation pratiques Mise en place d'une nouvelle application Mise à jour majeure d'une application existante Mise à jour d'une couche entière de tuiles Extension temporaire d'un cluster applicatif Mise en place d'un nouveau type de serveur applicatif Le serveur de caching-reverse-proxy n'est plus accessible 32
Un scénario chiffré 5 instances 5 EC2 $955/mois Besoin pendant 1 semaine de 10 EC2 $638 Temps de mise en place: 30 minutes Une instance EC2 c'est : 7.5Go de mémoire 2 virtual-core d'environ 2GHz 850Go d'espace disque non-persistant 33
Ressources Amazon-AWS (résumé) 34 Les principaux services : Amazon Simple Storage Service (S3) Amazon Elastic Compute Cloud (EC2) Amazon Elastic Block Store (EBS) Amazon SimpleDB (Database) Amazon CloudFront (Distributed content delivery) Amazon Elastic MapReduce (Parallelized computing) etc. Modèle de coût : Instance EC2 facturées à l'heure Traffic Internet Stockage S3/EBS (Go/mois)
Considérations pratiques Choix du prestataire, localisation Encryption des données sensibles Encryption des communications sensibles Faire des backups chez un autre prestataire Toutes les parties non-persistantes doivent pouvoir être recrées from-scratch Et si une catastrophe se produit chez votre prestataire? Faillite ou arrêt du service Réseau mal sécurisé La qualité du service se détériore Faire un plan de sortie, le décrire, le chiffrer, le tester Construire une infrastructure faiblement couplée aux ressources fournies par le prestataire 35
Amazon-AWS exemples de prix S3 $0.15/GB/mois (europe) EBS $0.11/GB/mois (europe) 36
Demo SwitzerlandMobility.ch sur AWS 37
Demo map.geo.admin.ch sur AWS 38
Merci de votre attention! Camptocamp SA claude.philipona@camptocamp.com mathieu.bornoz@camptocamp.com camptocamp SA / www.camptocamp.com / info@camptocamp.com