Ansible, Terraform, CloudFormation, [insert your favorite tech here]… Les solutions d’infra-as-code sont pléthores. Alors, pourquoi parler du dernier rejeton à la mode porté par le CNCF ? Allez, spoilons un peu l'affaire ! Bâti sur Kubernetes, Crossplane permet lui de faire converger le delivery d’une app containerisée avec toutes les autres ressources requises hors de votre cluster K8S préféré, et dont elle aura toutefois grand besoin pour fonctionner correctement : un bucket S3, une base de donnée managée, etc.. Vous orchestrez ainsi le cycle de vie de votre application complète avec une seule et même perspective. Ajoutez à cela un multicloud facilité, ou encore une vrai capacité à s’inscrire dans une démarche GitOps, et vous obtenez là une solution très efficace pour organiser vos prochains déploiements !
Signaler
Partager
Signaler
Partager
1 sur 21
Télécharger pour lire hors ligne
Contenu connexe
Similaire à Introduction à Crossplane (Talk Devoxx 2023)
Présentation sur Openstack, Docker, Rancher et Kubernetes durant le Devops D-Day le 09 Novembre 2017 par Ivan Beauté (Fabrique-IT) et Alexis Ducastel (infraBuilder).
Sécurisez votre software supply chain avec SLSA, Sigstore et KyvernoMohamed Abdennebi
Si vous tombez un jour sur une clé USB posée négligemment sur la table d'une salle de réunion, la brancheriez-vous dans votre portable ? "Jamais !" me diriez-vous.
Pourtant, c'est ce que nous faisons presque tout le temps avec les dépendances logicielles que nous récupérons d'Internet.
Ces dépendances ou artefacts sont devenus si complexes que nous ne maîtrisons plus leur contenu ou leurs dépendances transitives. Cette complexité s’étend à nos chaînes de production logicielle qui peuvent être corrompues à des endroits multiples : le référentiel de code source, le système de build ou le registre d'artefacts.Pour sécuriser notre chaîne de build ou "software supply chain", nous devons être capables de vérifier l'authenticité et l'intégrité des dépendances. De même, en tant que producteurs d'artefacts, nous devons garantir un niveau équivalent de sécurité et de transparence à nos consommateurs. Mais comment faire sans alourdir la chaîne CI/CD ni nuire à la productivité du développeur ?
La réponse ? C’est la communauté open source qui l’a apportée avec SLSA et Sigstore, principaux sujets de ce talk.
Pour commencer, nous parlerons de SLSA dont le but est de vous accompagner dans l’amélioration de votre chaîne de build en appliquant de bonnes pratiques de sécurité par paliers successifs.
Nous parlerons également de Sigstore et de la manière avec laquelle il permet d’implémenter SLSA en rendant transparente la signature et l’attestation des artefacts.
Nous clôturerons le talk par une démo sur la protection des déploiements dans Kubernetes à l'aide du moteur de règles "Kyverno".
La mode est aux conteneurs. Mais tout le monde n'est pas capable de transformer radicalement son DataCenter pour accueillir ces nouvelles unités de déploiement. Dès lors, le cloud est une alternative plus que valide. Mais il existe de nombreuses façons de déployer son conteneur dans les nuages ! À travers un retour d'expérience basé sur AWS, nous balayerons ces différents patterns, du plus indépendant de l'infrastructure sous jacente, au plus intriqué avec les services managés AWS.
Kubernetes University - Cap sur l'orchestrationWescale
Cette présentation était en partenariat avec Xebia (Jean-Baptiste Claramonte et Gerome Egron).
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements. Entre démonstrations et retours de terrain, vous repartirez avec tous les outils pour conteneuriser la planète.
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements.
Cette présentation était en partenariat avec WeScale (Cédric Hauber).
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements. Entre démonstrations et retours de terrain, vous repartirez avec tous les outils pour conteneuriser la planète.
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016Ori Pekelman
Ces-jours-ci on ne parle que de montée en échelle et de scalabilité horizontale.
Dans cette présentation, un peu abstraire mais bien pratique, nous parlerons des choix architecturaux que vous pouvez faire pour rendre votre application prête pour un succès planétaire (dommage d’échouer an ayant réussi).
Nous allons parler de micro-services, de leur utilité et leurs limites, là où l’on veut communiquer par JSON/HTTP (que d’autres appels REST) et là où un Message Queue en bonne et due forme vous rendra des fiers services futurs. Nous parlerons aussi des écueils à éviter (par la séparation des domaines écritures / lectures) et des choses, que jamais ô jamais vous ne devriez mettre dans une base de données relationnelle. Nous évoquerons en guise de travaux pratiques et cerise sur le gateau comment faire des migration paresseuses avec Symfony.
Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...AZUG FR
Comment automatiser le déploiement d’un Resource Group dans Azure avec Visual Studio (projet « Azure Resource Group ») et Automation DSC. Présentation d’outils pour faciliter la création des templates ARM et débugguer le déploiement.
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
Kubernetes et les technologies cloud sont aujourd'hui les standards pour déployer des applications de toutes sortes dans le cloud: api, batchs, microservices et même des monolithes! Ils apportent des solutions à beaucoup de problèmes mais aussi une grande complexité. Il peut donc être très difficile pour les développeurs et concepteurs d'identifier les contraintes de telles architectures.
Dans cette présentation, vous (re)découvrirez dix astuces et conseils que j'ai pu appliquer et qui m'ont aidé dans mes derniers projets.
Ces derniers traiteront :
de l'environnement de l'application
du choix des solutions techologiques
du développement
des contraintes de conception liées à K8S
et plus encore !
Dans cette présentation, nous donnons plusieurs réponses aux grandes questions classiques associées au déploiement avec Docker. Entre autres :
- comment orchestrer des déploiements non triviaux (plusieurs containers sur plusieurs machines) ?
- comment avoir des métriques sur les ressources utilisées par les containers ?
- comment optimiser les performances de Docker, en particulier pour des applications où ces performances sont critiques ?
- comment intégrer Docker avec des outils de "configuration management" comme Puppet, Chef, Salt, Ansible ?
- comment implémenter la "service discovery", ou, de manière générale, connecter entre eux plusieurs containers ?
La présentation a été donnée Lundi 8 Septembre à Paris dans les locaux de Zenika, cabinet spécialisé dans l'architecture informatique et les méthodes Agiles possédant une triple compétence de conseil, réalisation et formation.
Le projet OpenStack vise à créer une plate-forme open source Cloud computing, pour les Clouds publics et privés visant une évolutivité sans complexité. OpenStack est composé d'un certain nombre de composants libres qui forment ensemble une solution Cloud.
La NASA et Rackspace ont été les initiateurs de ce projet. Des grands noms du monde informatique se sont joints au projet tel que IBM, Dell, Canonical, Cisco, … etc. La mutualisation des efforts de développement ont fait du projet OpenStack l'un des projet les plus émergent, avec une release chaque 6 mois.
Similaire à Introduction à Crossplane (Talk Devoxx 2023) (20)
Introdution to Dataops and AIOps (or MLOps)Adrien Blind
This presentation introduces the audience to the DataOps and AIOps practices. It deals with organizational & tech aspects, and provide hints to start you data journey.
This presentation explains what serverless is all about, explaining the context from Devs & Ops points of view, and presenting the various ways to achieve serverless (Functions a as Service, BaaS....). It also presents the various competitors on the market and demo one of them, openfaas. Finally, it enlarges the pictures, positionning serverless, combined with Edge computing & IoT, as a valuable triptic cloud vendors are leveraging on top of, to create end-to-end offers.
2 self-managed Docker clusters deployed on public clouds and fight each other in a ruthless battle. One has been designed to resist any form of threat. The other one's only aim is to destroy the first one. Who's going to win?
Although it's presented as an entertainment, this talk will show off two serious platforms leveraging on different principles. Beyond the technical aspects covered (swarm/kubernetes orchestration, IaaS clouds, various tools such as terraform, kops or helm) , it will be the opportunity to discuss more largely architecture topics such as immutable infrastructure, hybridation, microservices, etc.
DevOps at scale: what we did, what we learned at Societe GeneraleAdrien Blind
The following talk discusses Societe Generale's transformation journey to DevOps, and more largelly to continuous delivery principles, inside a large, traditionnal company. It emphases the importance of practices over tooling, a human centric approach massively leveraging on coaching, and our "framework" approach to make it scaling up to the IS level.
It has been initially delivered at DevOps Rex conference, with teammate Laurent Dussault, also DevOps coach at Societe Generale.
Unleash software architecture leveraging on dockerAdrien Blind
The following talk first comes back on key aspects of microservices architectures. It then shifts to Docker, to explain in this context the benefits of containers and especially the new orchestration features appeared with version 1.12.
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]Adrien Blind
The following talk discusses the opportunity to leverage on docker to create an hybrid logical cloud built simultaneously on top of traditionnal datacenters and public cloud vendors and enabling to manage new kind of containers (Windows, linux over ARM). It also discusses the value of such capacity for applications in a contexte of topology orchestrations and micro service oriented applications.
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...Adrien Blind
The following talk discusses Societe Generale's transformation journey to DevOps, and more largelly to continuous delivery principles, inside a large, traditionnal company. It emphases the importance of practices over tooling, a human centric approach massively leveraging on coaching, and our "framework" approach to make it scaling up to the IS level.
It has been initially delivered at DevOps Rex conference, with teammate Laurent Dussault, also DevOps coach at Societe Generale.
Docker, cornerstone of an hybrid cloud?Adrien Blind
In this presentation, I propose to explore the orchestration & hybridation potential raised by Docker 1.12 Swarm Mode and the subsequent benefits.
I'll first remind why docker fits well the microservices paradigms, and how does this architecture engender new challenges : service discovery, app-centric security, scalability & resilience, and of course, orchestration.
I'll then discuss the opportunity to create your own docker CaaS platform hybridating simultaneously on various cloud vendors & traditional datacenters, better than just leveraging on vendors integrated offers.
Finally, I'll discuss the rise of new technologies (Windows containers, ARM architectures) in the docker landscape, and the opportunity of integrating them in a global docker composite orchestration, enabling to depict globally complex apps.
Petit déjeuner Octo - L'infra au service de ses projetsAdrien Blind
Cette présentation revient sur le projet d'automatisation de l'infrastructure informatique de Société Générale, dans un contexte plus large de déploiement des pratiques et outils du continuous delivery et devops.
Since many apps are not about just a single container, this talk discusses the ability and benefits of creating an hybrid Docker cluster capacity leveraging on Linux+Windows OS and x86+ARM architectures.
Moreover, the docker nodes composing this cloud will be hosted across several providers (local DC, cloud vendors such as Azure or AWS), in order to face various scenarios (cloud migration, elasticity...).
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?Adrien Blind
La mise en oeuvre du continuous delivery engendre de nouvelles pressions sur les Ops, l’infra et l’opérabilité d’une application se bâtissant désormais au rythme croissant des itérations livrées. En parallèle, les patterns d’architecture évoluent eux aussi : résilience et scalabilité se traitent désormais de plus en plus au sein même des applications, ramenant progressivement l’infrastructure au rang de commodité… Enfin, les équipes de Devs n’ont de cesse de réclamer plus d’autonomie et une ergonomie plus adaptée à leurs besoins : les acteurs du cloud et de solutions star comme Docker ne s’y sont pas trompés en proposant des produits qui leur parlent directement : la tentation du NoOps grandit peu à peu…
L’enjeu pour les Ops consiste donc à proposer un positionnement et une offre en résonance avec ces nouvelles attentes. Les challenges sont nombreux, revêtant à la fois des aspects techniques (infra-as-code, software-defined-software/storage/, hybridation du SI…) et non techniques (agilité, craftsmanship, devops…).
Des Devs s’arrogeant la place des Ops, des Ops acquérant des compétence de Dev… Dans cette session, nous vous proposons ainsi d’explorer ces profondes mutations culturelles et techniques, et nous vous partagerons quelques recettes pour le plus grand bénéfice des OPs… comme des DEVs. Comme l’écrivait Audiard, « Quand ça change, ça change... Faut jamais se laisser démonter » !
Introduction to Unikernels at first Paris Unikernels meetupAdrien Blind
This is an introduction to unikernels and their impact on architecture and IT organizations (in French, I'll translate it in short terms). I produced this talk for the first Paris Unikernels Meetup.
When Docker Engine 1.12 features unleashes software architectureAdrien Blind
This slidedeck deals with new features delivered with Docker Engine 1.12, in a larger context of application architecture & security. It has been presented at Voxxed Days Luxembourg 2016
The document discusses full stack automation and DevOps. It introduces Clément Cunin and Adrien Blind and their roles. Some key benefits discussed are reduced time to market, repeatability, and serenity. Methods discussed include deploying new releases daily with a 15 minute commit to production time, treating infrastructure as code, using ephemeral environments, and measuring everything.
This presentation discusses how to achieve continuous delivery, leveraging on docker containers, here used as universal application artifacts. It has been presented at Voxxed '15 Bucharest.
Docker: Redistributing DevOps cards, on the way to PaaSAdrien Blind
This talk first presents Docker through its key characteristics: being Portable, Disposable, Live, Social. It then discusses a new type of cloud, the CaaS (Container as a Service), and it potential benefits for PaaS (Platform as a Service).
Docker, Pierre angulaire du continuous delivery ?Adrien Blind
This presentation explores continuous delivery principles leveraging on Docker : it depicts the use of Docker containers as universal application artifacts, delivered flowly all along a deployment pipeline.
This slideshow has been initially presented at Devops D-Day conference, Marseille.
Identity & Access Management in the cloudAdrien Blind
This presentation discusses the evolution of IAM (Identity & Access Management) problematic, considering a context pushing more & more externalization & opening (B2B, B2C) of enterprises IS, also leveraging massively on the cloud.
The talk particularly focuses on IAM SSO & federation topics, and subsequent technologies (SAML, OpenID, OAuth...).
The missing piece : when Docker networking and services finally unleashes so...Adrien Blind
Docker now provides several building blocks, combining engine, clustering, and componentization, while the new networking and service features enable many new usecases such as multi-tenancy. In this session, you will first discover the new experimental networking and service features expected soon, and then drift rapidly to software architecture, explaining how a complete Docker stack unleashes microservices paradigms.
The first part of the talk will introduce what SDNs and service registries are to the audience and will cover corresponding network & service experimental features of docker accordingly, with a technical focus. For instance, it explains how to create an overlay network of top of a swarm cluster or how to publish services.
The second part of the talk moves from infrastructure to application concerns, explaining that application architecture paradigms are shifting. In particular, we discuss the growing porosity of companies’s IS (especially due to massive use of cloud services) drifting security boundaries from the global IS perimeter, to the application shape. We also remind that traditional SOA patterns leveraging on buses (ie. ESBs & ETLs) are being replaced by microservices promoting more direct, full-mesh, interactions. To get the picture really complete, we’ll also rapidely remind other trends and shifts which are already covered by other docker components: scalability & resiliency to be supported by the apps themselves, fine-grained applications, or even infrastructure commoditization…
Most of all, the last part depicts a concrete, state-of-the-art application, applying all the properties discussed previously, and leveraging on a multi-tenant docker full stack using new networking and services features, in addition to traditional swarm, compose, and engine components. And just because we say it doesn’t mean it’s true, we’ll be happy to demonstrate this live !
Retrouvez toute la communauté Liferay francophone pour un meetup virtuel (100% remote) pendant la pause déjeuner du jeudi 4 juillet.
Ce meetup sera l'occasion de vous présenter 5 sujets auxquels consacrer un peu de veille technique entre deux siestes sur la plage cet été.
Pour chaque sujet on vous fait un petit résumé, on en discute ensemble et bien sur on vous donne tous les pointeurs utiles pour vous occuper un peu les jours de pluie cet été (rares bien entendu).
Au programme : HTMX, Alpine.js, animation.css, N8N, Sentry, GlitchTip
Et bien sur les traditionnels échanges libres ne seront pas oubliés !
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdfErol GIRAUDY
Le tutoriel interactif d’ingénierie rapide d’Anthropic. Ce cours est destiné à vous fournir une compréhension complète, étape par étape, de la façon de concevoir des invites optimales dans Claude.
Après avoir terminé ce cours, vous serez en mesure de :
Maîtriser la structure de base d’une bonne invite
Reconnaître les modes de défaillance courants et apprendre les techniques « 80/20 » pour y remédier
Comprendre les forces et les faiblesses de Claude
Créez des invites puissantes à partir de zéro pour les cas d’utilisation courants
Ce tutoriel existe également sur Google Sheets en utilisant l’extension Claude for Sheets d’Anthropic. Nous vous recommandons d’utiliser cette version car elle est plus conviviale.
Lorsque vous êtes prêt à commencer, allez à pour continuer.01_Basic Prompt Structure
CLAUDE 3.5 SONNET EXPLICATIONS sur les usagesErol GIRAUDY
Présentation de Claude 3.5 Sonnet
La famille de modèles Claude 3 est dotée de nouvelles capacités de vision qui permettent à Claude de comprendre et d’analyser des images, ouvrant ainsi des possibilités passionnantes pour l’interaction multimodale.
Les artefacts : une nouvelle façon d’utiliser Claude
voir aussi sur mon blog :
www.ugaia.eu
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...Erol GIRAUDY
Vision de Claude 3.5 SONNET
La famille de modèles Claude 3 est dotée de nouvelles capacités de vision qui permettent à Claude de comprendre et d’analyser des images, ouvrant ainsi des possibilités passionnantes pour l’interaction multimodale.
https://www.ugaia.eu/2024/07/claude-35.html
Ce guide décrit comment utiliser des images dans Claude, y compris les meilleures pratiques, les exemples de code et les limitations à garder à l’esprit.
Comment utiliser la vision
Utilisez les capacités de vision de Claude via :
• claude.ai. Téléchargez une image comme vous le feriez pour un fichier, ou faites glisser et déposez une image directement dans la fenêtre de discussion.
• L’établi de la console. Si vous sélectionnez un modèle qui accepte les images (modèles Claude 3 uniquement), un bouton pour ajouter des images apparaît en haut à droite de chaque bloc de message Utilisateur.
Demande d’API. Voir les exemples dans ce guide.
1. Découverte de Crossplane - Devoxx 2023 - A. Blind
Découverte de Crossplane
Devoxx 2023
Adrien Blind
05/07/2024
2. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 2
Il y a Crossplane… et Crossplane
« Le crossplane ou plan transversal est une
conception de vilebrequin pour moteurs à
pistons où les manetons ne sont pas sur un
même plan, mais sur des plans
perpendiculaires, calés à un angle de 90°
(phase de rotation du vilebrequin) entre les
tours de vilebrequin. Le vilebrequin
crossplane est la configuration la plus
courante pour les moteurs V8 de série. »
- Wikipedia
Crossplane Ford V8
3. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 3
Faisons un peu connaissance
Je ne fais pas de mécanique !
Data Foundation Tribe lead
Docker Captain
Co-animateur des communautés Docker, Kubernetes et
Serverless sur Paris
Et vous ? Plutôt dev ? Plutôt Ops ?
?
4. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 4
De l’hégémonie des conteneurs… et Kubernetes
5. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 5
Un continuum de solutions en présence
Focus on value & better TTM
but support platform constraints
More flexibility, more tuning
capacity… but assume plumbing
Functions
ABSTRACT
FOCUS
INFRA
Microservices
Monoliths
CaaS
IaaS
FaaS
& PaaS
6. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 6
Les apps reposent sur une pluralité de composants
L’application repose sur des payloads applicatives variées
+
Des ressources IT plurielles : DB, queues, buckets, etc.
(parfois mutualisées, portées par des expertises et paradigmes différents, des entités distinctes, et outillées différemment)
Il y a donc un enjeu à réconcilier les différentes facettes d’une app, dans une
dynamique de delivery unifiée
8. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 8
Un projet opensource lancé par Upbound fin 2018
Il s’agit d’une control plane : framework qui orchestre le
déploiement et l’exécution de plateformes applicatives et
d’infrastructure
Il intègre le CNCF en 2020 en incubation
Il s’appuie sur les paradigmes natifs de Kubernetes
(opérateurs, CRDs, etc.) qu’il étend pour piloter avec un
même prisme l’application dans son ensemble
Actuellement en version 1.11, il est progressivement utilisé
chez de grands acteurs en production (Deutsch Bahn par
exemple)
Qu’est ce que Crossplane ?
9. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 9
Un système de provider pour s’adosser à de multiples
fournisseurs tiers
Crossplane
AWS Azure GCP Terrajet
Terraform
Crossplane vous offre un point focal unique,
intermédiant l’accès aux ressource de vos cloud
providers par l’intermédiaire d’un système de
providerspropose un système de provider
De nombreux providers sont disponibles au travers
d’une market place proposée par Upbound
Mais cela impose aux providers de « suivre »
constamment l’évolution des produits de ces
fournisseurs (le catalogue AWS représente à lui seul
plus de 200 produits à ce jour…)
Terrajet permet désormais une passerelle vers
Terraform (et donc tout le patrimoine
correspondant) en générant des providers
Crossplane
…
10. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 10
# On crée un namespace dédié
kubectl create namespace crossplane-system
# Avec Helm, on installe Crossplane sur le cluster
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane --namespace crossplane-system crossplane-stable/crossplane
# On étend la CLI de Kubernetes
curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh
# On vérifie enfin que tout est opérationnel
helm list -n crossplane-system
kubectl get all -n crossplane-system
Installation de Crossplane
11. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 11
# On crée une clé pour accéder à Azure de façon programmatique
# tt on la stocke sous forme de secret
az ad sp create-for-rbac --sdk-auth --role Owner
--scopes "/subscriptions/6f92cfb7-df60-4eb8-b3f4-cda514df96ca"
> "azure-creds.json"
kubectl create secret generic azure-creds -n crossplane-system
--from-file=creds=./azure-creds.json
# On installe le provider Azure de Crossplane
kubectl crossplane install provider xpkg.upbound.io/crossplane-
contrib/provider-azure:v0.20.1
kubectl get Provider
kubectl describe Provider
Déploiement de providers : ex. avec Azure (1/2)
12. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 12
# Et on configure celui-ci
# (on aurait pu le faire dans le même
# fichier yaml)
cat > azure-config.yaml <<EOF
apiVersion: azure.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: default
spec:
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: azure-creds
key: creds
EOF
kubectl apply -f azure-config.yaml
kubectl get ProviderConfig
kubectl describe ProviderConfig
kubectl describe ProviderConfig default
N.B. on utilise ici un provider qui sera
utilisé automatiquement par défaut
(« default »)
Déploiement de providers : ex. avec Azure (2/2)
# Remarque : on aurait pu installer le
# provider de la même façon qu’on l’a
# configuré avec ce qui suit
cat > azure-provider.yaml <<EOF
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-azure
spec:
package: "crossplane/provider-azure:master"
EOF
kubectl apply -f azure-provider.yaml
14. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 14
Concepts essentiels
Cycle de vie de ressources
Les ressources managées représentent des actifs tangibles provisionnés sur un
provider : une VM, une database, un cluster K8S, un VPC, une policy IAM…
Il s’agit plutôt d’une machine à état : on déclare la cible souhaitée, et le système
converge progressivement en prenant les actions nécessaires
La réconciliation est permanente, on ne fait pas que provisionner oneshot ! Les
divergences ne peuvent donc pas perdurer. Essayez de supprimer une ressource
dans la console de votre cloud vendor préféré…
Les paramètres en dépendance d’une ressource à une autre sont déclarés dans les
manifests
Les suppressions peuvent être effectives, ou rendre les ressources orphelines. Ce
dernier cas est typiquement utile dans le cas des ressources impliquant de la
persistance (une DB, un bucket S3, …)
15. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 15
# Azure impose de créer toutes ses ressources dans un resourcegroup, allons-y !
cat > azure-resourcegroup.yaml <<EOF
apiVersion: azure.crossplane.io/v1alpha3
kind: ResourceGroup
metadata:
name: test-rg-crossplane
spec:
location: eastus
EOF
kubectl apply -f azure-resourcegroup.yaml
kubectl get ResourceGroup
kubectl describe ResourceGroup
kubectl describe ResourceGroup test-rg-crossplane
# Que se passe t’il si je supprime le resource group sur la console ?
Déploiement direct de ressources (1/2)
16. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 16
# Créons une base de données
cat > azure-db.yaml <<EOF
apiVersion: database.azure.crossplane.io/v1beta1
kind: PostgreSQLServer
metadata:
name: sqlserverpostgresql
spec:
forProvider:
administratorLogin: myadmin
resourceGroupNameRef:
name: test-rg-crossplane
location: West US 2
sslEnforcement: Disabled
version: "9.6"
sku:
tier: GeneralPurpose
capacity: 2
family: Gen5
storageProfile:
storageMB: 20480
writeConnectionSecretToRef:
namespace: crossplane-system
name: sqlserverpostgresql-conn
EOF
kubectl apply -f azure-db.yaml
kubectl get Postgresqlserver
Déploiement direct de ressources (2/2)
17. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 17
Des ressources concrètes et des compositions abstraites,
séparation des concerns
Les compositeResourceDefinition (XRDs) sont des
interfaces définissant un ensemble de ressources et créent
une forme d’abstraction. Elles déclinent du principe de CRD
de K8S.
Les compositeResources implémentent les XRDs et sont
sollicitées par les claims : ce sont des définitions de groupes
de ressources tangibles.
Les compositions matérialisent des configurations
opinionées d’une ressource composite et adossée à des
ressources tangibles (par ex. une composition de
« production », une composition par cloud vendor…)
Les claims permettent optionnellement aux applications,
isolées au sein de leur propre namespaces, d’accéder
indirectement aux ressources, qui sont elles cluster-wide.
Les ressources peuvent être provisionnées
automatiquement à l’occasion de la sollicitation. C’est une
sorte de proxy dédié à une app.
Les composite ressources peuvent être récursives pour
assembler des building blocks macroscopiques
ManagedResource
ManagedResource
ManagedResource
Composition
MyWebPlatformInstance
(XRD Claim)
Utilise
App teams
consommant des
ressources dédiées
et mutualisées
(depuis leurs
namespaces
distincts)
SRE
team gérant la
plateforme et
les ressources
mutualisées
transverses, les
res.
Préprovisionéée
s, ou portées
par ’IT (VPC…)
IAM
VPC
VM
MyWebPlatformInstance
(XRD Claim)
Utilise
SEGREGATION
-------------------
OF CONCERNS
Composite
Resource
Composite
Resource
Definition
Implem. Config
18. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 18
# Exemple de définition de ressource
# composite abstraite pour une base de données
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: xpostgresqlinstances.database.example.org
spec:
group: database.example.org
names:
kind: XPostgreSQLInstance
plural: xpostgresqlinstances
claimNames:
kind: PostgreSQLInstance
plural: postgresqlinstances
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
parameters:
type: object
properties:
storageGB:
type: integer
required:
- storageGB
required:
- parameters
Définitions et ressources composites
# Exemple de ressource composite
# correspondant à cette XRD
apiVersion: database.example.org/v1alpha1
kind: XPostgreSQLInstance
metadata:
name: my-db
spec:
parameters:
storageGB: 20
compositionRef:
name: production
writeConnectionSecretToRef:
namespace: crossplane-system
name: my-db-connection-details
19. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 19
Claims et configurations
# Exemple de configuration
# Celle-ci fait la « glue » entre la ressource macro abstrait
# et les resssources réelles provisionnées
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: example
labels:
crossplane.io/xrd: xpostgresqlinstances.database.example.org
provider: gcp
spec:
writeConnectionSecretsToNamespace: crossplane-system
compositeTypeRef:
apiVersion: database.example.org/v1alpha1
kind: XPostgreSQLInstance
resources:
- name: cloudsqlinstance
base:
apiVersion: database.gcp.crossplane.io/v1beta1
kind: CloudSQLInstance
spec:
forProvider:
databaseVersion: POSTGRES_12
region: us-central1
settings:
tier: db-custom-1-3840
dataDiskType: PD_SSD
ipConfiguration:
ipv4Enabled: true
authorizedNetworks:
- value: "0.0.0.0/0"
patches:
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.storageGB
toFieldPath: spec.forProvider.settings.dataDiskSizeGb
# Exemple de claim permettant
# d’atteindre cette ressource
# composite
apiVersion:
database.example.org/v1alpha1
kind: PostgreSQLInstance
metadata:
namespace: default
name: my-db
spec:
parameters:
storageGB: 20
compositionRef:
name: production
writeConnectionSecretToRef:
name: my-db-connection-details
20. Découverte de Crossplane - Devoxx 2023 - A. Blind
05/07/2024 20
Kubernetes est plus que jamais l’OS du cloud. Mais pour autant, le cloud ne se
résume pas à Kubernetes ;)
Conclusions
1
2
Crossplane offre une perspective unifiée des ressources IT: il offre une interface
homogène, multicloud et universelle pour accéder à une pluralité de ressources. Et
il est extensible.
On consacre plus que jamais Kubernetes comme socle universel d’un système
d’information cloud-centric, bien au delà de sa fonction d’orchestration de conteneurs :
on déploie désormais des clusters… pour orchestrer d’autres plateformes
4
3
Mais ce n’est pas qu’un simple backend d’Ops : il permet d’unifier le cycle de vie
des apps et leurs ressources sous-jacentes. C’est un vrai outil devops, et s’insère
bien avec les paradigmes gitops (il se combine très bien avec Flux ou Argo CD)
Ansible, Terraform, CloudFormation, GitOps, [insert your favorite tech here]… Les solutions d’infra-as-code sont pléthores. Alors, pourquoi venir nous écouter parler du dernier rejeton à la mode, poussé par le CNCF ? Allez, on vous spoile un argument ou deux, mais pour le reste il faudra venir nous écouter ;) Bâti sur Kubernetes, Crossplane permet de faire converger élégamment le delivery d’une application complexe et ses besoins sous-jacents (de la VM aux services managés). Ajoutez à cela un multicloud facilité, ou encore une vrai capacité à s’inscrire dans une démarche GitOps, et vous avez là une solution sexy pour organiser vos prochains déploiements !
A002