SlideShare une entreprise Scribd logo
1  sur  71
Télécharger pour lire hors ligne
Créer un SaaS


et être rentable


après 6 mois
@FGRibreau
@seb_brousse
#eXtreme Lean (XL)
<🫵>
$ whoami
Architecte, Développeur, DevOps ❤


Associé Liksi #Rennes #acteur local


Membre du board du Breizhcamp


Keycloak matin midi et soir
Cofounder
François-Guillaume RIBREAU
Sébastien BROUSSE
Roam-bot
Hook0
💰
💰
SaaS-maker & CTO as a Service
Cofounder
getnobullshit.com
NoBullshit Tech-Lead Author
@FGRibreau
@seb_brousse
disclaimer
Chapitre 1


La douleur viendra à toi
Innomind
IAM - Identity & Access Management
Berkeley's Jonas 2019 paper
 🔥 Keycloak IAM c'est bien sauf quand il faut le sécuriser,
monitorer, mettre à l'échelle, mettre à jour, sauvegarder.


 🔥 90% des entreprises n'ont pas les ressources internes pour
superviser et mettre à l'échelle leur IAM 24h/7j


 🔥 Les IAM du marché font du vendor lock-in, sont closed-
source et les données sont des cloud américains ou
chinois. Nous avons besoin d'une solution Européenne 🇪🇺 !
Problèmes
Pourquoi héberger sur Cloud Européen?
15 Mars 2022
“ On recherche un service managé pour Keycloak !


Un équivalent à CloudAMQP ”
"Keycloak IAM management


without the pain"
SaaS
High Availability
Zero downtime updates
Custom Extensions
Custom domains
OpenMetrics
Real-time logs
Advanced


System configuration
On-demand


data export
Cloud-IAM REST API
Chapitre 2


Le cycle de dev eXtreme Lean
Le LEAN (startup) ?
“Most business processes are 90% waste and 10% value-added work”
— The Toyota Way, Jeffrey Liker, 2003
“Lean startup is a methodology for developing businesses and
products that aims to shorten product development cycles and
rapidly discover if a proposed business model is viable”
— Lean Startup, Eric Ries, 2011
eXtreme Programming (XP)
“eXtreme Programming goal is to allow small to mid-sized teams to produce


high-quality software and adapt to evolving and changing requirements.”
Feedback Loop
short & frequent
douleur(s)
specs
pair-programming
tests
docs
monitoring
alerting
changelog
release
communication
analyze
X heures ?


X jours ?


X semaines ?


X mois ?
Lean + XP = eXtreme Lean (XL)
“Tout limiter dans l'espace et dans le temps”
#madeInBZH #madeInVendée #madeInTinténiac
“Pas de paiement = pas de dev. en amont”
Vision long terme produit actualisée & cohérente
2 principes directeurs (philosophie)
Toujours réduire la feedback-loop


Travail sur un seul sujet au bon moment
“Mettre le plus de contraintes en amont”
“Source de vérité unique”
“Préférer le déclaratif sur l'impératif”
“Contraindre d’abord, relâcher plus tard”
“Partir du constat que ça va merder tôt ou tard”
“Surveiller du point de vue utilisateur”
getnobullshit.com
Objectifs
Un produit entièrement dédié


aux besoins des clients
Engranger de l'expérience


Faire des raccourcis ce n'est pas grave


TANT QUE


le contrat d'interface est à cible


c'est testé et supervisé


Toujours (ou presque) avoir une idée de comment faire les choses annoncée
Lean + XP = eXtreme Lean (XL)
Chapitre 3


Prendre son destin en main
✅ Template Webflow
✅ Copier-coller et adaptation du copy writing de Cloud-AMQP


✅ Logo réalisé & screenshoté sous Keynote


✅ Boutons vers mailto:support@cloud-iam.com
Début 2018
✅ Pricing segmenté par ce que nous aimerions avoir


✅ Ne pas perdre d'argent


✅ Boutons vers mailto:support@cloud-iam.com


✅ Réalisé en 1 demi-journée
“Contraindre d'abord relâcher plus tard”
Début 2018
Max Keycloak IAM users


Max Keycloak IAM realms
...


Max number of extensions count


Max number of custom-domains


...
Max simultaneous connections


Request rate-limiting
“Tout limiter dans l'espace et dans le temps”
Chapitre 4


Le premier clien
t
Voici le lien de souscription
pour le plan à 290€/mois
C’est possible d’essayer ?
Souscription prise!
Premier contact avec un prospect
✅ Réelle validation cliente du besoin
Début 2018
Cloud-IAM v1.0.0
😱 Une infrastructure Scaleway créée à la main


😱 Un playbook Ansible lancé à la main


😱 Pas de dashboard (UI)


😱 Aucune des fonctionnalités annoncées 🤌
Début 2018
Chapitre 5


Notre cycle de développement
en eXtreme Lean
Demande d'un client sur notre
support
#XL Répondre OUI si et seulement si


☝la demande est alignée avec notre vision du produit


☝l'entreprise a déjà payé pour cette demande


☝nous savons abstraire le besoin


☝nous savons implémenter au plus simple, rapide
1
Lors de l'implémentation
2
Contrat d'API REST à cible
(G)UI à cible
Documentation & onboarding


utilisateur à jour
Site web à jour
Pricing à jour
Status Page


& alerting
Changelog
Authorizations
tests à cible
(rate)-limits
Post-release: lors des échecs
3
✅ Communication forte avec les
clients durant l'incident = confiance


✅ Post-mortem publique
Quelques contacts et clients plus tard…
✅ Le dashboard (UI) est en ligne


✅ Liste et détails des déploiements


✅ URL d’accès au cluster Keycloak dédié


Création et provisioning automatisé sur Scaleway 🇫🇷 😌
Début 2018
Chapitre 6


Cas pratique eXtreme Lean


Support d'un nouveau Cloud-Provider
Fake it until you need it
Début 2018
We just sign for GCP !
🌟 Nouveau Prospect
All major ones :


• AWS (🥸), here is the subscription link


• GCP (🥸), here is the subscription link


• Scaleway, here is the subscription link
What Cloud Providers do
you support ?
✅ Réelle validation cliente du besoin
Début 2018
Deux jours plus tard…


😱 Le terraform sur GCP n’est pas prêt


😱 Déploiement à la main
🌟 Release du support complet de GCP
quelques jours plus tard
We just sign for GCP !
Début 2018
Chapitre 7


Cas pratique eXtreme Lean


les logs
Comment accéder aux logs de mon déploiement
Keycloak ?
✅ Réelle validation cliente du besoin
Cette fonctionnalité est encore en bêta privée,


je contact l'équipe pour vous donner l'accès rapidement 🌟
Début 2018
- les logs sont exposés sur notre API REST publique


- logs sont visibles par déploiement sur le dashboard Cloud-IAM


- documentation dans la Knowledge Base


- monitoring/alerting : "je veux être réveillé si ça tombe"


- service-level objectives (SLO):


- latence < 2 secondes pour récupérer les logs


- durée de rétention des logs à X jours
“Partir du constat que ça va merder tôt ou tard”


“Pas de monitoring sans l'alerting”


“Surveiller du point de vue utilisateur”
Specs en tête (philosophie):
Comment accéder aux logs de mon déploiement
Keycloak ?
Architecture v1 ?
Récupération les logs
Modélisation de l'API


+ développement backend Java/Springboot


+ développement frontend VueJS/Sass


+ tests unitaires


+ tests systèmes


+ monitoring/alerting (+ status page)


+ documentation


+ mise en production back puis front


+ changelog


+ communication au client = 4 heures
Début 2018
6 mois et 3 jours plus tard...


un très gros client arrive
Notre gestion des logs
temps-réel #KISS #eXtremeLean
👈 Les gros clients
Cluster HA + Queries API + Rétention longue durée
Récupération les logs itération #2
Chapitre 8


Cas pratique eXtreme Lean


Les exports de données
Comment réaliser un export complet des données
mon IAM Keycloak ?
Cette fonctionnalité est encore en bêta privée,


je contact l'équipe pour vous donner l'accès rapidement 🌟
✅ Réelle validation cliente du besoin
Début 2018
“Export and import is triggered at server boot time and its parameters are passed in via
Java system properties.”
La documentation officielle
L’export se fait au démarrage uniquement … Merci l’arrêt de
service !
Comment réaliser un export complet des données
mon IAM Keycloak ?
Début 2018
On se connecte déjà en SSH pour les logs
On n’a qu’à lancer un container Keycloak pour faire l’export !
Comment réaliser un export complet des données
mon IAM Keycloak ?
Début 2018
Comment récupérer le fichier qui contient l’export ?
On n’a qu’à le lire et on enregistre le Buffer dans un fichier
pour l’envoyer à l’utilisateur !
Comment réaliser un export complet des données
mon IAM Keycloak ?
Début 2018
3 mois plus tard...


un client avec X millions d'utilisateurs
Notre gestion des exports
#KISS #eXtremeLean
👈 Les gros clients
On demand instance creation


+ Auto sizing infrastructure based on Pricing Plan quota


+ Object Storage + Long term retention
Génération des exports itération #2
Chapitre 9


Cas pratique eXtreme Lean


Un appel d'offre publique
Le client
Début 2018
✅ Pas de description de notre
entreprise


✅ Chaque besoin = une solution
du produit


✅ 1 PAGE ½ co-écrite en 2h


✅ Minimum de mise en forme 


✅ Pas de bullshit commercial
#lean
Notre réponse
Début 2018
Job done ✌
Début 2018
Sébastien, 15 ans de consulting
🌟 Un mois plus tard 🌟
“Bonjour,




Votre offre est celle qui a le plus retenu notre
attention.


Nous procéderons bientôt au paiement.”
Début 2018
Sébastien, 15 ans de consulting
François-Guillaume
Chapitre 10


Cas pratique eXtreme Lean


Les custom domains
Please declare a CNAME and
Cloud-IAM will also generate a TLS
certificate for your custom domain!
We want our own custom domain


at iam.my-company.com. Where do I do that?
Y’a plus qu’à ...
✅ Réelle validation cliente du besoin
Début 2018
Deux jours plus tard 🏎


TLS Let’s Encrypt automatisés sur les
load-balancers pour les noms de
domaines des clients


Automatisé mais à ce moment là pas
automatique (self-service)


Configuré manuellement à la demande


Documenté dans le Runbook interne
We want our own custom domain


at iam.my-company.com. Where do I do that?
Quand le besoin est réellement validé et récurrent :


on automatise et on rend disponible en self-service
Chapitre 11


Et maintenant?
Europe (Paris)
Europe
(Amsterdam)
Europe
(Warsaw)
Europe (Paris)
Europe (London)
Europe (Ireland)
Europe (Milan)
Europe (Stockholm)
Europe (Frankfurt)
USA (Oregon)
USA (N. California)
USA (Ohio)
USA (N. Virginia)
North America (CA
Central)
South America (São
Paulo)
Asia (Sydney)
Asia (Singapore)
Asia (Mumbai)
Asia (Osaka)
Asia (Seoul)
Asia (Tokyo)
Asia (Hong Kong)
Middle East (Bahrain)
Africa (Cape Town)
Europe (Warsaw)
Europe (Finland)
Europe (Belgium)
Europe (London)
Europe (Frankfurt)
Europe (Netherlands)
Europe (Zürich)
USA (Iowa)
USA (South Carolina)
USA (Northern Virginia)
USA (Oregon)
USA (Los Angeles)
USA (Salt Lake City)
USA (Las Vegas)
North America (Montréal)
South America (São
Paulo)
Asia (Taiwan)
Asia (Hong Kong)
Asia (Tokyo)
Asia (Osaka)
Asia (Seoul)
Asia (Mumbai)
Asia (Singapore)
Asia (Jakarta)
Asia (Sydney)
1,400+ Cloud-IAM users
10+ millions users managed
1,400+ Cloud-IAM users
10+ millions users managed
Se confronter au client le plus vite possible
Aucun plan ne survit au contact de l'ennemi client
Le plus de contraintes en amont
Observer tout du point de vue de l'utilisateur
Ecouter les clients prioriser la roadmap (malgré eux)
#ProTips pour démarrer son SaaS
Ne pas oubliez de gagner de l'argent ;)
“Tout limiter dans l'espace et dans le temps”
“Pas de paiement = pas de dev. en amont”
Vision long terme produit actualisée & cohérente
“Mettre le plus de contraintes en amont”
“Préférer le déclaratif sur l'impératif”
“Contraindre d’abord, relâcher plus tard”
“Partir du constat que ça va merder tôt ou tard”
“Surveiller du point de vue utilisateur”
"Pas de monitoring sans l'alerting"
"Emmener le plus rapidement les développeurs vers la production"
"Les équipes pointent sur la production des autres"
""Les bouchons sont un ennemi"
"Intégrer par l'abstraction les demandes
clients de développement spécifique"
"L'entreprise n'est qu'un des clients de son produit"
"Faire d'une pierre trois coups"
getnobullshit.com
REX des 6 premiers mois de Cloud-IAM ✅
Après la première année


Fonctionnalités initiales implémentées ✅
Toujours en XL et toujours rentable 😅
Aujourd'hui
Créer un SaaS


et être rentable


après 6 mois
-10% sur 1 an avec le code
BZHCAMP4EVER
@FGRibreau
@seb_brousse

Contenu connexe

Similaire à REX LEAN- Créer un SaaS et être rentable après 6 mois

AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...Oxalide
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Simplicité Software
 
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agileAgile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agilePig Acube
 
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...Agile En Seine
 
SplunkLive! Paris 2016 - customer presentation - Neocles
SplunkLive! Paris 2016 - customer presentation - NeoclesSplunkLive! Paris 2016 - customer presentation - Neocles
SplunkLive! Paris 2016 - customer presentation - NeoclesSplunk
 
Les enjeux de la gestion des actifs logiciels à l'heure du Cloud
Les enjeux de la gestion des actifs logiciels à l'heure du CloudLes enjeux de la gestion des actifs logiciels à l'heure du Cloud
Les enjeux de la gestion des actifs logiciels à l'heure du CloudChloe Benech
 
Transforming Product Development - French Version - Transformation Day Montre...
Transforming Product Development - French Version - Transformation Day Montre...Transforming Product Development - French Version - Transformation Day Montre...
Transforming Product Development - French Version - Transformation Day Montre...Amazon Web Services
 
Atelier Info Tonic : Les règles d’or pour créer son site Web
Atelier Info Tonic : Les règles d’or pour créer son site WebAtelier Info Tonic : Les règles d’or pour créer son site Web
Atelier Info Tonic : Les règles d’or pour créer son site Webambin_fr
 
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...Agile Montréal
 
Les défis d'une organisation produit @ Peaksys
Les défis d'une organisation produit @ PeaksysLes défis d'une organisation produit @ Peaksys
Les défis d'une organisation produit @ PeaksysSamuel RETIERE
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficienceMichel Bruchet
 
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Microsoft Ideas
 
Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Charbel Abdo
 
Réussir la réalisation de son MVP ou son PoC
Réussir la réalisation de son MVP ou son PoCRéussir la réalisation de son MVP ou son PoC
Réussir la réalisation de son MVP ou son PoCOwlie
 
CWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel Arkea
CWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel ArkeaCWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel Arkea
CWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel ArkeaCapgemini
 
Combiner la gestion de projet Agile (AgilePM®) et SCRUM
Combiner la gestion de projet Agile (AgilePM®) et SCRUMCombiner la gestion de projet Agile (AgilePM®) et SCRUM
Combiner la gestion de projet Agile (AgilePM®) et SCRUMSvetlana Sidenko
 
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...Identity Days
 

Similaire à REX LEAN- Créer un SaaS et être rentable après 6 mois (20)

AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016
 
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agileAgile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
 
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...
 
SplunkLive! Paris 2016 - customer presentation - Neocles
SplunkLive! Paris 2016 - customer presentation - NeoclesSplunkLive! Paris 2016 - customer presentation - Neocles
SplunkLive! Paris 2016 - customer presentation - Neocles
 
Les enjeux de la gestion des actifs logiciels à l'heure du Cloud
Les enjeux de la gestion des actifs logiciels à l'heure du CloudLes enjeux de la gestion des actifs logiciels à l'heure du Cloud
Les enjeux de la gestion des actifs logiciels à l'heure du Cloud
 
Transforming Product Development - French Version - Transformation Day Montre...
Transforming Product Development - French Version - Transformation Day Montre...Transforming Product Development - French Version - Transformation Day Montre...
Transforming Product Development - French Version - Transformation Day Montre...
 
Atelier Info Tonic : Les règles d’or pour créer son site Web
Atelier Info Tonic : Les règles d’or pour créer son site WebAtelier Info Tonic : Les règles d’or pour créer son site Web
Atelier Info Tonic : Les règles d’or pour créer son site Web
 
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
 
#Agilité Transformation #Disruption #User #Centricity #damien #ALEXANDRE
#Agilité Transformation #Disruption #User #Centricity #damien #ALEXANDRE#Agilité Transformation #Disruption #User #Centricity #damien #ALEXANDRE
#Agilité Transformation #Disruption #User #Centricity #damien #ALEXANDRE
 
032016 roomn table ronde_agile avec contributions damien ALEXANDRE
032016 roomn  table ronde_agile avec contributions damien ALEXANDRE 032016 roomn  table ronde_agile avec contributions damien ALEXANDRE
032016 roomn table ronde_agile avec contributions damien ALEXANDRE
 
Les défis d'une organisation produit @ Peaksys
Les défis d'une organisation produit @ PeaksysLes défis d'une organisation produit @ Peaksys
Les défis d'une organisation produit @ Peaksys
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
 
Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013
 
Réussir la réalisation de son MVP ou son PoC
Réussir la réalisation de son MVP ou son PoCRéussir la réalisation de son MVP ou son PoC
Réussir la réalisation de son MVP ou son PoC
 
CWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel Arkea
CWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel ArkeaCWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel Arkea
CWIN17 Paris / La mise en oeuvre de la Blockchain chez Crédit Mutuel Arkea
 
Combiner la gestion de projet Agile (AgilePM®) et SCRUM
Combiner la gestion de projet Agile (AgilePM®) et SCRUMCombiner la gestion de projet Agile (AgilePM®) et SCRUM
Combiner la gestion de projet Agile (AgilePM®) et SCRUM
 
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
 
Agile Tour 2016 @ Lille
Agile Tour 2016 @ LilleAgile Tour 2016 @ Lille
Agile Tour 2016 @ Lille
 

Plus de François-Guillaume Ribreau

⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?François-Guillaume Ribreau
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...François-Guillaume Ribreau
 
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!François-Guillaume Ribreau
 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France François-Guillaume Ribreau
 
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...François-Guillaume Ribreau
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...François-Guillaume Ribreau
 
Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)François-Guillaume Ribreau
 
Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)François-Guillaume Ribreau
 
Automatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsAutomatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsFrançois-Guillaume Ribreau
 
Les enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre sociétéLes enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre sociétéFrançois-Guillaume Ribreau
 
Continous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophyContinous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophyFrançois-Guillaume Ribreau
 

Plus de François-Guillaume Ribreau (17)

⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
 
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!
 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
 
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
 
RedisConf 2016 - Redis usage and ecosystem
RedisConf 2016 - Redis usage and ecosystemRedisConf 2016 - Redis usage and ecosystem
RedisConf 2016 - Redis usage and ecosystem
 
Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)
 
Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)
 
Automatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsAutomatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startups
 
Development Principles & Philosophy
Development Principles & PhilosophyDevelopment Principles & Philosophy
Development Principles & Philosophy
 
Les enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre sociétéLes enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre société
 
How I monitor SaaS products
How I monitor SaaS productsHow I monitor SaaS products
How I monitor SaaS products
 
Continous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophyContinous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophy
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Approfondissement CSS3
Approfondissement CSS3Approfondissement CSS3
Approfondissement CSS3
 
Découverte HTML5/CSS3
Découverte HTML5/CSS3Découverte HTML5/CSS3
Découverte HTML5/CSS3
 

REX LEAN- Créer un SaaS et être rentable après 6 mois

  • 1. Créer un SaaS 
 et être rentable après 6 mois @FGRibreau @seb_brousse #eXtreme Lean (XL)
  • 4. Architecte, Développeur, DevOps ❤ Associé Liksi #Rennes #acteur local Membre du board du Breizhcamp Keycloak matin midi et soir Cofounder François-Guillaume RIBREAU Sébastien BROUSSE Roam-bot Hook0 💰 💰 SaaS-maker & CTO as a Service Cofounder getnobullshit.com NoBullshit Tech-Lead Author @FGRibreau @seb_brousse
  • 6.
  • 7. Chapitre 1 La douleur viendra à toi
  • 8.
  • 9. Innomind IAM - Identity & Access Management
  • 11.
  • 12.  🔥 Keycloak IAM c'est bien sauf quand il faut le sécuriser, monitorer, mettre à l'échelle, mettre à jour, sauvegarder.  🔥 90% des entreprises n'ont pas les ressources internes pour superviser et mettre à l'échelle leur IAM 24h/7j  🔥 Les IAM du marché font du vendor lock-in, sont closed- source et les données sont des cloud américains ou chinois. Nous avons besoin d'une solution Européenne 🇪🇺 ! Problèmes
  • 13. Pourquoi héberger sur Cloud Européen? 15 Mars 2022
  • 14. “ On recherche un service managé pour Keycloak ! Un équivalent à CloudAMQP ”
  • 16. High Availability Zero downtime updates Custom Extensions Custom domains OpenMetrics Real-time logs Advanced System configuration On-demand data export Cloud-IAM REST API
  • 17. Chapitre 2 Le cycle de dev eXtreme Lean
  • 18. Le LEAN (startup) ? “Most business processes are 90% waste and 10% value-added work” — The Toyota Way, Jeffrey Liker, 2003 “Lean startup is a methodology for developing businesses and products that aims to shorten product development cycles and rapidly discover if a proposed business model is viable” — Lean Startup, Eric Ries, 2011
  • 19. eXtreme Programming (XP) “eXtreme Programming goal is to allow small to mid-sized teams to produce high-quality software and adapt to evolving and changing requirements.” Feedback Loop short & frequent douleur(s) specs pair-programming tests docs monitoring alerting changelog release communication analyze X heures ? X jours ? X semaines ? X mois ?
  • 20. Lean + XP = eXtreme Lean (XL) “Tout limiter dans l'espace et dans le temps” #madeInBZH #madeInVendée #madeInTinténiac “Pas de paiement = pas de dev. en amont” Vision long terme produit actualisée & cohérente 2 principes directeurs (philosophie) Toujours réduire la feedback-loop 
 Travail sur un seul sujet au bon moment “Mettre le plus de contraintes en amont” “Source de vérité unique” “Préférer le déclaratif sur l'impératif” “Contraindre d’abord, relâcher plus tard” “Partir du constat que ça va merder tôt ou tard” “Surveiller du point de vue utilisateur” getnobullshit.com
  • 21. Objectifs Un produit entièrement dédié 
 aux besoins des clients Engranger de l'expérience Faire des raccourcis ce n'est pas grave 
 TANT QUE 
 le contrat d'interface est à cible 
 c'est testé et supervisé Toujours (ou presque) avoir une idée de comment faire les choses annoncée Lean + XP = eXtreme Lean (XL)
  • 22. Chapitre 3 Prendre son destin en main
  • 23. ✅ Template Webflow ✅ Copier-coller et adaptation du copy writing de Cloud-AMQP ✅ Logo réalisé & screenshoté sous Keynote ✅ Boutons vers mailto:support@cloud-iam.com Début 2018
  • 24. ✅ Pricing segmenté par ce que nous aimerions avoir ✅ Ne pas perdre d'argent ✅ Boutons vers mailto:support@cloud-iam.com ✅ Réalisé en 1 demi-journée “Contraindre d'abord relâcher plus tard” Début 2018
  • 25. Max Keycloak IAM users Max Keycloak IAM realms ... Max number of extensions count Max number of custom-domains ... Max simultaneous connections Request rate-limiting “Tout limiter dans l'espace et dans le temps”
  • 27. Voici le lien de souscription pour le plan à 290€/mois C’est possible d’essayer ? Souscription prise! Premier contact avec un prospect ✅ Réelle validation cliente du besoin Début 2018
  • 28. Cloud-IAM v1.0.0 😱 Une infrastructure Scaleway créée à la main 😱 Un playbook Ansible lancé à la main 😱 Pas de dashboard (UI) 😱 Aucune des fonctionnalités annoncées 🤌 Début 2018
  • 29. Chapitre 5 Notre cycle de développement en eXtreme Lean
  • 30. Demande d'un client sur notre support #XL Répondre OUI si et seulement si ☝la demande est alignée avec notre vision du produit ☝l'entreprise a déjà payé pour cette demande ☝nous savons abstraire le besoin ☝nous savons implémenter au plus simple, rapide 1
  • 31. Lors de l'implémentation 2 Contrat d'API REST à cible (G)UI à cible Documentation & onboarding utilisateur à jour Site web à jour Pricing à jour Status Page & alerting Changelog Authorizations tests à cible (rate)-limits
  • 32. Post-release: lors des échecs 3 ✅ Communication forte avec les clients durant l'incident = confiance ✅ Post-mortem publique
  • 33. Quelques contacts et clients plus tard… ✅ Le dashboard (UI) est en ligne ✅ Liste et détails des déploiements ✅ URL d’accès au cluster Keycloak dédié Création et provisioning automatisé sur Scaleway 🇫🇷 😌 Début 2018
  • 34. Chapitre 6 Cas pratique eXtreme Lean Support d'un nouveau Cloud-Provider
  • 35. Fake it until you need it Début 2018
  • 36. We just sign for GCP ! 🌟 Nouveau Prospect All major ones : • AWS (🥸), here is the subscription link • GCP (🥸), here is the subscription link • Scaleway, here is the subscription link What Cloud Providers do you support ? ✅ Réelle validation cliente du besoin Début 2018
  • 37. Deux jours plus tard… 😱 Le terraform sur GCP n’est pas prêt 😱 Déploiement à la main 🌟 Release du support complet de GCP quelques jours plus tard We just sign for GCP ! Début 2018
  • 38. Chapitre 7 Cas pratique eXtreme Lean les logs
  • 39. Comment accéder aux logs de mon déploiement Keycloak ? ✅ Réelle validation cliente du besoin Cette fonctionnalité est encore en bêta privée, je contact l'équipe pour vous donner l'accès rapidement 🌟 Début 2018
  • 40. - les logs sont exposés sur notre API REST publique - logs sont visibles par déploiement sur le dashboard Cloud-IAM - documentation dans la Knowledge Base - monitoring/alerting : "je veux être réveillé si ça tombe" - service-level objectives (SLO): - latence < 2 secondes pour récupérer les logs - durée de rétention des logs à X jours “Partir du constat que ça va merder tôt ou tard” “Pas de monitoring sans l'alerting” “Surveiller du point de vue utilisateur” Specs en tête (philosophie): Comment accéder aux logs de mon déploiement Keycloak ?
  • 42. Récupération les logs Modélisation de l'API + développement backend Java/Springboot + développement frontend VueJS/Sass + tests unitaires 
 + tests systèmes + monitoring/alerting (+ status page) + documentation 
 + mise en production back puis front + changelog + communication au client = 4 heures Début 2018
  • 43. 6 mois et 3 jours plus tard... un très gros client arrive
  • 44. Notre gestion des logs temps-réel #KISS #eXtremeLean 👈 Les gros clients
  • 45. Cluster HA + Queries API + Rétention longue durée Récupération les logs itération #2
  • 46. Chapitre 8 Cas pratique eXtreme Lean Les exports de données
  • 47. Comment réaliser un export complet des données mon IAM Keycloak ? Cette fonctionnalité est encore en bêta privée, je contact l'équipe pour vous donner l'accès rapidement 🌟 ✅ Réelle validation cliente du besoin Début 2018
  • 48. “Export and import is triggered at server boot time and its parameters are passed in via Java system properties.” La documentation officielle L’export se fait au démarrage uniquement … Merci l’arrêt de service ! Comment réaliser un export complet des données mon IAM Keycloak ? Début 2018
  • 49. On se connecte déjà en SSH pour les logs On n’a qu’à lancer un container Keycloak pour faire l’export ! Comment réaliser un export complet des données mon IAM Keycloak ? Début 2018
  • 50. Comment récupérer le fichier qui contient l’export ? On n’a qu’à le lire et on enregistre le Buffer dans un fichier pour l’envoyer à l’utilisateur ! Comment réaliser un export complet des données mon IAM Keycloak ? Début 2018
  • 51. 3 mois plus tard... un client avec X millions d'utilisateurs
  • 52. Notre gestion des exports #KISS #eXtremeLean 👈 Les gros clients
  • 53. On demand instance creation + Auto sizing infrastructure based on Pricing Plan quota + Object Storage + Long term retention Génération des exports itération #2
  • 54. Chapitre 9 Cas pratique eXtreme Lean Un appel d'offre publique
  • 56. ✅ Pas de description de notre entreprise ✅ Chaque besoin = une solution du produit ✅ 1 PAGE ½ co-écrite en 2h ✅ Minimum de mise en forme  ✅ Pas de bullshit commercial #lean Notre réponse Début 2018
  • 58. Sébastien, 15 ans de consulting
  • 59. 🌟 Un mois plus tard 🌟 “Bonjour, Votre offre est celle qui a le plus retenu notre attention. Nous procéderons bientôt au paiement.” Début 2018
  • 60. Sébastien, 15 ans de consulting
  • 62. Chapitre 10 Cas pratique eXtreme Lean Les custom domains
  • 63. Please declare a CNAME and Cloud-IAM will also generate a TLS certificate for your custom domain! We want our own custom domain at iam.my-company.com. Where do I do that? Y’a plus qu’à ... ✅ Réelle validation cliente du besoin Début 2018
  • 64. Deux jours plus tard 🏎 TLS Let’s Encrypt automatisés sur les load-balancers pour les noms de domaines des clients Automatisé mais à ce moment là pas automatique (self-service) Configuré manuellement à la demande Documenté dans le Runbook interne We want our own custom domain at iam.my-company.com. Where do I do that?
  • 65. Quand le besoin est réellement validé et récurrent : on automatise et on rend disponible en self-service
  • 67. Europe (Paris) Europe (Amsterdam) Europe (Warsaw) Europe (Paris) Europe (London) Europe (Ireland) Europe (Milan) Europe (Stockholm) Europe (Frankfurt) USA (Oregon) USA (N. California) USA (Ohio) USA (N. Virginia) North America (CA Central) South America (São Paulo) Asia (Sydney) Asia (Singapore) Asia (Mumbai) Asia (Osaka) Asia (Seoul) Asia (Tokyo) Asia (Hong Kong) Middle East (Bahrain) Africa (Cape Town) Europe (Warsaw) Europe (Finland) Europe (Belgium) Europe (London) Europe (Frankfurt) Europe (Netherlands) Europe (Zürich) USA (Iowa) USA (South Carolina) USA (Northern Virginia) USA (Oregon) USA (Los Angeles) USA (Salt Lake City) USA (Las Vegas) North America (Montréal) South America (São Paulo) Asia (Taiwan) Asia (Hong Kong) Asia (Tokyo) Asia (Osaka) Asia (Seoul) Asia (Mumbai) Asia (Singapore) Asia (Jakarta) Asia (Sydney) 1,400+ Cloud-IAM users 10+ millions users managed
  • 68. 1,400+ Cloud-IAM users 10+ millions users managed
  • 69. Se confronter au client le plus vite possible Aucun plan ne survit au contact de l'ennemi client Le plus de contraintes en amont Observer tout du point de vue de l'utilisateur Ecouter les clients prioriser la roadmap (malgré eux) #ProTips pour démarrer son SaaS Ne pas oubliez de gagner de l'argent ;) “Tout limiter dans l'espace et dans le temps” “Pas de paiement = pas de dev. en amont” Vision long terme produit actualisée & cohérente “Mettre le plus de contraintes en amont” “Préférer le déclaratif sur l'impératif” “Contraindre d’abord, relâcher plus tard” “Partir du constat que ça va merder tôt ou tard” “Surveiller du point de vue utilisateur” "Pas de monitoring sans l'alerting" "Emmener le plus rapidement les développeurs vers la production" "Les équipes pointent sur la production des autres" ""Les bouchons sont un ennemi" "Intégrer par l'abstraction les demandes clients de développement spécifique" "L'entreprise n'est qu'un des clients de son produit" "Faire d'une pierre trois coups" getnobullshit.com
  • 70. REX des 6 premiers mois de Cloud-IAM ✅ Après la première année Fonctionnalités initiales implémentées ✅ Toujours en XL et toujours rentable 😅 Aujourd'hui
  • 71. Créer un SaaS 
 et être rentable après 6 mois -10% sur 1 an avec le code BZHCAMP4EVER @FGRibreau @seb_brousse