Et si un outil vous permettait de « gérer votre plateforme comme un produit » ? La réponse s'appelle Crossplane, disponible depuis plusieurs années maintenant. Trop beau pour être vrai ?
Pourquoi construire son propre PaaS interne ?
Les développeurs veulent livrer des fonctionnalités, pas gérer de l'infrastructure cloud. Les équipes plateforme se concentrent sur les coûts, la sécurité, la cohérence et l'automatisation. Un PaaS interne comble ce fossé en offrant aux développeurs une expérience simplifiée à la Heroku, tout en maintenant la gouvernance organisationnelle et les standards de l'entreprise.
Qu'est-ce que Crossplane ?
Crossplane est un projet open-source CNCF qui transforme votre cluster Kubernetes en plan de contrôle pour gérer l'infrastructure cloud. Il fonctionne de façon similaire à Terraform, mais il est natif Kubernetes, entièrement déclaratif, et hautement composable.
Comment ça fonctionne
Les composants principaux :
- Providers : plugins permettant à Crossplane de communiquer avec AWS, GCP, Azure et autres plateformes cloud
- Compositions : templates d'infrastructure (par exemple, une configuration PostgreSQL standard de l'entreprise)
- Claims : demandes de ressources par les développeurs (par exemple, provisionner une base de données)
Un exemple concret : provisionner une base PostgreSQL
L'approche traditionnelle
- Créer un ticket Jira
- Provisionner manuellement ou via Terraform
- Partager les credentials manuellement
- Espérer que les tags sont correctement appliqués pour le nettoyage
L'approche Crossplane
Le développeur applique un manifest YAML, Crossplane provisionne les ressources automatiquement.
apiVersion: damdevops.com/v1alpha1
kind: DatabaseAccess
metadata:
name: damdevops-db
spec:
instanceRef: damdevops-dbi
dbName: damdevops-db
schemas:
- blog
- networks
users:
- username: blog-user
ownerOf:
- blog
readerOf:
- public
- username: networks-user
ownerOf:
- networks
writeConnectionSecretToRef:
name: damdevops-db-creds
Ce manifest accomplit en une seule commande :
- Crée la base de données
damdevops-dbsur l'instancedamdevops-dbi - Crée deux schémas (
blog,networks) - Crée deux utilisateurs avec les privilèges appropriés sur leurs schémas
- Stocke les credentials générés dans un Secret Kubernetes
Pourquoi Crossplane est adapté à un PaaS interne
- Abstraction de la complexité : les développeurs ne savent pas si c'est RDS, Cloud SQL ou autre chose en dessous
- Déclaratif et GitOps-friendly : compatible avec ArgoCD, Flux et les workflows Git
- Multi-cloud natif : AWS, GCP, Azure et on-premise avec une API unifiée
- RBAC intégré : contrôle d'accès par équipe, namespace et type de ressource
- Composabilité : possibilité de construire des offres d'infrastructure complexes en un seul Claim
Inconvénients et défis
- Courbe d'apprentissage : les Compositions et Claims demandent du temps à maîtriser
- Debugging : le débogage au niveau du provider est difficile au début
- Investissement initial : concevoir de bonnes abstractions demande un effort amont significatif
Cependant, le retour sur investissement augmente significativement au fur et à mesure que les équipes grossissent et que l'offre plateforme s'élargit.
Conseils pour construire un PaaS interne solide
- Commencez par des ressources simples comme des buckets S3 ou des bases PostgreSQL
- Collaborez avec les développeurs pour créer des abstractions qui répondent à de vrais besoins
- Versionnez vos Compositions comme des APIs internes
- Adoptez GitOps tôt avec ArgoCD ou Flux
- Créez une documentation légère ou un CLI/portail pour la découverte de l'infrastructure
Traitez votre plateforme comme un produit.
Conclusion
Crossplane ne construit pas automatiquement un PaaS, mais il vous donne la fondation parfaite pour en construire un qui fonctionne vraiment. Pour les organisations qui utilisent déjà Kubernetes et migrent vers GitOps, Crossplane s'intègre naturellement et permet la transition de l'infrastructure-as-code vers l'infrastructure-as-service.