Interview de Aurélie Vache, développeuse Cloud et DevOps

Aurélie Vache
Aurélie Vache

Nous vous proposons une interview de Aurélie Vache, Développeuse Cloud (& DevOps) chez Continental à Toulouse, l’une des leaders de Duchess France, membres de la core team du Toulouse Data Science (TDS), rédactrice d'articles techniques et marraine de l’association « Elles Bougent ».

Pour réagir à cette interview, un espace de dialogue vous est proposé sur le forum 1 commentaire Donner une note  l'article (5)

Article lu   fois.

Les trois auteurs

Site personnel

Profil Pro

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Informations générales

Qui es-tu ? Peux-tu te présenter à nos lecteurs ?

Bonjour,

je m’appelle Aurélie Vache, je suis Développeuse Cloud (& DevOps) chez Continental à Toulouse. Je suis développeuse depuis plus de 14 ans. Anciennement Développeuse Java / J2EE dans la téléphonie mobile, puis développeuse Web, Full-Stack et Lead en faisant un passage en tant qu’Ops. Je m’occupe depuis plus de deux ans (août 2017) de développer des services pour des projets autour des véhicules connectés et autonomes.

Je suis l’une des leaders de Duchess France, une association qui promeut les femmes développeuses et les femmes travaillant dans l'informatique, et suis fortement impliquée dans l'initiative de coaching #AdoptADuchess, qui aide les développeurs débutants et en reconversion.

Je suis également l’une des membres de la core team du Toulouse Data Science (TDS).

Et durant mon temps libre, plus si libre à force ^^, rédactrice d'articles techniques et marraine de l’association « Elles Bougent ».

Quel est ton parcours (formations et expériences professionnelles) ?

J’ai passé un Bac STT (Science et Technologie du Tertiaire) option Informatique de Gestion, ensuite j’ai fait un BTS Informatique de Gestion spécialité Développeur d’applications.

À ce moment-là je voulais faire un Master MIAGE, j’avais été prise sur dossier, mais au moment de passer l’oral, j’entre dans la salle, il y avait huit personnes dans le jury devant moi et un des membres me demande de m'arrêter et me dit que je ne sais pas parler. Je ne vous cache pas que cela m’a fait mal sur le moment, mais j’ai pu rebondir et continuer une année de plus en faisant une Licence Professionnelle option Développeur d’application e-business.

Je ne suis donc pas ingénieur, j’ai un petit Bac +3, mais cela ne m’a pas empêché de faire un travail que j’aime, qui me passionne, sans le précieux Bac +5 ;-).

Donc si vous aussi vous n’avez pas le bon diplôme, dans la bonne école, c’est possible d’y arriver, oui moins facilement, mais c’est possible.

En quoi consiste ton travail au quotidien ?

Je fais partie d’une squad/d’une équipe de six personnes en tant que développeuse, nous travaillons sous forme de sprint et mon travail, ainsi que celui des autres membres de l’équipe, est de concevoir des services autour des problématiques liées aux véhicules connectés et autonomes. Plus précisément nous travaillons sur le fait de pouvoir fournir aux véhicules de la carto à jour, multirégion dans le monde, avec des informations telles que les « traffic signs », les panneaux avec la vitesse maximale autorisée, les dos d'âne, mais également les croisements…

Actuellement les voitures qui sont en service circulent avec des cartes qui datent de plusieurs mois, voire de plusieurs années.

Sans une carto à jour, il ne peut y avoir de véhicule autonome. Imaginez une voiture autonome qui doit rouler au maximum à 110, si les informations qu’elle a datent d’il y a plusieurs mois et qu’à ce moment-là à cet endroit, il y avait un panneau à 130, nous avons donc un problème.

Donc c’est chouette d’y contribuer, à son touuut petit niveau.

Ces microservices, nous les développons principalement en Go, mais également, selon les besoins, les bibliothèques disponibles, le contexte (…), en Java, Scala ou bien en Python puis nous les déployons automatiquement, via une chaîne de CI/CD, dans des conteneurs qui sont dans des clusters orchestrés par Kubernetes qui tournent eux-mêmes chez AWS. Tous nos services ne tournent pas dans des clusters Kube donc nous gérons également des ressources dans le Cloud de Amazon.

Quels sont tes projets actuels (les technologies que tu utilises) ?

Je jongle au quotidien avec quelques technologies & outils bien sympathiques : Go, Git, Gitlab, Jenkins, Artifactory, Harbor, Docker, Kubernetes, Istio, Terraform, AWS…

Quels sont tes projets (les technologies que tu souhaites utiliser) ?

Honnêtement je n’ai pas de technologie en mire, je suis open/ouverte à toute technologie qui pourrait répondre aux besoins que nous pouvons avoir dans notre projet actuel ou dans un prochain projet.

Une technologie peut être créée au moment où j’écris (enfin ^^) ces quelques lignes donc nous ne savons pas de quoi l’avenir sera fait. Je suis ouverte à toute opportunité technologiquement parlant ;-).

En me relisant, et en réfléchissant, je pense que finalement il y aurait tout de même quatre technos que j’aimerais bien tester, approfondir.

La première est : Google Cloud Run. Je pense que cette techno peut permettre de décomplexifier des architectures trop complexes pour des problèmes simples, donc c’est mon petit coup de cœur que j’aimerais approfondir, jouer avec.

La deuxième chose est la future cluster API de Kubernetes, je pense que cela peut faciliter la création de cluster, j’ai hâte de voir comment cette API va évoluer.

La troisième est le Config connector de Google. Il s’agit d’une techno liée à GKE. Sur le papier, plus besoin d’outils comme Terraform pour gérer l’infra as Code, mais avec cet add-on on pourrait gérer des ressources Google Cloud (pas que GKE !). Donc je suis également curieuse de voir son évolution et de jouer avec.

Ne faisant pas de Google Cloud Platform (GCP) ou de GKE (Google Kubernetes Engine) au travail, encore une fois je le fais sur mon temps personnel/mon temps libre, qui n’est plus si libre que cela.

La quatrième est les ephemeral containers, une fonctionnalité qui sera en Alpha dans la version 1.16 de Kubernetes : un conteneur spécial qui s'exécutera dans un pod existant. Une des principales utilités de ce conteneur éphémère sera pour déboguer les services existants. Il n'y aura plus besoin de faire un kubectl run d'un pod pour faire du débogage par exemple. Je suis curieuse de voir cette nouvelle fonctionnalité en pratique et quelles nouvelles pratiques peuvent en découler.

Une petite anecdote : pourquoi le pseudo de Scraly (Github et site web personnel) ?

Ce surnom date de la 3e, il commence à dater ! :-D

Un de mes camarades de classe de l’époque m’avait surnommée “Scralmucho”, que j’ai très rapidement raccourci en Scraly, je l’ai ensuite utilisée comme surnom/nickname lors des débuts de l’Internet en France et depuis c’est resté.

II. Implication dans les communautés

Tu es très active dans les conférences (participantes et oratrices). Que recherches-tu dans ce genre de manifestation ?

Suite à une formation sur Android que j’avais eue, j’ai découvert un petit meetup sur Toulouse, le « TAUG » (Toulouse Android User Group qui est devenu le GDG - Google Developers Group) à l’époque, puis je me suis rendue au Toulouse JUG (Java User Group), j’ai découvert d’autres meetups puis des conférences, c’est comme cela que depuis plusieurs années je suis tombée dans le monde merveilleux des conférences et je continue d’adorer cela ;-).

J’aime apprendre tous les jours, et j’en ai besoin, c’est mon carburant pour avancer.

J’aime aussi aider les autres et partager. Cela fait partie de mon ADN.

Il y a quelques années j’ai eu l’opportunité de parler dans un meetup (au Toulouse Data Science). Je venais tous les mois à chaque meetup du TDS et un jour, les organisateurs m’ont demandé si j’avais un sujet et pourquoi je ne le présenterais pas ? Oui j’avais un sujet, mais c’était impossible pour moi de parler devant des gens, c’était inimaginable ! Puis l’idée a mûri, le sujet je l’avais, il s’agissait de Google BigQuery, un outil d’Analytics as a Service, très peu connu et utilisé à l’époque, j’ai donc accepté, j’ai préparé les slides et le discours qui allait avec et j’ai fait mon premier talk en tant que “speaker” en novembre 2016 devant une cinquantaine de personnes.

Et ce que j’aime le plus dans les conférences, outre le fait de découvrir de nouvelles technologies et des nouvelles manières de travailler, ce sont les rencontres. Les rencontres que l’on fait en conférence sont toujours très enrichissantes. C’est dingue comment le fait de parler quelques minutes avec une personne peut t’apporter du peps, des good vibes, de l’énergie et te requinquer après 45 minutes de talk et 3-4 mois de travail pour réaliser ce talk :-). J’ai la chance de faire au moins une très chouette rencontre à chacun de mes talks pour le moment, et c’est vraiment génial !

Quand on te remercie pour les talks que tu as faits, pour ton implication auprès des associations de women in tech (duchess France) ou bien en faveur de la reconversion, à ce moment-là la fatigue du trajet et du talk s’évapore et cela te donne de l’énergie pour continuer, d’aller en conférence, de pouvoir partager auprès des autres.

Personnellement si j’ai un conseil à vous donner : allez en conférence, c’est super, que ce soit techniquement ou humainement : pour apprendre des technologies, approfondir vos connaissances, voir de nouvelles façons/outils de/pour travailler, faire du réseautage et rencontrer de superbes personnes.

On a la chance de travailler dans un domaine où des personnes bénévoles prennent de leur temps pour aller partager dans des meetups le soir, BBL le midi ou bien dans des conférences, organisées par des bénévoles également) pendant plusieurs jours.

Tu es aussi présente pour l'organisation de manifestation (Marraine Elles Bougent, Toulouse Data Science, DevFest Toulouse), as-tu des conseils à donner pour l'organisation ?

Lorsque l’on fait partie d’une association, d’une communauté, qui a pour but d’organiser des meetups, des workshops, des conférences, cela peut très vite être chronophage, il y a pas mal de petites choses à organiser, à ne pas oublier, à gérer.

Un de mes conseils serait de ne pas créer une association, un meetup tout(e) seul(e) déjà. Il vaut mieux être à plusieurs, cela se passe beaucoup mieux quand chaque personne de la « core-team » prend une ou plusieurs tâches, que la personne qui doit trouver la salle ne soit pas la même, même chose pour le traiteur, pour la recherche de speaker/de talk, la trésorerie…

Une chose qui me tient particulièrement à cœur est la bienveillance.

Et pour qu’une association se passe bien, pour qu’il n’y ait pas de tension entre les différents membres de l’équipe, et que les meetups ou conférences s'enchaînent mois après mois ou année après année, il faut beaucoup de bienveillance… de communication et d’organisation.

Pour s’organiser, savoir qui fait quoi, quelle tâche reste encore à faire, avant quelle deadline, il y a bien évidemment des outils comme Trello, mais un simple classeur Excel ou Google sheet peut suffire et je conseille également de partager vos fichiers/factures/… via un compte sur GSuite pour associations, vive les Google Drives partagés ;-).

Tu es membre de JDuchess (un JUG qui met en avant les développeuses Java), peux-tu nous en dire plus ? (depuis quand, pourquoi tu t'es engagée, quelles sont les actions menées)

Tout a commencé grâce à un tweet. Si, si, je vous assure :-D.

En avril 2014, mon boss et collègue de l’époque était à une grande conférence nommée Devoxx France. Seul un de nous deux avait pu y aller donc je me consolais en regardant les tweets de la conférence, tant de choses à découvrir, cela avait l’air trop bien, et là … je tombe sur un tweet avec des femmes, des développeuses se prenant en photo ! Et là, le déclic, wow, Duchess France, mais qu’est ce que c’est ?

Je suis allé sur Google, je suis tombée sur le site Internet, ait regardé d'anciens tweets de leur compte Twitter, me suis inscrite sur leur Google Groups, j’ai de suite accroché :-).

Une communauté de femmes dans la technique, de partage, d'échange, d’entraide, trop bien quoi :-D.

Des mois après, il me semble, je leur ai fait un mail leur proposant mon aide concernant leur blog, afin de proposer de rédiger des articles, et leur indiquer quelques bugs que j’avais vus sur le site.

Et quelques semaines/mois plus tard, je faisais partie de la “core-team”, des “leaders” de l’association !

Donc, tout est vraiment parti d’un tweet … puis d’un mail ;-).

Par contre, avant d’aller plus loin, j’aimerais rectifier quelque chose.

Duchess France, est à la base un JUG (Java User Group), mais ce n’est plus le cas depuis des années maintenant. C’est une communauté bienveillante pour toutes les femmes travaillant dans la tech (pas que développeuse et pas que Java). Nous avons également des hommes qui sont des “duchess”, c’est important, car ils participent.

L’association Duchess France existe depuis 2010 et est une association destinée à valoriser et promouvoir les développeuses et les femmes avec des profils techniques, leur donner plus de visibilité, mais aussi à faire connaître ces métiers techniques et créer de nouvelles vocations.

Duchess France, avant tout une communauté de techniques passionné-e-s, organise des événements techniques et autour du sujet de la carrière (meetups, workshops, table ronde) destinés à tous sur diverses technologies pour apprendre et partager des connaissances. Ces événements s’adressent principalement à des développeurs ou profils techniques, débutants ou confirmés.

D’autre part, l’une des missions de Duchess est de voir plus de femmes animer des conférences. Pour cela l'association organise d’une part des ateliers de préparation aux Call For Papers, et d’autre part des sessions de coaching pour répéter les présentations.

Tous les ans, il y a un BOF Duchess le jeudi soir lors de Devoxx France, avec une thématique différente abordée.

À titre personnel, “être une Duchess” m’a beaucoup apporté. Cela m’a permis de me sentir entourée et épaulée d’autres développeuses. Cela m’a permis de faire partie d’une communauté d’entraide et de partage. Et cela m’a permis de repousser les limites que je m’étais fixées et de réaliser des choses que je n’aurais jamais imaginé : présenter un talk, oser prendre la parole en public, rédiger des articles tech à plus grande ampleur, représenter une association.

Depuis quelques années nous avons créé un espace public sur Slack pour les personnes qui souhaitent faire partie de la communauté, pour poser des questions, partager un tweet, un article, débattre… Ce Slack a augmenté la dynamique du groupe qui communiquait avant sur le Google Group.

III. Implication dans le développement et le déploiement

Aujourd'hui fais-tu plus du développement ou du DevOps ?

Actuellement je fais en général plus de développement, c’est ce qui me plait le plus. Lorsque je me rends compte que je fais plus des tâches assimilées à du DevOps, j’essaie de refaire rapidement du développement.

J’ai fait du Java pendant plus de 10 ans donc je prends du plaisir à développer des services en Go, un langage dont j’apprends les ficelles et les méandres tous les jours, et il y a encore tant à savoir ! :-)

Ensuite ces microservices en Go je les déploie à travers une chaîne de CI/CD dans des conteneurs dans un cluster Kubernetes, sur plusieurs environnements.

Je suis monté en compétence assez rapidement sur Terraform, une technologie de Hashicorp, qui s’occupe de faire de l’Infra as Code. J’ai pris la responsabilité sur le sujet à l’insu de mon plein gré, donc on vient encore me voir pour me demander des tips, des bonnes pratiques, des questions de choix d’architecture… Aider sur le sujet me plait, mais j’aimerais bien ne plus en refaire à plein temps comme c’était le cas il y a plus de deux ans.

Je suis développeuse et j’aime faire du DevOps, il ne faut pas oublier que le DevOps est une culture et non un métier :-).

Quelle est la dernière technologie, innovation qui t'intéresse côté DevOps ? Peux-tu nous la présenter en quelques lignes et nous expliquer la plus-value que tu y vois.

Je pense que la conteneurisation et son orchestration sont une grande avancée en faveur du DevOps (oui je n'invente rien en disant cela je sais 😅).

La difficulté de monter un environnement, de le mettre à jour et de le dupliquer était à la charge de l'Ops. Le développeur s'occupait de développer l'application et il rédigeait une procédure d'installation qu'il donnait à l'Ops. Et là, parfois, ou dans une grande majorité des cas : patatras ! Suivre la procédure d'install ne suffisait pas. Pourquoi ? La liste des raisons du fail d'installation peut être longue, mais pour faire court :

  • l'environnement du développeur n'était pas ISO à l'environnement cible (intégration, validation, Q/A, préproduction, production) ;
  • le développeur n'avait aucune idée des autres applications qui allaient être installées donc vive les conflits de versions ou de dépendances. Les soucis de configuration.

Avec les applications tournant dans des conteneurs dans des clusters orchestrés par Kubernetes, l'application tourne dans un conteneur qui se trouve dans un pod. La première isolation se situe donc au niveau du pod et pour une même équipe on peut isoler les applications dans un namespace dans le cluster. Donc les applis d'une équipe n'engendrent pas des problèmes dans tout l'environnement grâce aux plusieurs degrés d'isolation.

Et si le tout nouveau produit de notre entreprise se retrouve au JT de 20 heures, pas besoin d'essayer de se dépêcher à ajouter des serveurs, des disques durs et des barrettes de RAM en quatrième vitesse pour scaler toute l'infrastructure, mais il nous suffira de mettre en place un HPA (Horizontal Pod Autoscaler) par exemple ou bien de rajouter quelques pods.

Bref, je ne pense pas que cette interview soit le bon endroit pour parler de tous les avantages de Kubernetes et d'autres personnes le font mieux que moi 😉.

Que penses-tu de la virtualisation, des conteneurs (Docker) et de leurs impacts sur la façon de développer et déployer des applications ?

J'adore Docker, la philosophie des conteneurs et son orchestration. Pour les développeurs qui sortent de l'école, ce n'est peut-être pas grand-chose, mais pour les développeurs qui ont 5, 10, 15 , 20 ans de XP ou plus, il s'agit d'une révolution 😉.

Avant il fallait monter un environnement, l'installer, le configurer, le maintenir, le monitorer… cela prend du temps. On jonglait avec nos différents .jar ou .War à déployer via nos scripts Bash ou shell, on faisait des cp et on déployait tout ça dans nos Tomcat ^^. On se heurtait notamment à des problèmes de conflits entre les différentes versions nécessaires de Java, npm, Python… Et je ne vous parle pas des problématiques de haute disponibilité et de scalabilité.

Avec les conteneurs, le développeur peut se focaliser sur le développement de son application et peut également créer son DockerFile pour builder son application dans une image Docker (qui sera son artéfact) puis déployer son app automatiquement via du CI/CD dans un cluster Kubernetes.

Son application peut être en Java, Scala, JavaScript, C, Python, Rust, Go… pas de souci. Il peut écrire son microservice dans le langage le plus adapté à son besoin, son artéfact tournera dans un pod qui communiquera avec un autre microservice écrit dans un autre langage.

Avec la philosophie des conteneurs, le développeur de l'équipe A n'a pas à savoir avec quelle version de Java les applications de l'équipe B tournent. On se focalise sur ses applications, ses contraintes.

Mais qui dit nouvelles technologies, nouvelles philosophies, dit nouvelles problématiques et complexités. Tout n'est jamais rose et Kubernetes et les conteneurs ne sont pas des jolies baguettes magiques à paillettes.

Vous ne pourrez pas faire tourner votre monolithe legacy en un claquement de doigts.

Votre application Java ayant besoin de 2 Go pour tourner peut impacter un node, voire tout le cluster donc pensez à bien écrire vos manifest YAML et à définir les requests CPU et mémoire et les limites mémoire de vos déploiements.

Un conteneur tournant dans Kube n'est pas sécurisé par défaut donc attention à bien rédiger vos DockerFile notamment et n'utilisez pas n'importe quelles images même si elles proviennent du Docker Hub.

Peux-tu nous donner les tendances actuelles des plateformes de déploiement sur le cloud (si on avait à choisir un fournisseur de Cloud, quelle est ou serait ta plateforme favorite) ?

Je pense qu’il n’y a pas qu’un seul langage, un seul outil, une seule technologie, un seul acteur du Cloud, il y en a plusieurs. Pourquoi en choisir un et pas un autre ? Cela dépend du contexte, des équipes, des contraintes projets et clients. On peut, pour un projet donné, faire du multicloud, c’est possible également.

Si vous devez déployer et gérer des microservices qui doivent tourner dans un cluster Kubernetes avec de l’Istio, ma réponse est simple : Google Kubernetes Engine (GKE) sur du Google Cloud Platform, donc Google.

Si vous avez d’autres besoins, par exemple vos applications qui doivent tourner et être accessibles dans plusieurs régions du globe, les grands acteurs ont des datacenters dans les plus grandes régions donc je n’en vois pas un qui devancerait les autres de ce côté-ci.

Au travail je fais pas mal d’Amazon Web Services (AWS), on a des clusters Kubernetes installés sur des EC2, gérés par nos équipes, mais on ne fait pas que du Kube donc on utilise beaucoup de services managés également : des lambdas, du CloudFront, du Cognito, des Route53, des API Gateway, du SNS, du SQS… Mais j’avoue, je suis tombée dans la marmite de GCP il y a quelques années, grâce à Google BigQuery et l’API de Cloud Vision, je continue de suivre les possibilités de ce provider de Cloud et j’avoue, mon cœur penche vers Google.

Concernant Microsoft, j’avoue que je ne connais pas assez Azure pour pouvoir le juger et connaître l’étendue des possibilités et le comparer aux autres. Pareil pour IBM, même si je le classe loin derrière les autres.

Clouds étrangers (surtout américains) VS clouds français ? Les acteurs français ont-ils encore une chance ?

Les acteurs américains, tels que Google, AWS et Microsoft avec Azure, ont pris une énorme avance et ils ont une grande partie de la communauté avec eux. On ne va pas se mentir, on pense tout de suite à eux pour faire tourner nos applications dans le Cloud.

Si j'ai besoin que mon produit soit accessible aux quatre coins du globe, je sais d'emblée qu'il n'y aura pas de souci avec AWS, Google ou Azure, car ils ont des data centers, régions et Availability zones (ou équivalents) répartis sur tous les continents. Ils ont également un éventail très large de services managés et une force de frappe pour améliorer leurs infra et services au quotidien et pour réagir au moindre incident.

Le seul acteur français que je vois qui peut répondre à plusieurs des critères cités ci-dessus est OVH, mail il n'a pas la force de frappe des acteurs américains et je ne pense pas qu'il pourra les égaler. Mais il y a plusieurs situations où vos besoins peuvent correspondre avec ce que propose OVH, il y a notamment plusieurs fonctionnalités dites « as a Service », ou encore si vous avez besoin de machines physiques, dans ce cas-là si les coûts ne sont pas trop éloignés des autres acteurs, le petit acteur français pourrait être une solution 🙂.

IV. Developpez.com

Connais-tu Developpez.com ? Si oui, qu'est-ce que cela t'apporte ou t'a apporté ?

Réponse facile, oui je connais le site developpez.com, je l’ai connu lors de mon stage de fin d’études, si mes souvenirs sont bons. J’allais sur le site du zero et sur developpez.com. Ce site m’a beaucoup aidé pour répondre à certaines de mes questions sur le Java, le bash/shell et même le PHP ;-).

Et je suis contente de voir que plusieurs années plus tard, le site est encore là, qu’il s’est encore plus diversifié qu’avant et que la communauté sur ses forums est très active.

La plupart des documents techniques de nos jours étant anglophones, penses-tu qu'une communauté francophone comme Developpez y trouve pleinement sa place ?

Un développeur doit savoir se débrouiller en anglais, on ne lui demande pas d’être bilingue, mais il doit avoir un niveau d’anglais minimum pour savoir lire des documentations, des livres techniques, des articles et les comprendre surtout. Si on a un problème et que l’on recherche le problème/l’erreur sur Google, on va plus facilement trouver la ou les solutions adéquates si on le fait dans la langue de Shakespeare, c’est un fait.

Néanmoins, je pense que les communautés francophones ont leur place. Il est toujours plus facile de s’exprimer dans sa langue maternelle, donc développez.com y a tout à fait sa place.

V. Suivre Aurélie Vache

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Equipe Java. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.