Votre recherche

Placez le centre de votre zone de recherche sur la carte par un double-clic, la recherche s'effectue sur l'ensemble de la zone affichée

Entrée pour valider un mot-clé,
retour arrière pour supprimer le dernier
 
Florian DAMBRINE
Ingénieur DevOps
Amiens & Alentours
80000 Amiens
floriandambrine.com/
0630944700


Florian DAMBRINE

Ingénieur DevOps


Je suis Ingénieur DevOps Freelance diplomé de l'UTC (Université de Technologie de Compiègne) en 2014.


Aujourd'hui je travaille principalement pour GumGum, une startup Californienne chez qui j'ai effectué mon stage de fin d'études d'une durée de 6 mois.

J'aime avant tout évoluer avec les nouvelles technologies pour relever des challenges dans un monde qui bouge vite!

Actualité

AU COEUR DE LA TRANSFORMATION DEVOPS DANS LA SILICON BEACH AVEC GUMGUM

Plus de 800 instances EC2, une centaine de rôles Ansible gérant des outils comme Cassandra, ElasticSearch, Storm et Kafka : le challenge relevé quotidiennement par les équipes d’infrastructure de GumGum fait de l’automatisation une ressource critique qui se doit d’être fiable à 100%. Mais pour répondre aux impératifs métier de mises en production fréquentes, la mise en place d’une organisation DevOps est une condition sine qua non. Lors du TIAD ParisFlorian Dambrine, ingénieur DevOps chez GumGum, a répondu à nos questions sur la transformation DevOps au sein de GumGum.

Quelle est ta mission chez GumGum ?

Aujourd’hui je travaille sur l’automatisation et le devops. Il s’agit de sensibiliser les équipes sur le fonctionnement d’une application sur AWS, de façon à les aider à construire et préparer leur application pour qu’elle soit optimisée pour le cloud, résiliente et scalable. Cette sensibilisation passe aussi par la découverte ou la formation à de nouvelles technologies, l’ouverture à ce qui se passe côté admin, comment cela fonctionne. Les choses évoluent et les développeurs s’intéressent de plus en plus à ce qui se passe en production, en dehors du code.

Qu’est-ce qui fait évoluer les mentalités vers plus de DevOps ?

Le DevOps répond au besoin d’accélération des mises en production. Une bonne communication et une bonne intégration entre les équipes sont indispensables à des mises en production rapides. Les deadlines de mise en production de nouvelles fonctionnalités sont parfois très serrées, et de fait les développeurs se rapprochent des ops pour savoir ce qui peut être fait de leur côté pour assurer une mise en production rapide dès que la version est stable.

Florian Dambrine GumGum TIAD Paris

« Test driven infrastucture with Ansible », par Florian Dambrine lors du TIAD Paris

Comment la technologie accompagne cette transformation DevOps ?

Le devops s’appuie essentiellement sur l’automatisation. 3 DevOps chez GumGum, 140 automatisations, 4 régions/comptes AWS différents et environ 1000 serveurs gérés par Ansible : ces chiffres permettent de se faire une idée, mais nous avons encore beaucoup de progrès à faire. Aujourd’hui, si on devait se donner une note DevOps, elle serait de 5/10. Cela pour dire que même avec une bonne intégration de l’automatisation il y a encore une grosse marge de progression pour être de vrais DevOps. Le DevOps doit pouvoir offrir des frameworks aux développeurs, leur donner des solutions ou des outils pour qu’ils puissent bâtir une application qui soit la plus proche possible du deploiement en production. Transférer l’application du développement à la production doit se faire en une fraction de seconde.

Quels sont les challenges pour progresser sur ce sujet ?

Cela demande du temps, parce que même si nous avons automatisé de nombreux process comme l’installation de logiciels, il nous faut un plus haut niveau d’automatisation. Il faut créer un cadre de référence, et les outils permettant de ne plus perdre de temps à créer un loadbalancer ou tout autre composant d’infrastructure dont on a besoin de façon récurrente. L’objectif est de pouvoir automatiser de A à Z toute l’infrastructure, et de permettre au développeur de livrer son code sans intervention des Ops, mais en s’appuyant sur un ensemble de bonnes pratiques, contrôlées par le framework Devops.

Quelle est la prochaine étape de cette évolution ?

Il s’agit de faire évoluer le framework vers un plus haut niveau d’automatisation, en automatisant toute la mise en place de l’infrastructure AWS. Cela pourrait se concrétiser dans un portail de services permettant de déployer chaque composant (loadbalancer, autoscaling, etc.) pour le développement ou la production en fonction du besoin. Autre axe d’amélioration de nos mises en production : Docker et les containers. Un fichier Docker fourni par un développeur, c’est comme un package, on doit pouvoir le mettre en production, mais là il faut mettre en place des bonnes pratiques, des règles de construction de ce fichier Docker.

L’introduction de Docker apporte certes des solutions, mais aussi de nouvelles problématiques. Comment pouvons nous réutiliser nos automatisations écrites dans un langage de plus haut niveau pour créer des images Docker de base (Framework Ops qui definit où est l’application, où vont les logs, le démon de supervision comme forever, supervisor, emperor, etc…), plutôt que de régresser et de retourner à l’écriture massive de Bash dans des DockerFiles ? Ainsi, les développeurs n’ont plus qu’a écrire au maximum 5 lignes dans un Dockerfile afin d’obtenir l’image de production.

Nous allons essayer de creuser ce sujet en amenant Docker dans certains projets, et cela demande de fournir certaines images Docker de base (créées par une automatisation Ansible) pour construire les applications rapidement.

 

 

Quels sont les outils que vous utilisez actuellement ?

Principalement Ansible pour le Configuration Management qui propose énormément de modules pour interagir avec AWS (démarrage de serveurs, management de security groups, VPC…). En déploiement applicatif, nous travaillons beaucoup avec Jenkins pour le Continuous Integration. Enfin, nous utilisons aussi de nombreux outils AWS, et CodeDeploy pour lancer un déploiement depuis une région de façon à ce qu’il soit ensuite répercuté sur d’autres régions.

Quel regard porte-tu sur l’automatisation ?

L’automatisation répond clairement à un besoin, mais j’irai même jusqu’à dire que cela a fait changer mon approche de travail. Quand je travaille sur un nouveau projet, le plus souvent j’écris directement l’automatisation. Par exemple, en ce moment je teste un nouveau serveur VPN (Pritunl Enterprise), je ne le configure pas à la main, j’automatise immédiatement, ce qui me permet de faire des tests facilement. Je ne fais presque plus d’administration manuelle. Par la suite, on peut toujours réutiliser ce code d’automatisation. Les outils, comme Ansible, sont très simples à utiliser, donc il ne faut pas s’en priver.

Quels sont les enjeux de BigData chez GumGum ?

Nous traitons environ 4Tb/jour de logs (données métier essentielles). En conséquence, nous avons un datawarehouse de plusieurs petabytes, et nous faisons tourner de volumineux jobs Spark pour traiter l’ensemble de nos données. Certains jobs tournent avec 200 machines Amazon. Récemment, nous avons monté un pipeline de traitements de logs (au sens d’une interaction, par exemple un clic sur une publicité) en temps réel, avec pour objectif de traiter 400 000 logs JSON/seconde pour prédire une augmentation du trafic. Comme certaines campagnes publicitaires ont des restrictions de cible (par exemple une thémathique particulière comme le sport ou l’alimentation, une tranche d’âge), quand on ne peut pas afficher la publicité correspondant à la cible, plutôt que de perdre cet espace publicitaire (inventaire), on lance un process de Real Time Bidding (RTB). Dans ce processus d’enchère en temps réel, nous contactons des partenaires avec un réseau d’annonceurs possibles. La meilleure enchère est ensuite sélectionnée et leur annonce affichée sur le site cible. Le RTB génère énormément de logs et d’informations, environ 8 à 10 fois le trafic habituel, et toute interaction durant ce process est loggée et traitée. Côté infrastructure, cela demande de s’adapter afin de pouvoir traiter, reporter et stocker toutes ces données.

Nous avons abordé lors du TIAD le sujet de la désautomatisation, qu’en penses-tu ?

C’est un concept intéressant, et si je dois reconsidérer ma façon de travailler sous l’angle de la désautomatisation, je réalise qu’aujourd’hui je travaille souvent avec le même outil, Ansible. Si je dois automatiser quelque chose, mon réflexe sera d’utiliser Ansible. C’est vrai qu’on a tendance à automatiser sa réflexion, utiliser les outils que l’on connaît, mais il faut garder à l’esprit que d’autres outils existent, savoir laisser ses habitudes de côté et sortir de sa zone de confort pour aller voir ailleurs, aller chercher plus loin. Chez GumGum chaque vendredi est consacré à l’exploration de nouveaux outils, nous essayons de nous former sur des technologies, creuser différents projets open source. Aujourd’hui j’explore Docker, Kubernetes par exemple. Il faut enlever ses œillères et aller voir ce qui se passe ailleurs!

d2si_blog_image_gumgum_devops-4

Ivan Sigg dessinant Florian lors du TIAD Paris

Galerie
  • TIAD-2016
  • TIAD-2016
  • TIAD-2016
Florian DAMBRINE
Ingénieur DevOps
Amiens & Alentours
80000 Amiens
floriandambrine.com/
0630944700


Nos références

project.name

 

Pritunl VPN - Interconnexion de régions

Origine du projet: Professionnelle Date: 11 / 2016

Pritunl (https://pritunl.com) est une solution VPN d'entreprise open source distribuée. Cette technologie permet de virtualiser un ensemble de réseaux privés qui peuvent être localisés dans des datacenters ou des régions différentes.

Pritunl permet également d'interconnecter des VPC AWS afin d'offrir une meilleur expérience à ses utilisateurs. En effet, une fois connecté au serveur VPN d'une région, l'accès aux autres régions devient alors transparent. 

De plus, Pritunl offre des aspects de sécurité très interessants comme l'authentification à deux facteurs de type OTP et le “single sign-on”.

Lors de ce projet, j'ai procédé à la mise en place complète de l'infrastructure Pritunl (4 serveurs Pritunl + 1 serveur MongoDB). Le tout est intégralement automatisé (Création de modules Ansible pour la gestion d'utilisateurs Pritunl). Les différentes régions AWS utilisées chez GumGum ont étés interconnectées.


Technologies utilisées: #Pritunl #AWS VPC #Ansible

project.name

 TIAD 2016 - Speaker

Origine du projet: Personnelle Date: 10 / 2016

Automatisation et désautomatisation : TIAD, l’événément de référence de l’automatisation en France a eu lieu le 4 Octobre 2016 à Paris. Rassemblant dev et ops, freelances et étudiants, grandes sociétés et start-up, TIAD propose un véritable voyage au coeur de l’automatisation, animé par des speakers émérites.

Avec plus de 800 instances EC2, une centaine de rôles Ansible gérant des outils comme Cassandra, ElasticSearch, Storm et Kafka : le challenge relevé quotidiennement par l'équipe d’infrastructure chez GumGum fait de l’automatisation une ressource critique qui se doit d’être fiable à 100%.

La présentation réalisée lors du TIAD m'a permis de partager ce projet de mise en place d'infrastructure de test pour Ansible faisant intervenir Docker et Jenkins. Voici les différents liens permettant de vous plonger au coeur du sujet:

Le TIAD:
• http://tiad.io/

Présentation et vidéo:
• http://slides.com/floriandambrine/tdi-with-ansible-docker-jenkins/
• https://youtu.be/GWpMOclvfuQ

Interviews:
• http://www.gumgum.com/2016/11/18/florian-dambrine-talks-devops-tiad-paris/
• http://blog.d2-si.fr/2016/10/25/transformation-devops-gumgum/


Technologies utilisées: #Ansible #ServerSpec #Jenkins #Docker

project.name

 Intégration Continue d'Automatisations

Origine du projet: Professionnelle Date: 03 / 2016

Afin d'assurer le bon fonctionnement des automatisations, les tests sont indispensables! Cependant, contrairement aux tests unitaires, les tests d'intégration continue sont souvent plus compliqués à concevoir, d'autant plus avec un code décrivant l'infrastructure…

Ce projet a pour but d'offrir un processus simple, rapide et peu coûteux pour tester toute une batterie d'automatisations (~100) afin d'assurer son bon fonctionnement en production.

C'est ici que Docker prend tout son sens. Au lieu de démarrer un serveur Amazon pour tester une automatisation, Ansible va se charger de démarrer des conteneurs afin de les automatiser tout comme il le ferait sur un serveur de production. Ansible est capable d'intéragir avec des conteneurs grâce à ses plugins de connexion (http://docs.ansible.com/ansible/developing_plugins.html#connection-type-plugins).

Jenkins s'occupe de tester l'ensemble des automatisations à tour de role, y compris celles necessitant la création de clusters.


Technologies utilisées: #Ansible #Docker #Jenkins

project.name

Ansible - Securité avec Vault

Origine du projet: Professionnelle Date: 12 / 2015

Vault est une fonctionalité d'Ansible qui permet de conserver les données sensibles comme les mots de passe ou les clés dans les fichiers cryptés au lieu de les conserver en texte clair dans les playbooks et les roles. Les fichiers cryptés avec Vault peuvent ensuite être distribués ou placés dans un logiciel de gestion de versions en toute securité.

Le projet avait pour objectif de sécuriser l'ensemble du répertoire de code par le biais de Vault ainsi que de regénérer les différentes clés ou mots de passe ayant été publiés en clair afin d'éviter tous risques de corruption. 

L'historique du logiciel de gestion de versions a également été nettoyé afin de supprimer toutes traces suceptibles de compromettre la sécurité de l'infrastructure.


Technologies utilisées: #Ansible

project.name

 Ansible - Meetup

Origine du projet: Personnelle Date: 07 / 2015

Après plus d'un an d'utilisation d'Ansible, j'ai décidé de présenter et de partager mon expérience autour de cette technologie lors d'un Meetup public organisé à la bibliothèque municipale de Santa Monica en Californie.

Le 8 Juillet, j'ai eu l'occasion d'échanger et de faire part de mon retour d'expérience sur notre utilisation d'Ansible chez GumGum. Nous administrons aujourd'hui plus de 500 serveurs dans le cloud AWS et nous utilisons une soixantaine d'automatisations pour configurer notre plateforme Big-Data. Celle-ci met en jeu des technologies comme Storm, Kafka, Spark, Druid, Cassandra, Elasticsearch et bien d'autres encore…

Pour plus de détails sur le sujet vous pouvez retrouver la présentation sur:

http://slides.com/floriandambrine/ansible-tips-and-tricks#/


Technologies utilisées: #Ansible

project.name

Cassandra - Interconnexion de clusters en multi-régions

Origine du projet: Professionnelle Date: 07 / 2015

Suite à l'ouverture de nouveaux datacenters en Irlande et en Californie, l'équipe d'ingénieurs GumGum a dû faire face à d'importants changements d'architecture afin d'optimiser les temps de réponse des applications utilisant la base de données Cassandra.

Lors de ce projet j'ai travaillé autour d'une problèmatique complexe qui était la suivante:

Comment migrer notre simple cluster Cassandra version 2.0.8 (EC2 Classic) vers un Cluster 2.1.5 multi régions en VPC (Virtual Private Cloud), multi AZ (Availability Zone), multi datacenters (un en Irlande et deux autres aux USA)?

L'ensemble de la migration s'est faite sans interrompre les 20K requêtes de lecture par seconde. Le projet s'est déroulé sur 3 mois incluant une phase de planification, de tests et de migration du système pour sa mise en production.

Pour plus de détails sur le sujet vous pouvez vous référer à cette présentation de Mario Lazaro, Ingénieur BigData chez GumGum, rédigée à l'occasion du #CassandraSummit2015:

http://slides.com/mario2/cassandra-summit-2015-gumgum#/


Technologies utilisées: #Cassandra #Java #Ansible

project.name

Fluentd - Traitement de données en temps réel

Origine du projet: Professionnelle Date: 03 / 2015

Fluentd est une technologie OpenSource permettant de collecter des données afin d'unifier leur traitement et leur stockage.

Le projet que j'ai mené chez GumGum a pour but d'offrir un processus fiable et temps réel d'acheminement d'événements depuis leur source (serveurs frontaux émettant les logs) jusqu'à leur destination où ils seront stockés (Amazon S3 dans ce cas).

L'architecture mise en place aujourd'hui met en jeu une topologie de réseaux connectant les clients aux serveurs. Les clients (forwarders) relayent les différents événements issus de l'application vers les serveurs (aggregators) permettant d'agréger ces messages afin de les stocker sur AWS S3.

Les clients sont configurés de telle sorte que si l'ensemble des serveurs permettant l'agrégation ne répondent pas, ils se chargent eux-mêmes de l'envoi sur AWS S3.


Technologies utilisées: #Fluentd #S3 #Ansible

project.name

Icinga2 - Supervision

Origine du projet: Professionnelle Date: 10 / 2014

Icinga est une solution de monitoring OpenSource qui permet de vérifier la disponibilité des services sur un réseau, de notifier les utilisateurs des interruptions de service et de générer des rapports de performance.

J'ai automatisé la mise en place de ce type de serveur avec Ansible et mis en place un mécanisme de synchronisation avec le Cloud AWS d'Amazon. Le démarrage d'un nouveau serveur dans le Cloud provoque son enregistrement dans Icinga ce qui permet d'avoir un contrôle total sur l'ensemble des ressources du parc.


Technologies utilisées: #Icinga #Icinga2 #Nagios #Python #AWS Services

project.name

Ansible - Automatisation d'infrastructure

Origine du projet: Professionnelle Date: 08 / 2014

Création d'une nouvelle plate-forme d'automatisation avec Ansible.

L'ensemble des automatisations existantes réalisées avec Chef ont été migrées vers Ansible. Cette nouvelle plate-forme permet d'automatiser une soixantaine de services comme Cassandra, Druid,Tomcat, Elasticsearch, Kafka, Storm, Zookeeper, Icinga ou encore Logstash.

La gestion des serveurs est complètement intégrée avec Ansible depuis le démarrage de celui-ci avec la mise en place du firewall, jusqu'au déploiement du code des développeurs et au redémarrage de clusters.


Technologies utilisées: #Ansible #AWS Services #Tomcat #Elasticsearch #Kafka #Storm #Zookeeper #Exhibitor#Uptime #Logstash #Git

project.name

Logstash - Centralisation d'évènements

Origine du projet: Professionnelle Date: 06 / 2014

J’ai eu l’occasion d’évaluer des outils de gestion de logs et d’événements afin de trouver une solution de remplacement à l’outils Splunk>Storm qui devenait trop honnereux. J’ai donc exploré et évalué les capacités d’une nouvelle technologie nommée Logstash.

L’architecture que j’ai élaborée permet d’acheminer les évenements depuis les serveurs de production jusqu’en base de données. Cette chaine met en jeu un cluster Elasticsearch, un serveur Redis et un groupe de serveurs Logstash analysant ces événements. L’ensemble des données est utilisé par le serveur Kibana mettant à disposition les logs d’une douzaine de services différents.

Un ensemble de scripts a également été developpé afin de déclencher des alertes par email lors de détection d’erreurs.


Technologies utilisées: #Elasticsearch #Logstash #Kibana #Redis #Groovy #Python

 

project.name

Jenkins - Intégration Continue

Origine du projet: Professionnelle Date: 05 / 2014

J’ai été impliqué dans un projet de migration de serveur d’intégration continue visant à remplacer Bamboo, un produit payant d’Atlassian, par une technologie Open Source nommée Jenkins. En effet, Jenkins permet d’intégrer un plus grand nombre de projets et de contrôler leurs intégrations en continue (compilation du code, gestion des mises en production).

Aujourd’hui, ce serveur est capable de compiler une douzaine de projets simultanément, de les déployer sur Artifactory Online et d’envoyer les résultats de leurs compilations par email aux développeurs. Le design de cet outil s’est vu revisité pour coller à l’esprit GumGum.


Technologies utilisées: #Jenkins #Bamboo #BitBucket #Gradle #Maven

project.name

 ArcheoSuite

Origine du projet: Personnelle Date: 02 / 2014

La suite Archeo a été développée suite à un besoin du service archeologique de la ville d'Amiens. Cette suite embarque deux logiciels: ArcheoExtractor et ArcheoExif. ArcheoExtractor permet principalement d'extraire les chemins des photos et les noms des photos vers un fichier CSV ou une base de données SQLite. ArcheoExif permet quant à lui d'extraire les données EXIF (distance focale, marque de l'appareil photo, date de prise de vue, …) de photos contenus dans les dossiers sélectionnés par l'utilisateur. Ces informations peuvent être exportées dans un fichier CSV, dans une base de données SQLite ou dans un fichier XML afin de s'interfacer avec FileMaker 12.


Technologies utilisées: #Qt #C++ #SQLite

project.name

BitMusic

Origine du projet: Scolaire UTC Date: 01 / 2014

Projet réalisé lors du suivit de l'unité de valeur ‘Gestion de projet logiciel’ à l'UTC. Ce projet à mis à contribution un groupe de 25 étudiants à la fois concepteurs, développeurs et ingénieur.


Technologies utilisées: #Java #JUnit #Git #Sonar #PDM #CheckStyle

 

project.name

Legend Of Code

Origine du projet: Concours Date: 11 / 2013

Legends of code est un concours organisé par D2SI pour les étudiants en dernière année d’école d’ingénieur ou d’université. L’objectif est de développer, en binôme sur une durée de 11h et en conditions réelles, un algorithme en tenant compte de critères liés à l’agilité et à l’écoconception logicielle. L’évaluation est faite sur la capacité à livrer un code de qualité, ergonomique et maintenable. Le challenge 2013 consistait à développer un ‘Bot’ de jeux vidéo. Nous avons choisi de développé cette intelligence artificielle en C++.


Technologies utilisées: #Java #Git #Jenkins

project.name

 Vortex

Origine du projet: Professionnelle Date: 01 / 2012

Dans le cadre de mon stage assistant ingénieur la Division Moteurs Spatiaux de Snecma (DMS) m’a confié un projet de base de données dont l’objectif est de gérer les résultats d’exploitation des essais du moteur Vinci® ; futur moteur d’étage supérieur d’Ariane 5. Ce projet a pour principaux objectifs de classifier et structurer l’information pour la centraliser dans une base de données afin de garantir l’intégrité et la sécurité de celle-ci. La base de données a été couplée à une application nommée Vortex, développée par mes propres soins, permettant de répondre au besoin exprimé dans le cahier des charges (extraction de données, visualisation graphique, import de nouvelles données, etc.).


Technologies utilisées: #C++ #Qt #Qwt #Oracle

 

project.name 

  Les Arts de la Grimpe

Origine du projet: Scolaire DUT Date: 07 / 2010

Les Arts de la Grimpe est un site internet développé pour l'association d'escalade de Flixecourt. Celui-ci a fait l'objet d'un projet d'apprentissage des concepts et des technologies Web à l'IUT d'Amiens. Le site a été développé ‘From Scratch’ en utilisant le design pattern MVC. Il repose sur une base de données MySql comportant une 20aines de tables.


Technologies utilisées: #HTML #CSS #JQuery #MySql
Florian DAMBRINE
Ingénieur DevOps
Amiens & Alentours
80000 Amiens
floriandambrine.com/
0630944700


Une question ?

N'hésitez pas à nous contacter par mail en utilisant le formulaire suivant :