Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Meetup ElasticFR - KISS : Retour d’expérience sur l’utilisation d’elasticsearch chez Canal+

Meetup ElasticFR - KISS : Retour d’expérience sur l’utilisation d’elasticsearch chez Canal+

Retour d'expérience de l'utilisation d'elasticsearch dans le cadre du projet de refonte KISS de Canal plus
#elasticsearch #cloud #devops #ELK

Erwan Deruelle

August 07, 2015
Tweet

More Decks by Erwan Deruelle

Other Decks in Programming

Transcript

  1. REX « KISS »
    REX « KISS »
    MEETUP ELASTIC - 29/07/2015

    View full-size slide

  2. INTERVENANTS
    CONTEXTE
    USE-CASE 1 : RECHERCHE
    AGENDA
    1
    REX « KISS » - MEETUP ELASTIC - 29/07/2015
    USE-CASE 2 : SUPERVISION
    DÉPLOIEMENT
    BILAN

    View full-size slide

  3. LES REVENANTS INTERVENANTS
    Erwan DERUELLE
    Architecte Technique - Consultant Search
    [email protected]
    @d3rwan
    2
    Rémy TESTEMALE
    Architecte
    [email protected]
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  4. CONTEXTE : LE PROJET KISS
    REFONTE COMPLÈTE DU SYSTÈME D’INFORMATION DISTRIBUTION
    Auparavant sur mainframe IBM (Cobol, CICS, DB2)
    PÉRIMÈTRE
    Ensemble des outils relatifs à la relation client, la facturation, la gestion des offres, la logistique, la gestion et
    le commissionnement des points de vente et des canaux de distribution
    OBJECTIFS
    • Apporter de l’agilité au groupe Canal+: diviser par 2 le « Time to Market » de la DSI, c'est-à-dire
    réduire de moitié le temps de mise en production des nouvelles fonctionnalités. (~ 6 mois sur mainframe)
    3
    REX « KISS » - MEETUP ELASTIC - 29/07/2015
    Apporter de l’agilité au groupe Canal+: diviser par 2 le « Time to Market » de la DSI, c'est-à-dire
    réduire de moitié le temps de mise en production des nouvelles fonctionnalités. (~ 6 mois sur mainframe)
    • Homogénéiser le SI en réduisant le nombre d’outils spécifiques par canal de vente.
    • Remise à plat la stratégie d’externalisation de l’informatique du groupe, ré-internalisation en partie de la
    compétence sur un SI (qui était externalisé à 80% environ).
    • Approches novatrices pour Canal+ : gestion de projet agile, utilisation des ressources cloud, stratégie
    devops…
    LE NOUVEAU SI « DISTRIBUTION » DU GROUPE CANAL+ EST EN PRODUCTION DEPUIS LE 18 MAI
    ET L’AGILITÉ ATTENDUE EST, SEMBLE-T-IL, AU RENDEZ-VOUS
    NOUS RÉALISONS AUJOURD’HUI 2 RELEASES PAR MOIS,
    ET NOUS MONTONS DES CORRECTIFS TOUS LES 2 JOURS.

    View full-size slide

  5. CONTEXTE : LE PROJET KISS
    4
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  6. USE-CASE : RECHERCHE
    5
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  7. RECHERCHE AU SEIN DES RÉFÉRENTIELS « ABONNÉS »
    DONNÉES PERSONNELLES, CONTRACTUELLES, MATÉRIELLES, FINANCIÈRES…
    BRIQUE À PART ENTIÈRE DANS L’ARCHITECTURE ORIENTÉE « MICRO-SERVICES »
    TRANSVERSE A PLUSIEURS BRIQUES DU SI
    RECHERCHE DU TYPE « SEARCH-AS-YOU-TYPE »
    MISE A JOUR DE LA LISTE DES RÉSULTATS EN TEMPS RÉEL LORS DE LA SAISIE
    UTILISATION DE FILTRES « N-GRAM » ET « EDGE-N-GRAM »
    TROUVETOUT
    6
    MISE A JOUR DE LA LISTE DES RÉSULTATS EN TEMPS RÉEL LORS DE LA SAISIE
    UTILISATION DE FILTRES « N-GRAM » ET « EDGE-N-GRAM »
    PERTINENCE DES RÉSULTATS
    PROPOSER LE MEILLEUR RÉSULTAT AUX CONSEILLERS EN FONCTION DES INFORMATIONS DONT ILS
    DISPOSENT
    SIMPLE PONDÉRATION DES CHAMPS DE RECHERCHE
    MISE A JOUR EN TEMPS RÉEL
    METTRE A DISPOSITION AU PLUS TÔT LES INFORMATIONS LES PLUS FRAICHES AUX CONSEILLERS
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  8. ALIMENTATION
    ETL « MAISON »
    DIFFÉRENTS CONNECTEURS
    TRAITEMENT VERS PIVOT
    INDEXATION VERS ES
    MODES FULL, DELTA, OU MANUEL
    TROUVETOUT
    7
    EXPOSITION
    API REST EN COUPURE
    VALIDATION DES PARAMÈTRES
    REQUÊTE VERS ES
    FORMATAGE DE LA RÉPONSE
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  9. ALIMENTATION EN MODE « PULL » PLUTÔT QU’EN « PUSH »
    LA DONNÉE EST MIS A JOUR DEPUIS DIFFÉRENTES SOURCES
    - CERTAINES DE CES SOURCES NE SONT PAS MODIFIABLES (COBOL, PL/SQL…)
    - LA BDD EST DONC LE SEUL ENDROIT DU SI OU LA DONNÉE EST TOUJOURS A JOUR
    UNE INDEXATION EVÈNEMENTIELLE ET TEMPS-RÉEL
    CHAQUE MODIFICATION DE LA DONNÉE EST MARQUÉE DANS UN TABLE D’ÉVÉNEMENTS
    - ALIMENTATION EN MODE « DELTA » DEPUIS LA DERNIÈRE INDEXATION
    DE LA VISION NORMALISÉE AU NOSQL
    TROUVETOUT
    8
    DE LA VISION NORMALISÉE AU NOSQL
    NÉCESSITE DE RECONSTRUIRE UNE VISION DÉNORMALISÉE DEPUIS UNE BASE MASSIVEMENT
    NORMALISÉE
    - COMPLEXIFIE LES REQUÊTES SQL EN ENTRÉE (JOINTURE OUVERTE)
    - OU NÉCESSITE DE CONSTRUIRE UN OBJET COMPLEXE EN MÉMOIRE
    - OU NÉCESSITE UNE MISE A JOUR INCRÉMENTALE ET COUTEUSE DE L’INDEX
    QUELQUES FACTEURS LIMITANT
    LATENCE RÉSEAU
    TEMPS DE REQUÊTAGE
    IMPACTS SUR LA BDD
    REX « KISS » - MEETUP ELASTIC - 29/07/2015
    EN CHIFFRES
    13 indexs
    2.5 Milliards de données 700Go d’espace disque
    Réponse < 50 ms en moyenne
    30 QPS en journée

    View full-size slide

  10. TROUVETOUT
    Configuration du Job
    Reader / Writer
    9
    Configuration
    Model
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  11. TROUVETOUT
    Controller
    Service
    10
    REX « KISS » - MEETUP ELASTIC - 29/07/2015
    DAO
    Service

    View full-size slide

  12. TROUVETOUT
    11
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  13. USE-CASE : SUPERVISION
    12
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  14. SUPERVISION TECHNIQUE
    EAVER
    EDIS
    LASTICSEARCH
    B
    R
    E
    13
    REX « KISS » - MEETUP ELASTIC - 29/07/2015
    OGSTASH
    IBANA 4
    E
    L
    K

    View full-size slide

  15. KIBANA
    VISUALISATION DES LOGS
    ELASTICSEARCH
    INDEXATION, RECHERCHE & ANALYTICS
    LOGSTASH
    INDEXER - RÉCUPÉRATION DES LOGS, MISE
    EN FORME, ENVOI VERS ELASTICSEARCH
    SUPERVISION TECHNIQUE
    14
    EN FORME, ENVOI VERS ELASTICSEARCH
    REDIS
    BROKER - COLLECTE LES LOGS AVANT LEUR
    TRAITEMENT PAR LOGSTASH
    BEAVER - NXLOG
    SHIPPER - AGENT INSTALLÉ SUR CHACUN
    DES SERVEURS APPLICATIFS
    CURATOR
    GESTION DES INDEXS
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  16. BEAVER ?
    AGENT PYTHON PERMETTANT DE « SHIPPER » LES LOGS
    MOINS GOURMAND QUE LOGSTASH
    LOGSTASH-FORWARDER ENVISAGÉ DANS UN PREMIER TEMPS NON-RETENU
    - NECESSITE L’UTILISATION D’UN CERTIFICAT (NON-BLOQUANT EN SOIT)
    - UN PROBLÈME COTE SERVEUR PEUT IMPACTER (VOIRE FAIRE TOMBER) LE SERVEUR LOGSTASH
    - BEAVER PERMET D’ENVOYER DIRECTEMENT VERS REDIS
    ELASTIC…CACHE
    LOGSTASH PERMET D’UTILISER DIRECTEMENT LA SOLUTION REDIS EN MODE SAAS D’AMAZON
    SUPERVISION TECHNIQUE
    15
    ELASTIC…CACHE
    LOGSTASH PERMET D’UTILISER DIRECTEMENT LA SOLUTION REDIS EN MODE SAAS D’AMAZON
    PERMET DE « SIMPLIFIER » L’ARCHITECTURE
    EN CHIFFRES
    Seulement
    4applicatifs en production
    Jusqu’à
    20M de lignes par jour
    14 jours de rétention
    7 jours en ligne
    30 dashboards, 75 recherches et
    200 graphiques sur Kibana
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  17. SUPERVISION OPÉRATIONNELLE
    UN « ELK » SANS « L » NI « K »
    APPLICATION « MAISON » ...
    … S’APPUYANT SUR LE MOTEUR ANALYTICS D’ELASTICSEARCH
    UTILISATION MASSIVE DES AGRÉGATIONS
    16
    UTILISATION MASSIVE DES AGRÉGATIONS
    SOURCES DE DONNÉES MULTIPLES
    BASÉ SUR L’ETL « TROUVETOUT »
    SGBDR (ORACLE), NOSQL (MONGODB), FICHIERS (LOGS, CSV)
    TABLEAUX DE BORD TEMPS-RÉEL ORIENTÉ BUSINESS
    PROMOTIONS, COMMANDES, PROSPECTS
    DASHBOARD PERSONNALISABLE
    CHOIX DES TYPES DE GRAPHIQUES, DES SOURCES, DES AXES
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  18. DÉPLOIEMENT
    17
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  19. MACHINES HÉBERGÉES SUR LE CLOUD AMAZON AWS
    DÉPLOIEMENT MULTI-AZ (« AVAILABILITY ZONE »)
    UTILISATION DU PLUGIN ELASTICSEARCH-AWS
    SOLUTION SCALABLE PAR NATURE
    SIZING « PRODUCTION »
    LE JOURNAL DU HARD(WARE)
    18
    SIZING « PRODUCTION »
    CLUSTER DE 3 MACHINES
    INSTANCE DE TYPE M3-XLARGE OU M4-XLARGE
    SIZING « HORS-PRODUCTION »
    CLUSTER DE 1 À 3 MACHINES
    INSTANCE DE TYPE T2-MEDIUM À M3-XLARGE
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  20. INSTALLATION & DÉPLOIEMENT AUTOMATISÉ
    MODULES « GÉNÉRIQUES » DÉVELOPPÉS PAR LA COMMUNAUTÉ
    APPROCHE DEV-OPS
    19
    DÉVELOPPEMENT DE MODULES POUR LE « SPÉCIFIQUE » DE KISS
    APPLICATIFS « MAISON »
    FICHIERS DE CONFIGURATION
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  21. APPROCHE DEV-OPS
    configuration Elasticsearch
    Configuration par environnement
    20
    Installation & configuratio
    Configuration par environnement
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  22. BREF.
    21
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  23. BREF.
    UN OUTIL DE RECHERCHE TRÈS EFFICACE
    PLÉBISCITÉ PAR LES UTILISATEURS, QUE CE SOIT PAR SA SIMPLICITÉ D’USAGE OU SES PERFORMANCES
    UNE APPLICATION ROBUSTE & FIABLE
    PAS D’INCIDENT MAJEUR DE PRODUCTION DEPUIS LE DÉMARRAGE
    UNE GRANDE CAPACITÉ D’ABSORPTION DE CHARGE
    SOULAGE LE BACK-OFFICE DE LA PLUPART DES REQUÊTES DE LECTURE
    22
    SOULAGE LE BACK-OFFICE DE LA PLUPART DES REQUÊTES DE LECTURE
    DE NOUVEAUX USAGES
    INITIALEMENT CONÇUE POUR UN USAGE IHM TÉLÉCONSEILLER, L’APPLICATION EST DÉSORMAIS
    UTILISÉE PAR LE SVI, LA TVI, LES SITES WEBS, ET PLUSIEURS BO)
    UN GAIN DE TEMPS SIGNIFICATIF
    DETECTION & ANALYSE DES PROBLÉMATIQUES TECHNIQUES EN TEMPS RÉEL GRÂCE À LA
    SUPERVISION TECHNIQUE & OPÉRATIONNELLE DU SYSTÈME
    REX « KISS » - MEETUP ELASTIC - 29/07/2015

    View full-size slide

  24. Q & A ?
    Q & A ?
    MEETUP ELASTIC - 29/07/2015

    View full-size slide