SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
BREIZHCAMP
2022
Vendredis de la Tech
LE TIEC O.
LE GUEN P.
FOUCHEUR A.
PROUTEAU A.
• Présentation de l’évènement
• Sujets
• Votre avis / Conclusion
SOMMAIRE
Du 29 au 1er Juillet, à l’université de Rennes 2
Plus de 80 sessions divisées dans 4 amphithéâtres
Des stands d’animation tenus par les sponsors sur
les 3 jours
Une équipe de bénévoles avec enregistrement de
toutes les conférences
La possibilité d’échanger avec les speakers
(convivial)
L’ÉVÈNEMENT
Présentation
Un excellent traiteur
01
• Rétrospective des architectures
• Présentation de solutions évolutives
• Nouvelle architecture SI évolutive
URBANISER UN SI
POUR 10 ANS
Christophe QUINTARD
Architecte @ Ouest-France
URBANISER UN SI POUR 10 ANS
Rétrospective des architectures
URBANISER UN SI POUR 10 ANS
Solutions évolutives
URBANISER UN SI POUR 10 ANS
Nouvelle architecture SI évolutive
URBANISER UN SI POUR 10 ANS
Nouvelle architecture SI évolutive
02
• Les bases du Service Mesh
SERVICE MESH
Vincent Arrocéna @varrocen
Sylvain Decout @sylvaindecout
Un Service Mesh est une couche distribuée
permettant la communication entre microservices
SERVICE MESH:
QU’EST CE QUE LE SERVICE MESH ?
Système d'orchestration de conteneurs
SERVICE MESH:
CONTEXTE
Logique métier
Logique technique
Communications
Sécurité
Résilience réseau
Timeouts
Retry
Circuit Breakers
Observabilité
Metrics
Tracing
SERVICE MESH :
LES CHALLENGES D’UNE ARCHITECTURE MICROSERVICES
Pod
Microservice
Logique Métier
Comm. config
Sécurité
Résilience
Observabilité
Gère la logique technique
Les communications passent par le proxy
Utilisation d’une application tierce
SERVICE MESH:
SIDECAR PATTERN
Pod
Microservice
Logique Métier
Sidecar Proxy
Comm. config
Sécurité
Résilience
Observabilité
Pod
Pod
SERVICE MESH:
CONTROL PLANE
Control Plane
Proxy Proxy
Service Service
Pod
Proxy
Service
Pod
Pod
SERVICE MESH:
DATA PLANE
Control Plane
Proxy Proxy
Service Service
Pod
Proxy
Service
Data Plane
SERVICE MESH
Control Plane Data Plane
03
• Le test unitaire de l’architecture
ARCH UNIT
Anthony Dassé
Arch. Tech @ Sopra
KESAKO
Lib de test basée sur Junit (4/5)
Extensible, open source
Permet de vérifier l’architecture:
Les dépendances, package, nommage
La séparation des couches
Et bien d’autre
V1.0.0 depuis le 3 octobre 2022 !
EXEMPLE
Vérifier que les classes qui portent l’annotation @Path ont un
nom terminant par « Controller »
Vérifier que les classes qui portent l’annotation @Path sont
dans un package nommé « ..controllers.. »
Vérification de la structure
Définition de couches « layout » : ex controllers et services, par
nommage de package (ie. API vs business )
Vérification que la couche « controllers » n’est pas accédée, ou
que la couche « services » n’est accédée que par la couche
« controllers », que la couche « Repo BDD » n’est pas accédée
par la couche « Endpoint Rest », etc..
EXEMPLE
Des règles pré-définies
Ex : pas de throw d’exception générique
Utilisation de logs
Pas de System.out/err
Classes de test dans le package de la classe testée
Sur de l’existant, fonctionnalité de « freeze », pour accepter les
violations existantes et ne vérifier que les nouveautés
04
• Késako ?
• Pourquoi pas !
• Autres frameworks
FFP2 : "FASTAPI […]"
Fabrice Depaulis
Ingénieur développement logiciels @ Orange Innovation
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Késako ?
Fast
Fast to code
Fewer bugs
Intuitive
Easy
Short
Robust
Standards-based
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Pourquoi pas !
Simple et rapide d’implémentation
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Pourquoi pas !
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Pourquoi pas !
Standard Open API
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Pourquoi pas !
Intégration de pewee et pydantic pour la persistance des données
Documentation toujours auto-générée
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Autres frameworks
Pourquoi d’autres frameworks ?
Ça fait un peu beaucoup là non ? #staycritical
Si c’est aussi fabuleux pourquoi tout le monde ne l’utilise pas ?
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Autres frameworks
FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS"
Autres frameworks
05
• Pourquoi ?
• Vocabulaire
• Fonctionnement
OAUTH 2.1
Julien Topçu
Coach Tech @ Beyondxscratch.com
POURQUOI ?
Exemples historiques :
Importer des contacts mails sur un réseau social
Agréger des boîtes mails (historique ??)
Problématiques :
Mot de passe divulgué, potentiellement stocké/logué
Pas de révocation, sauf à modifier le mot de passe et le
redonner à tous les services
Accès illimité, non restreint à la fonction ciblée
VOCABULAIRE OAUTH
Resource : item accédé, ex: contacts
Resource Owner : Propriétaire de la ressource (souvent
l’utilisateur final)
End User : l’utilisateur final qui va autoriser un accès (vous!)
Resource Server : Emplacement physique de la ressource (ex:
Gmail)
Authorization Server : Serveur qui réalise l’authentification -
peut être le Resource Server, ou un système de SSO (ex : Google)
Client : Celui qui veut accéder à la ressource (le 'client' oauth est
donc le 'serveur' auquel l'utilisateur final se connecte...)
FONCTIONNEMENT
client_id public
redirect_uri peut être détourné.
authorization_code interceptable
Durée de validité courte, invalidée
par l’échange de l’accessToken,
mais…
OAUTH 2.1
Le diagramme précédent « Implicit flow » est encore majoritaire,
mais déprécié.
Mitigation Oauth2.1
Redirect_uri : Impose une white list exacte des redirect_uri autorisées
pour un client
Flow « Authorization code with PKCE »
Le client ajoute le hash d’un secret à la redirection
L’authorization server mémorise ce hash en donnant
l’authorization_code
Le client présente le secret lors de l’échange de l’authorization_code
L’authorization server réalise le hash et valide la concordance
• OK: échange contre l’accessToken
• KO: refus d’accès
06
• Késako Rust ?
• Domaines d’utilisation
• Pourquoi ne pas envisager Rust
POURQUOI ENVISAGER
RUST
Alexis Delhelle
Ingénieur d'études et de développement @ MAX Digital Services
POURQUOI ENVISAGER RUST
Késako Rust ?
Langage de programmation
Par la fondation Mozilla pour la programmation système
Langage compilé et pas de garbage collector (pas de gestion de la mémoire)
Memory safe (pas de segmentation fault)
Typage statique + inférence de type, donc pas de NullPointerException
POURQUOI ENVISAGER RUST
Késako Rust : par rapport à Java
Pas de garbage collector
Empreinte mémoire faible
Pas de null pointer
Système de build unique
Outil de gestion de dépendance unique
POURQUOI ENVISAGER RUST
Domaines d’utilisation
Firefox (comme par hasard)
Cargo – gestionnaire de dépendance de Rust
Solana – Cryptomonnaie
Discord
Android
Kernel…
POURQUOI ENVISAGER RUST
Pourquoi ne pas envisager Rust
POURQUOI ENVISAGER RUST
Pourquoi ne pas envisager Rust
Peut-on faire un SI en Rust ?
Combien de version majeur de retard en fin de développement de mon application ?
Qui sait faire du Rust ?
Coût/bénéfice ?
Est-ce une lubie pour faire jolie ou attirer des investisseurs ? (IA, BigData, ServerLess)
07
• Présentation du contexte
• Présentation de la méthode projet
• Exemples de fonctionnement du LEAN
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE
APRÈS 6 MOIS
François-Guillaume Ribreau, Sébastien Brousse
Co-fondateurs @ CloudIAM
Projet qui démarre en 2018
Problématique initiale :
Veulent deployer un Keycloak dans le SI Ouest-France
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Présentation du contexte
• Keycloak est à configurer pour être sécurisé, mis à jour,
sauvegardé, etc.
• Il faut superviser et mettre à l'échelle si besoin
• Les autres IAM "as a Service" sont généralement closed-
source et hébergés en dehors de l’Europe
“On recherche un service managé pour Keycloak !
Un équivalent à CloudAMQP”
Créer un IAM (Identity Access Management) as a Service
Méthodologie LEAN
Concept originaire de la ligne de production de
Toyota (TPS)
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Présentation de la méthode projet
"Par jour, c'est 90% de notre temps perdu pour 10% de valeur-ajoutée"
Extreme programming
KISS
Pair programming
Cycle de développement court et répété
Prévoir des bases solides
Développer un contrat d’interface final dès le depart d’une feature
Pas d’optimisation pré-maturée, se limite à ce qui a été demandé
On commence une feature dès lors que le client paie
Approche simple :
Template Webflow
Design basé sur de l’existant (concurrent
CloudAMQP)
Aucune feature déployée en dehors de l’infra
les boutons de l’UX redirigent vers le support mail
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Fonctionnement du LEAN sur leur projet
Tarification segmentée par nombre d’utilisateurs
Le site est developpé en une demi-journée.
« Tout limiter dans l’espace et
dans le temps »
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Exemples de fonctionnement du LEAN sur leur projet
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Exemples de fonctionnement du LEAN sur leur projet
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Exemples de fonctionnement du LEAN sur leur projet
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Exemples de fonctionnement du LEAN sur leur projet
Après un 1 an de fonctionnement
Ils ont répondu à un appel d’offre publique et ont été sélectionnés
Ont développé toutes les features prévues initialement
En ont même rajouté en dehors du périmètre grâce aux demandes client
Ont réussi à monter un produit à seulement deux personnes
Toujours rentables 4 ans après le lancement
REX LEAN :
CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS
Fonctionnement du LEAN sur leur projet
Limites de cette méthodologie
Elle ne peut pas s’appliquer à tous les projets
L’extreme programming et le lean sont compatibles dans de “petites équipes”, il sera plus
compliqué de mettre cela en place sur des projets non agiles.
Certaines réglementations imposent une approche non-agile (ex. ISO 27001)
08
• Kézako?
• Keynote sécurité
KEYNOTES
09
• Késako ?
• Application dans nos métiers
• Comment mieux gérer ses vitres
THÉORIE DE LA
VITRE BRISÉEE
Saad Ansari
Dev, Data Engineer, Engineering Manager @LeFreelance
THÉORIE DE LA VITRE BRISÉEE
Késako ?
Plus il y a de vitres brisées, plus il y en aura. Moi
THÉORIE DE LA VITRE BRISÉEE
New york
Sentiment d’impunité et d’insécurité
The Dark Knight
THÉORIE DE LA VITRE BRISÉEE
Paris
On ne voit plus de graffiti dans le métro
THÉORIE DE LA VITRE BRISÉE
Application dans nos métiers : relations humaines
Comportements inappropriés.
THÉORIE DE LA VITRE BRISÉE
Application dans nos métiers : balance ton code
Tester en prod’
Laisser du code commenté
Ne pas commenter
Faire le héro / Devenir un héro
Code mal structuré
THÉORIE DE LA VITRE BRISÉE
Comment mieux gérer ses vitres : relations humaines
Rétrospectives d’équipes
Points individuels réguliers
PARLER
CE N’EST PAS MAGIQUE
Comment mieux gérer ses vitres : relations humaines
Faire une réunion pour parler et penser que tout va se résoudre par magie
Prendre à partie une personne
THÉORIE DE LA VITRE BRISÉE
THÉORIE DE LA VITRE BRISÉE
Comment mieux gérer ses vitres : balance ton code
Relecture de code
Poser des questions
Dire non à un client qui veut un hotfix en prod un vendredi à 18h
THÉORIE DE LA VITRE BRISÉE
Comment mieux gérer ses vitres : dérive
A lancer trop d'alerte vous qui risquez de vous transformer en vitre brisée et c'est vous
qui risquez d'être remplacé.
REMERCIEMENTS / RÉFÉRENCES
https://www.youtube.com/watch?v=i9eECmJTVEY
Urbaniser un SI pour 10 ans
(Christophe Quintard)
https://www.youtube.com/watch?v=5gZYU56q4No
REX LEAN: Créer un SaaS et être rentable après 6 mois
(François-Guillaume Ribreau, Sébastien Brousse)
https://www.youtube.com/watch?v=eVpi0VT4tFQ
ArchUnit à la rescousse de mon projet ✨ (Anthony Dasse)
https://www.youtube.com/watch?v=QrGu7ITlSog
OAuth 2.1 expliqué simplement (même si tu n'es pas dev) ! (Julien Topçu)
https://www.youtube.com/watch?v=I2iYNZm_pqg
Pourquoi envisager Rust (Alexis Delhelle)
https://www.youtube.com/watch?v=Ju5LfNnocTA
La théorie de la vitre briséee appliquée au développement logiciel (Saad
Ansari)
https://www.youtube.com/watch?v=iA2BbX7WuTw&t=1325s
Service Mesh Reprenons les bases (Sylvain Decout, Vincent Arrocéna)
Pas de vidéo
FFP2 : « FastApi For Python Programmers » (Fabrice Depaulis)
Nicolas De Loof
Straight to
the point
www.spikeelabs.fr

Contenu connexe

Similaire à BreizhCamp 2022

Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
OpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudOpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudMichel-Marie Maudet
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteAZUG FR
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Arnaud LEMAIRE
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressourceAntoine Pouch
 
Webinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuellesWebinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuellesXebiaLabs
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
SPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien PauletSPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien PauletaOS Community
 
Low code, lean et agilité sur les projets SHarePoint - SPS Dakar
Low code, lean et agilité sur les projets SHarePoint - SPS DakarLow code, lean et agilité sur les projets SHarePoint - SPS Dakar
Low code, lean et agilité sur les projets SHarePoint - SPS DakarSébastien Paulet
 
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...Devoteam
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360Groupe SIRIUS
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du CloudLINAGORA
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureParis Container Day
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceChristian Charreyre
 

Similaire à BreizhCamp 2022 (20)

Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
OpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudOpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du Cloud
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
 
Webinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuellesWebinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuelles
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
SPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien PauletSPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
 
Low code, lean et agilité sur les projets SHarePoint - SPS Dakar
Low code, lean et agilité sur les projets SHarePoint - SPS DakarLow code, lean et agilité sur les projets SHarePoint - SPS Dakar
Low code, lean et agilité sur les projets SHarePoint - SPS Dakar
 
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du Cloud
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 

Plus de SpikeeLabs

VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023SpikeeLabs
 
Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔SpikeeLabs
 
Power BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vousPower BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vousSpikeeLabs
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023 SpikeeLabs
 
Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !SpikeeLabs
 
Domain_Driven_Design
Domain_Driven_DesignDomain_Driven_Design
Domain_Driven_DesignSpikeeLabs
 
Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022SpikeeLabs
 
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...SpikeeLabs
 
Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualitéSpikeeLabs
 
Salesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empireSalesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empireSpikeeLabs
 
Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !SpikeeLabs
 
9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et Bob9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et BobSpikeeLabs
 
Kit de survie en Production
Kit de survie en ProductionKit de survie en Production
Kit de survie en ProductionSpikeeLabs
 
Déploiement Kubernetes
Déploiement KubernetesDéploiement Kubernetes
Déploiement KubernetesSpikeeLabs
 
Le design d'API avec Mulesoft
Le design d'API avec MulesoftLe design d'API avec Mulesoft
Le design d'API avec MulesoftSpikeeLabs
 

Plus de SpikeeLabs (16)

VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023
 
Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔
 
Power BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vousPower BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vous
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023
 
Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !
 
DesignSystem
DesignSystemDesignSystem
DesignSystem
 
Domain_Driven_Design
Domain_Driven_DesignDomain_Driven_Design
Domain_Driven_Design
 
Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022
 
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
 
Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualité
 
Salesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empireSalesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empire
 
Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !
 
9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et Bob9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et Bob
 
Kit de survie en Production
Kit de survie en ProductionKit de survie en Production
Kit de survie en Production
 
Déploiement Kubernetes
Déploiement KubernetesDéploiement Kubernetes
Déploiement Kubernetes
 
Le design d'API avec Mulesoft
Le design d'API avec MulesoftLe design d'API avec Mulesoft
Le design d'API avec Mulesoft
 

BreizhCamp 2022

  • 1. BREIZHCAMP 2022 Vendredis de la Tech LE TIEC O. LE GUEN P. FOUCHEUR A. PROUTEAU A.
  • 2. • Présentation de l’évènement • Sujets • Votre avis / Conclusion SOMMAIRE
  • 3. Du 29 au 1er Juillet, à l’université de Rennes 2 Plus de 80 sessions divisées dans 4 amphithéâtres Des stands d’animation tenus par les sponsors sur les 3 jours Une équipe de bénévoles avec enregistrement de toutes les conférences La possibilité d’échanger avec les speakers (convivial) L’ÉVÈNEMENT Présentation Un excellent traiteur
  • 4. 01 • Rétrospective des architectures • Présentation de solutions évolutives • Nouvelle architecture SI évolutive URBANISER UN SI POUR 10 ANS Christophe QUINTARD Architecte @ Ouest-France
  • 5. URBANISER UN SI POUR 10 ANS Rétrospective des architectures
  • 6. URBANISER UN SI POUR 10 ANS Solutions évolutives
  • 7. URBANISER UN SI POUR 10 ANS Nouvelle architecture SI évolutive
  • 8. URBANISER UN SI POUR 10 ANS Nouvelle architecture SI évolutive
  • 9. 02 • Les bases du Service Mesh SERVICE MESH Vincent Arrocéna @varrocen Sylvain Decout @sylvaindecout
  • 10. Un Service Mesh est une couche distribuée permettant la communication entre microservices SERVICE MESH: QU’EST CE QUE LE SERVICE MESH ?
  • 11. Système d'orchestration de conteneurs SERVICE MESH: CONTEXTE
  • 12. Logique métier Logique technique Communications Sécurité Résilience réseau Timeouts Retry Circuit Breakers Observabilité Metrics Tracing SERVICE MESH : LES CHALLENGES D’UNE ARCHITECTURE MICROSERVICES Pod Microservice Logique Métier Comm. config Sécurité Résilience Observabilité
  • 13. Gère la logique technique Les communications passent par le proxy Utilisation d’une application tierce SERVICE MESH: SIDECAR PATTERN Pod Microservice Logique Métier Sidecar Proxy Comm. config Sécurité Résilience Observabilité
  • 14. Pod Pod SERVICE MESH: CONTROL PLANE Control Plane Proxy Proxy Service Service Pod Proxy Service
  • 15. Pod Pod SERVICE MESH: DATA PLANE Control Plane Proxy Proxy Service Service Pod Proxy Service Data Plane
  • 17. 03 • Le test unitaire de l’architecture ARCH UNIT Anthony Dassé Arch. Tech @ Sopra
  • 18. KESAKO Lib de test basée sur Junit (4/5) Extensible, open source Permet de vérifier l’architecture: Les dépendances, package, nommage La séparation des couches Et bien d’autre V1.0.0 depuis le 3 octobre 2022 !
  • 19. EXEMPLE Vérifier que les classes qui portent l’annotation @Path ont un nom terminant par « Controller » Vérifier que les classes qui portent l’annotation @Path sont dans un package nommé « ..controllers.. » Vérification de la structure Définition de couches « layout » : ex controllers et services, par nommage de package (ie. API vs business ) Vérification que la couche « controllers » n’est pas accédée, ou que la couche « services » n’est accédée que par la couche « controllers », que la couche « Repo BDD » n’est pas accédée par la couche « Endpoint Rest », etc..
  • 20. EXEMPLE Des règles pré-définies Ex : pas de throw d’exception générique Utilisation de logs Pas de System.out/err Classes de test dans le package de la classe testée Sur de l’existant, fonctionnalité de « freeze », pour accepter les violations existantes et ne vérifier que les nouveautés
  • 21. 04 • Késako ? • Pourquoi pas ! • Autres frameworks FFP2 : "FASTAPI […]" Fabrice Depaulis Ingénieur développement logiciels @ Orange Innovation
  • 22. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Késako ? Fast Fast to code Fewer bugs Intuitive Easy Short Robust Standards-based
  • 23. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Pourquoi pas ! Simple et rapide d’implémentation
  • 24. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Pourquoi pas !
  • 25. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Pourquoi pas ! Standard Open API
  • 26. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Pourquoi pas ! Intégration de pewee et pydantic pour la persistance des données Documentation toujours auto-générée
  • 27. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Autres frameworks Pourquoi d’autres frameworks ? Ça fait un peu beaucoup là non ? #staycritical Si c’est aussi fabuleux pourquoi tout le monde ne l’utilise pas ?
  • 28. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Autres frameworks
  • 29. FFP2 : "FASTAPI FOR PYTHON PROGRAMMERS" Autres frameworks
  • 30. 05 • Pourquoi ? • Vocabulaire • Fonctionnement OAUTH 2.1 Julien Topçu Coach Tech @ Beyondxscratch.com
  • 31. POURQUOI ? Exemples historiques : Importer des contacts mails sur un réseau social Agréger des boîtes mails (historique ??) Problématiques : Mot de passe divulgué, potentiellement stocké/logué Pas de révocation, sauf à modifier le mot de passe et le redonner à tous les services Accès illimité, non restreint à la fonction ciblée
  • 32. VOCABULAIRE OAUTH Resource : item accédé, ex: contacts Resource Owner : Propriétaire de la ressource (souvent l’utilisateur final) End User : l’utilisateur final qui va autoriser un accès (vous!) Resource Server : Emplacement physique de la ressource (ex: Gmail) Authorization Server : Serveur qui réalise l’authentification - peut être le Resource Server, ou un système de SSO (ex : Google) Client : Celui qui veut accéder à la ressource (le 'client' oauth est donc le 'serveur' auquel l'utilisateur final se connecte...)
  • 33. FONCTIONNEMENT client_id public redirect_uri peut être détourné. authorization_code interceptable Durée de validité courte, invalidée par l’échange de l’accessToken, mais…
  • 34. OAUTH 2.1 Le diagramme précédent « Implicit flow » est encore majoritaire, mais déprécié. Mitigation Oauth2.1 Redirect_uri : Impose une white list exacte des redirect_uri autorisées pour un client Flow « Authorization code with PKCE » Le client ajoute le hash d’un secret à la redirection L’authorization server mémorise ce hash en donnant l’authorization_code Le client présente le secret lors de l’échange de l’authorization_code L’authorization server réalise le hash et valide la concordance • OK: échange contre l’accessToken • KO: refus d’accès
  • 35. 06 • Késako Rust ? • Domaines d’utilisation • Pourquoi ne pas envisager Rust POURQUOI ENVISAGER RUST Alexis Delhelle Ingénieur d'études et de développement @ MAX Digital Services
  • 36. POURQUOI ENVISAGER RUST Késako Rust ? Langage de programmation Par la fondation Mozilla pour la programmation système Langage compilé et pas de garbage collector (pas de gestion de la mémoire) Memory safe (pas de segmentation fault) Typage statique + inférence de type, donc pas de NullPointerException
  • 37. POURQUOI ENVISAGER RUST Késako Rust : par rapport à Java Pas de garbage collector Empreinte mémoire faible Pas de null pointer Système de build unique Outil de gestion de dépendance unique
  • 38. POURQUOI ENVISAGER RUST Domaines d’utilisation Firefox (comme par hasard) Cargo – gestionnaire de dépendance de Rust Solana – Cryptomonnaie Discord Android Kernel…
  • 39. POURQUOI ENVISAGER RUST Pourquoi ne pas envisager Rust
  • 40. POURQUOI ENVISAGER RUST Pourquoi ne pas envisager Rust Peut-on faire un SI en Rust ? Combien de version majeur de retard en fin de développement de mon application ? Qui sait faire du Rust ? Coût/bénéfice ? Est-ce une lubie pour faire jolie ou attirer des investisseurs ? (IA, BigData, ServerLess)
  • 41. 07 • Présentation du contexte • Présentation de la méthode projet • Exemples de fonctionnement du LEAN REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS François-Guillaume Ribreau, Sébastien Brousse Co-fondateurs @ CloudIAM
  • 42. Projet qui démarre en 2018 Problématique initiale : Veulent deployer un Keycloak dans le SI Ouest-France REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Présentation du contexte • Keycloak est à configurer pour être sécurisé, mis à jour, sauvegardé, etc. • Il faut superviser et mettre à l'échelle si besoin • Les autres IAM "as a Service" sont généralement closed- source et hébergés en dehors de l’Europe “On recherche un service managé pour Keycloak ! Un équivalent à CloudAMQP” Créer un IAM (Identity Access Management) as a Service
  • 43. Méthodologie LEAN Concept originaire de la ligne de production de Toyota (TPS) REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Présentation de la méthode projet "Par jour, c'est 90% de notre temps perdu pour 10% de valeur-ajoutée" Extreme programming KISS Pair programming Cycle de développement court et répété Prévoir des bases solides Développer un contrat d’interface final dès le depart d’une feature Pas d’optimisation pré-maturée, se limite à ce qui a été demandé On commence une feature dès lors que le client paie
  • 44. Approche simple : Template Webflow Design basé sur de l’existant (concurrent CloudAMQP) Aucune feature déployée en dehors de l’infra les boutons de l’UX redirigent vers le support mail REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Fonctionnement du LEAN sur leur projet Tarification segmentée par nombre d’utilisateurs Le site est developpé en une demi-journée. « Tout limiter dans l’espace et dans le temps »
  • 45. REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Exemples de fonctionnement du LEAN sur leur projet
  • 46. REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Exemples de fonctionnement du LEAN sur leur projet
  • 47. REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Exemples de fonctionnement du LEAN sur leur projet
  • 48. REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Exemples de fonctionnement du LEAN sur leur projet
  • 49. Après un 1 an de fonctionnement Ils ont répondu à un appel d’offre publique et ont été sélectionnés Ont développé toutes les features prévues initialement En ont même rajouté en dehors du périmètre grâce aux demandes client Ont réussi à monter un produit à seulement deux personnes Toujours rentables 4 ans après le lancement REX LEAN : CRÉER UN SAAS ET ÊTRE RENTABLE APRÈS 6 MOIS Fonctionnement du LEAN sur leur projet Limites de cette méthodologie Elle ne peut pas s’appliquer à tous les projets L’extreme programming et le lean sont compatibles dans de “petites équipes”, il sera plus compliqué de mettre cela en place sur des projets non agiles. Certaines réglementations imposent une approche non-agile (ex. ISO 27001)
  • 50. 08 • Kézako? • Keynote sécurité KEYNOTES
  • 51. 09 • Késako ? • Application dans nos métiers • Comment mieux gérer ses vitres THÉORIE DE LA VITRE BRISÉEE Saad Ansari Dev, Data Engineer, Engineering Manager @LeFreelance
  • 52. THÉORIE DE LA VITRE BRISÉEE Késako ? Plus il y a de vitres brisées, plus il y en aura. Moi
  • 53. THÉORIE DE LA VITRE BRISÉEE New york Sentiment d’impunité et d’insécurité The Dark Knight
  • 54. THÉORIE DE LA VITRE BRISÉEE Paris On ne voit plus de graffiti dans le métro
  • 55. THÉORIE DE LA VITRE BRISÉE Application dans nos métiers : relations humaines Comportements inappropriés.
  • 56. THÉORIE DE LA VITRE BRISÉE Application dans nos métiers : balance ton code Tester en prod’ Laisser du code commenté Ne pas commenter Faire le héro / Devenir un héro Code mal structuré
  • 57. THÉORIE DE LA VITRE BRISÉE Comment mieux gérer ses vitres : relations humaines Rétrospectives d’équipes Points individuels réguliers PARLER
  • 58. CE N’EST PAS MAGIQUE Comment mieux gérer ses vitres : relations humaines Faire une réunion pour parler et penser que tout va se résoudre par magie Prendre à partie une personne THÉORIE DE LA VITRE BRISÉE
  • 59. THÉORIE DE LA VITRE BRISÉE Comment mieux gérer ses vitres : balance ton code Relecture de code Poser des questions Dire non à un client qui veut un hotfix en prod un vendredi à 18h
  • 60. THÉORIE DE LA VITRE BRISÉE Comment mieux gérer ses vitres : dérive A lancer trop d'alerte vous qui risquez de vous transformer en vitre brisée et c'est vous qui risquez d'être remplacé.
  • 61. REMERCIEMENTS / RÉFÉRENCES https://www.youtube.com/watch?v=i9eECmJTVEY Urbaniser un SI pour 10 ans (Christophe Quintard) https://www.youtube.com/watch?v=5gZYU56q4No REX LEAN: Créer un SaaS et être rentable après 6 mois (François-Guillaume Ribreau, Sébastien Brousse) https://www.youtube.com/watch?v=eVpi0VT4tFQ ArchUnit à la rescousse de mon projet ✨ (Anthony Dasse) https://www.youtube.com/watch?v=QrGu7ITlSog OAuth 2.1 expliqué simplement (même si tu n'es pas dev) ! (Julien Topçu) https://www.youtube.com/watch?v=I2iYNZm_pqg Pourquoi envisager Rust (Alexis Delhelle) https://www.youtube.com/watch?v=Ju5LfNnocTA La théorie de la vitre briséee appliquée au développement logiciel (Saad Ansari) https://www.youtube.com/watch?v=iA2BbX7WuTw&t=1325s Service Mesh Reprenons les bases (Sylvain Decout, Vincent Arrocéna) Pas de vidéo FFP2 : « FastApi For Python Programmers » (Fabrice Depaulis) Nicolas De Loof

Notes de l'éditeur

  1. FastApi For Python Programmers
  2. Des standards récents du langage (typehints, asyncio, ...) librairies solides (starlett, pydantic) Fastapi permet de développer une api en moins de temps qu'il n'en faut à Jeff pour s'acheter une villa à LosAngeles - génération automatique de doc - vérification de contraintes de données en entrée et sortie - support de l'asynchronisme - client de test intégré - mécanisme d'injection de dépendances (en python, il fallait oser)
  3. Il ne peut pas exister seul si on veut se connecter à une db
  4. Rester critique
  5. Django n’est pas vraiment un framework pour faire des api
  6. Doit exister avec marshmallow sqlalchemy Autres exemples Falcon ou connexion
  7. Je n’ai pas de part de marché chez rust
  8. Présentation deprecated
  9. Oui ça fait beaucoup de poste On en va pas parler du bricolage
  10. si une vitre est brisé dans un quartier, la probabilité qu'une autre vitre soit brisé augmente considérablement Personne ici n’a déjà eu envie de caser une vitre face a un bâtiment abandonné ? Sentiment d’impunité et d’insécurité
  11. new york insécurité -> ne pas finir en the dark night (on a pas batman)
  12. Metro parisien OSS117 ne peut pas être partout
  13. Sexisme, racisme, Accent, faute de français, pas touche à mes cheveux, ni à ma barbe Laisser normaliser ces comportements : Sentiment d’impunité et d’insécurité Ceux visé, à travers des mécanismes de défense de devenir des agresseurs
  14. Mauvaises pratiques normalisées Faire le héro : vouloir tout refaire en arrivant sur le projet : on a pas forcement les moyens et le besoin Hero : quelqu’un qui connait l’entièreté de l’application, qui devient un goulot d’etranglement
  15. Dans un monde ou on a des échanges de partout il faut savoir discuter