···11+---
22+title: BBL - Spring Boot & Containers - Do's & Don'ts
33+language: fr
44+date: 2023-04-27
55+tags:
66+ - DevOps
77+ - Spring Boot
88+ - Docker
99+ - Kubernetes
1010+events:
1111+ - name: Axa Web Center Lille
1212+ date: 2023-04-27
1313+ - name: Ippon Lille
1414+ date: 2023-05-15
1515+ - name: ADEO Tech Bubble
1616+ date: 2023-06-07
1717+slides: bbl-spring-boot-and-containers-dos-donts.pdf
1818+---
1919+Bien que Docker soit facile d'utilisation, construire une image reste un exercice compliqué.
2020+2121+Optimisation, layers, configuration, haute disponibilité et sécurité nécessitent de s'abstraire des Dockerfile basiques qu'on peut trouver sur internet.
2222+2323+Dans ce talk, nous verrons comment bien packager une application Spring Boot dans une image Docker/OCI.
2424+2525+À travers 42 bonnes pratiques, nous allons voir :
2626+2727+* les bonnes pratiques préconisées par Spring 🍃
2828+* les pièges à éviter 👿
2929+* comment bien préparer votre application Spring Boot pour un exécution dans un container 📦
3030+* comment bien écrire un Dockerfile pour optimiser la construction et l'image finale 📝
3131+* des moyens alternatifs de construction d'images Spring Boot 🏗
3232+* et l'outillage d'analyse à ajouter à votre toolbox 🔧
···11+---
22+title: Talk - Laissez tomber vos Dockerfile, adoptez un buildpack !
33+language: fr
44+article: true
55+date: 2023-06-29
66+events:
77+ - name: Sunny Tech 2023
88+ slides: sunnytech2023-talk-laissez-tomber-vos-dockerfile-adoptez-un-buildpack.pdf
99+ youtube: 2Zo34sXsMxU
1010+ date: 2023-06-29
1111+ - name: Cloud Nord 2023
1212+ slides: cloudnord2023-talk-laissez-tomber-vos-dockerfile-adoptez-un-buildpack.pdf
1313+ youtube: _kvdnCKz4gk
1414+ date: 2023-10-12
1515+tags:
1616+ - DevOps
1717+ - Docker
1818+ - Buildpacks
1919+---
2020+2121+Depuis plusieurs années maintenant, _Docker_ est utilisé par toute l'industrie de l'IT pour packager et déployer des applications.
2222+2323+Bien que l'écriture d'un `Dockerfile` soit facile, la construction d'images _OCI_/_Docker_ reste un exercice compliqué:
2424+* optimisation des layers de l'image
2525+* bonne gestion des processus Linux
2626+* séparation des phases de build et de run des images
2727+* bonnes pratiques de sécurité
2828+2929+Pire, lorsqu'une faille de sécurité est détecté dans une layer basse (distribution ou runtime) d'une image applicative, il faut alors potentiellement reconstruire plusieurs dizaines ou centaines d'images pour y intégrer les version patchées.
3030+3131+Dans ce talk, nous apprendrons comment les **buildpacks** permettent de construire des images OCI/Docker sans _Dockerfile_ et bénéficier des bonnes pratiques issues de la communauté open-source.
3232+3333+Nous verrons :
3434+* ce qu'est une image _OCI_, une layer, et comment _Docker_ les construit
3535+* comment analyser le contenu des layers d'une image _OCI_, et ce qui ne va pas dans les images que nous construisons au quotidien
3636+* ce qu'est un **buildpack** et comment un **buildpack** construit une image OCI
3737+* avec une démo, comment utiliser un **buildpack** proposé par la communauté open-source pour construire une image _OCI_ contenant une application _Java_ optimisée
3838+* enfin, nous verrons comment les **buildpacks** proposent de _rebaser_ des image, et nous permettre de patcher en masse des images applicatives pour corriger des failles de sécurité, sans reconstruire complètement nos images !
3939+4040+Ce talk est donc à destination des _Ops_ et des _Devs_ qui manipulent _Docker_ au quotidien.
4141+4242+À la sortie de ce talk, je devrai vous avoir convaincu d'abandonner vos Dockerfile et d'expérimenter les buildpacks !
···11+---
22+title: Talk - Self-Service infrastructure pour GCP avec Terraform et Gitlab
33+language: fr
44+article: true
55+date: 2022-06-10
66+events:
77+ - name: DevFest Lille 2022
88+ slides: devfest2022-talk-self-service-infrastructure-gcp-terraform-gitlab.pdf
99+ youtube: DxC8gRvqvpA
1010+ date: 2022-06-10
1111+tags:
1212+ - DevOps
1313+ - Gitlab
1414+ - GCP
1515+ - Terraform
1616+---
1717+Ce REX présente comment nous utilisons Gitlab, Gitlab-CI et Terraform pour construire une infrastructure GCP en self-service pour nos utilisateurs (squads/projets).
1818+1919+Chez Kiabi, dans le cadre de la migration sur le cloud GCP (depuis l'été 2021), nous mettons à disposition de nos développeurs une project-factory, en self-service, pour de l'infrastructure cloud (VM/Databases/Buckets etc...).
2020+Le but est d'accélérer les phases de démarrage des projets, en rendant autonomes au maximum les développeurs sur le provisionning de l'infrastructure essentielle à leurs développements.
2121+2222+Nous allons voir dans ce REX comment nous avons assemblé le module Terraform google-project-factory avec Gitlab et Gitlab-CI pour:
2323+* créer des projets sur GCP pour plusieurs environnements en quelques minutes
2424+* fournir des templates de code Terraform prêts à l'emploi sur Gitlab à nos développeurs
2525+* utiliser des pipelines Gitlab-CI pour exécuter le code Terraform et provisionner l'infrastructure de nos projets
2626+2727+Tout cela accompagné d'une démo:
2828+* lancement de la project-factory (code terraform + pipeline) pour créer un projet GCP + Gitlab
2929+* création de ressources (code terraform) dans le projet GCP nouvellement créé
3030+3131+Ce REX est destiné aux développeurs curieux de l'infrastructure as code, quelques notions de Terraform, Gitlab et GCP sont les bienvenues pour bien le comprendre.
+16
layouts/partials/talks/event.html
···11+{{ range .Params.events }}
22+{{ if (or (.slides) (.youtube)) }}
33+<h1>{{ .name }} - {{ .date | time.Format ":date_medium" }}</h1>
44+<h2>Slides </h2>
55+<embed src="{{ .slides }}" type="application/pdf" width="100%" height="500px">
66+77+<h2>Video</h2>
88+<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/{{ .youtube }}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
99+{{ end }}
1010+{{ end }}
1111+1212+{{ if (.Params.slides) }}
1313+<h1>Slides </h2>
1414+<embed src="{{ .Params.slides }}" type="application/pdf" width="100%" height="500px">
1515+1616+{{ end }}
+4
layouts/partials/talks/slides.html
···11+{{ range .Params.slides }}
22+<h1>Slides {{ .event }}</h1>
33+<embed src="{{ .slides }}" type="application/pdf" width="100%" height="500px">
44+{{ end }}
+5
layouts/partials/talks/youtube.html
···11+<h1>Videos</h1>
22+33+{{ range .Params.youtube }}
44+55+{{ end }}
+23
layouts/talks/single.html
···11+{{ define "main" -}}
22+<div class="post">
33+ {{ partial "post/info.html" . }}
44+55+ {{ .Content }}
66+77+ {{ partial "talks/event.html" . }}
88+99+ {{ if (.Site.Params.listmonk) }}
1010+ {{ partial "post/listmonk_email_newsletters.html" . }}
1111+ {{ end }}
1212+1313+ {{ partial "post/navigation.html" . }}
1414+ {{ if or (.Site.Params.remark42) (.Site.DisqusShortname) }}
1515+ {{ partial "post/comments.html" . }}
1616+ {{ end }}
1717+</div>
1818+{{- end }}
1919+{{ define "sidebar" }}
2020+ {{ if and (not .Params.hideToc) (not .Site.Params.hideToc) }}
2121+ {{ partial "table_of_contents.html" . }}
2222+ {{ end }}
2323+{{ end }}