La fameuse histoire du SaaS que l'on commence avec une unique page sans rien derrière ("fake it until you make it") mais avec la particularité ici d'employer le Lean Software Management et l'eXtreme Programming (XP).
Un SaaS que l'on construit au fil des années et des échanges clients en suivant le Lean Software Management avec une (grosse) pincée d'XP.
😇Comment prenons nous en compte quotidiennement le chaos de la réalité et l'illusion du contrôle pour vivre sans planification et roadmap.
📞L'emploi du mob et du pair-programming dans une organisation en télétravail complet.
🎚Pricing d'un SaaS = Lean
🔁Garder une feedback loop inférieur à deux jours
🔫Vivre la culture "customer driven" plutôt que d'en parler
🥸Comment gérer les appels d'offre publique en lean
🥶Certifications (e.g. ISO27001) et lean? Un amour impossible?
💶 Comment supprimer le no-estimate / estimations / deadlines même quand nos prospects et clients sont des multi-nationales du NASDAQ et du CAC40.
🥲Quels ont été nos succès et nos échecs ?
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
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
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)
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
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
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
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
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
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
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
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
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